Skip to Content
Guide per caso d'usoControllo accessi

Controllo accessi

Obiettivo: far registrare in tempo reale le timbrature in Kinmu al tuo sistema di controllo accessi (tornelli, lettori di badge, chioschi).

Scopes necessari: org:fichajes:write (registrare) e org:fichajes:read (consultare).

Registrare una timbratura

POST /v1/check-ins registra un evento per conto di un dipendente. Viene salvato con source=api, resta tracciato e rispetta le validazioni di orario (nessun bypass delle regole).

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" }'

Campi del body:

CampoObbligatorioNote
employee_idUUID pubblico del dipendente.
typein, out, break_start o break_end.
timestampISO 8601 in UTC.
location_idNoSede in cui avviene la timbratura.
noteNoTesto libero (ad es. identificativo del lettore).

Risposta 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" }

Usa Idempotency-Key per ogni timbratura. I tornelli riprovano in caso di interruzioni di rete; con una chiave idempotente eviti di registrare due volte lo stesso accesso. Reinviare la stessa chiave restituisce la timbratura originale; riusarla con un altro body dà 409.

Mappare i tuoi dipendenti

Il tuo sistema di accessi identifica le persone per badge o PIN; Kinmu per employee_id (UUID). Costruisci la mappatura una volta e aggiornala periodicamente:

Scarica i dipendenti e la loro struttura

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"

Salva la mappatura tessera → employee_id e zona → location_id

Usa email o un campo della tua anagrafica per abbinare le persone; salva gli UUID di Kinmu.

Aggiorna con updated_since

Rileggi solo ciò che è cambiato: GET /v1/employees?updated_since=<ultima sync>.

Consultare le timbrature

Per la riconciliazione, leggi gli eventi con un intervallo obbligatorio di ≤ 92 giorni:

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

Vuoi reagire in tempo reale a ogni timbratura (per esempio per un pannello presenze)? Sottoscrivi l’evento checkin.created con i webhooks invece di fare polling.

Errori frequenti

SituazioneRisposta
Manca org:fichajes:write403 invalid_scope
timestamp fuori intervallo o type non valido422 validation_failed (con errors)
Retry con la stessa Idempotency-Key e body diverso409 idempotency_conflict
Dipendente di un’altra azienda404 not_found
Last updated on