Skip to Content
Guides par cas d'usagePaie et gestion sociale

Paie et gestion sociale

Objectif : alimenter votre logiciel de paie avec les heures effectives, les absences et les soldes de congés d’une période, sans export manuel.

Scopes requis : org:fichajes:read, org:ausencias:read, org:saldos:read.

Les trois ressources clés :

Work summaries : les heures de la période

work-summaries renvoie une ligne par salarié × période avec les agrégats déjà calculés (pas les événements de pointage). Filtrez par period=day|month et une plage from/to (≤ 1 an).

curl -s "$KINMU_BASE_URL/work-summaries?period=month&from=2026-06-01&to=2026-06-30" \ -H "Authorization: Bearer $KINMU_API_KEY"
{ "data": [ { "employee_id": "a1b2…", "period_start": "2026-06-01", "period_end": "2026-06-30", "worked_minutes": 9600, "break_minutes": 1200, "night_minutes": 300, "overtime_minutes": 240, "expected_minutes": 9600, "balance_minutes": 0, "banked_hours_balance_minutes": 120, "absences_minutes": 480, "source_days": 21 } ], "meta": { "next_cursor": null, "has_more": false } }

Champs utiles pour la paie :

ChampUsage
worked_minutesTemps de travail effectif.
night_minutesMinutes en horaire de nuit (majorations).
overtime_minutesHeures supplémentaires de la période.
expected_minutesDurée théorique selon le contrat.
balance_minutesÉcart travaillé − attendu.
banked_hours_balance_minutesSolde du compteur d’heures.
absences_minutesMinutes d’absence sur la période.

Les agrégats mensuels peuvent être servis depuis des snapshots consolidés. Si votre clôture dépend des données du jour en cours, tenez compte d’une possible latence de consolidation et clôturez sur des périodes déjà complètes.

Absences de la période

Croisez les absences approuvées qui chevauchent la période de paie pour appliquer les arrêts et les déductions :

curl -s "$KINMU_BASE_URL/absences?status=approved&from=2026-06-01&to=2026-06-30" \ -H "Authorization: Bearer $KINMU_API_KEY"

Chaque absence porte un type sous la forme { key, label } (la key est stable : vacation, sick_leave, ou des types personnalisés propres à votre entreprise) et un days_count. Utilisez toujours la key dans votre logique.

Soldes de congés

Pour la clôture annuelle ou les provisions, consultez les soldes par salarié et par année :

curl -s "$KINMU_BASE_URL/vacation-balances?year=2026" \ -H "Authorization: Bearer $KINMU_API_KEY"
{ "data": [ { "employee_id": "a1b2…", "year": 2026, "entitled_days": 23, "used_days": 10, "pending_days": 2, "remaining_days": 11, "carry_over_days": 0, "carry_over_expires_at": null } ] }

Flux de clôture mensuelle

Listez les salariés actifs de la période

GET /v1/employees?status=active (paginez avec cursor au-delà de 100).

Téléchargez les work-summaries du mois

GET /v1/work-summaries?period=month&from=…&to=….

Croisez les absences approuvées

GET /v1/absences?status=approved&from=…&to=….

(Optionnel) Générez le registre légal du temps de travail

Pour l’inspection du travail, demandez le rapport time_registry_monthly (RD-ley 8/2019) :

curl -s -X POST "$KINMU_BASE_URL/reports" \ -H "Authorization: Bearer $KINMU_API_KEY" \ -H "Content-Type: application/json" \ -H "Idempotency-Key: $(uuidgen)" \ -d '{ "type": "time_registry_monthly", "format": "csv", "params": { "month": "2026-06" } }'

Formats : csv ou xlsx (xlsx uniquement pour check_ins_export). Vous recevez 202 { "id": "…", "status": "processing" }. Faites du polling sur GET /v1/reports/{id} jusqu’à status=completed ; la réponse inclut alors download_url, une URL signée temporaire (TTL 5 min, usage unique). La signature fait office d’identifiant : téléchargez le fichier depuis cette URL sans header Authorization :

# 1) obtener la download_url (solo aparece cuando status=completed) DL=$(curl -s "$KINMU_BASE_URL/reports/<id>" \ -H "Authorization: Bearer $KINMU_API_KEY" | jq -r '.download_url') # 2) descargar el fichero desde la URL firmada (sin Bearer; un solo uso, 5 min) curl -s -L "$DL" -o registro-horario-2026-06.csv

Le scope org:informes:read est obligatoire pour demander le rapport. La download_url est à usage unique et expire au bout de 5 minutes : demandez-la et téléchargez le fichier dans la foulée.

Last updated on