Skip to Content
Guias por caso de usoControle de acesso

Controle de acesso

Objetivo: fazer com que seu sistema de controle de acesso (catracas, leitores de cartão, quiosques) registre pontos no Kinmu em tempo real.

Scopes necessários: org:fichajes:write (registrar) e org:fichajes:read (consultar).

Registrar um ponto

POST /v1/check-ins registra um evento em nome de um funcionário. Ele é persistido com source=api, fica auditado e respeita as validações de jornada (não há bypass de regras).

curl -s -X POST "$KINMU_BASE_URL/check-ins" \ -H "Authorization: Bearer $KINMU_API_KEY" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: $(uuidgen)" \ -d '{ "employee_id": "a1b2c3d4-…", "type": "in", "timestamp": "2026-07-08T08:00:00Z", "location_id": "loc-uuid", "note": "Acceso puerta principal" }'

Campos do body:

CampoObrigatórioNotas
employee_idSimUUID público do funcionário.
typeSimin, out, break_start ou break_end.
timestampSimISO 8601 em UTC.
location_idNãoLocal onde o ponto acontece.
noteNãoTexto livre (por exemplo, identificador do leitor).

Resposta 201:

{ "id": "ci-uuid", "employee_id": "a1b2c3d4-…", "type": "in", "timestamp": "2026-07-08T08:00:00Z", "location": { "id": "loc-uuid", "name": "Sede Madrid" }, "source": "api", "validated": true, "created_at": "2026-07-08T08:00:01Z", "updated_at": "2026-07-08T08:00:01Z" }

Use Idempotency-Key em cada ponto. Catracas repetem o envio quando a rede cai; com uma chave idempotente você evita registrar o mesmo acesso duas vezes. Reenviar a mesma chave retorna o ponto original; reutilizá-la com outro body dá 409.

Mapear seus funcionários

Seu sistema de acesso identifica pessoas por cartão ou PIN; o Kinmu, por employee_id (UUID). Construa o mapeamento uma vez e atualize-o periodicamente:

Baixe os funcionários e a estrutura

curl -s "$KINMU_BASE_URL/employees?status=active&limit=100" \ -H "Authorization: Bearer $KINMU_API_KEY" curl -s "$KINMU_BASE_URL/locations" -H "Authorization: Bearer $KINMU_API_KEY"

Guarde o mapeamento cartão → employee_id e zona → location_id

Use email ou um campo do seu cadastro mestre para relacionar as pessoas; guarde os UUIDs do Kinmu.

Atualize com updated_since

Releia apenas o que mudou: GET /v1/employees?updated_since=<última sync>.

Consultar pontos

Para conciliar, leia os eventos com um intervalo obrigatório de ≤ 92 dias:

curl -s "$KINMU_BASE_URL/check-ins?employee_id=a1b2…&from=2026-07-01&to=2026-07-08" \ -H "Authorization: Bearer $KINMU_API_KEY"

Quer reagir em tempo real a cada ponto (por exemplo, para um painel de presença)? Inscreva-se no evento checkin.created com webhooks em vez de fazer polling.

Erros frequentes

SituaçãoResposta
Falta org:fichajes:write403 invalid_scope
timestamp fora do intervalo ou type inválido422 validation_failed (com errors)
Nova tentativa com a mesma Idempotency-Key e body diferente409 idempotency_conflict
Funcionário de outra empresa404 not_found
Last updated on