Changelog
Historial de cambios de la Kinmu Public API. Los cambios incompatibles nunca se aplican dentro de una versión mayor: se introducen en una nueva versión y se anuncian aquí.
Política de versionado
- La versión va en la URL:
https://api.kinmu.app/v1. - Contrato congelado dentro de
v1. No introducimos cambios incompatibles env1.
Qué consideramos un cambio compatible (no rompe)
Estos cambios pueden ocurrir en v1 sin previo aviso; tu integración debe tolerarlos:
- Añadir nuevos endpoints o recursos.
- Añadir campos nuevos a una respuesta.
- Añadir valores nuevos a un enum documentado como extensible (p. ej. tipos de ausencia custom).
- Añadir parámetros opcionales de query o de body.
- Cambiar el texto de mensajes de error (
title,detail) — por eso tu lógica debe basarse en el campo establecode.
Diseña clientes tolerantes. Ignora los campos que no conozcas y no asumas un orden fijo en las listas. Así los cambios compatibles no te afectan.
Qué consideramos un cambio incompatible (rompe)
Requiere una nueva versión mayor (v2):
- Eliminar o renombrar un endpoint, campo o valor de enum.
- Cambiar el tipo de un campo o hacerlo obligatorio.
- Cambiar el significado de un campo o el código de un error.
Política de deprecación (12 meses)
Cuando deprequemos un endpoint, campo o versión:
- Se anuncia en este changelog y en la lista de correo de desarrolladores.
- Se marca como deprecated en el spec OpenAPI y, cuando aplique, con la cabecera de respuesta
Deprecation+Sunset. - Se mantiene operativo al menos 12 meses desde el anuncio antes de retirarse.
Suscríbete a los avisos en la página de soporte.
Historial
Todos los cambios listados abajo son compatibles: ninguno rompe una integración v1 existente. Se documentan aquí porque cambian el comportamiento observable.
2026-08-27 — spec OpenAPI y updated_since
- El spec declara ahora los códigos 402 y 409 y las cabeceras
X-RateLimit-*, que la API ya emitía. - El 409 se declara además en
POST /v1/reportsy en las operaciones idempotentes de webhooks, donde faltaba. updated_sinceimplementado enGET /v1/webhook-endpoints.updated_sincemarcado como obsoleto (deprecated) enGET /v1/vacation-balancesyGET /v1/work-summaries: nunca ha filtrado en esos recursos. Se sigue aceptando sin efecto —para no romper los SDK regenerados— y se retirará el 27-08-2027, conforme a la política de deprecación de 12 meses. Para estos agregados, vuelve a consultar el rango (year,from/to). Ver convenciones.
2026-08-20 — email de empleado único por empresa
- La unicidad del email al crear un empleado pasa a ser por empresa (antes era global). Altas que antes fallaban con
422por colisión con el email de otra empresa ahora se aceptan.
2026-08-10 — la sandbox y las keys se deprovisionan
- Al desactivar el addon Public API se revocan todas las API keys (motivo
addon_disabled), se borran los informes generados y se elimina la empresa sandbox con sus datos. Reactivar el addon reprovisiona una sandbox vacía y no restaura las keys. Ver sandbox.
2026-07-31 — gate de suscripción y revocación
- El gate de suscripción se endurece: trial agotado, suscripción cancelada y vencida, suscripción expirada y empresa archivada devuelven ahora
403 subscription_inactiveen/v1. - Revocar API keys y webhooks (
DELETE) deja de exigir suscripción activa: cortar una credencial es un control de seguridad y debe estar siempre disponible.
2026-07-30 — ajustes de empresa en la emisión de keys
- La emisión de API keys respeta los ajustes del addon por empresa:
default_expiration_days(expiración aplicada cuando no pides una explícita) ymax_active_keys(tope de keys activas, 10 por defecto).
v1 · 1.0.0
Spec OpenAPI publicado (openapi-v1.json, v1.0.0). La referencia interactiva lee el spec real. La superficie del v1 es contrato congelado; los cambios se anuncian aquí con la política de deprecación de 12 meses.
Recursos del lanzamiento (MVP):
- Organization —
GET /v1/organization(introspección). - Employees — listar, obtener, crear, actualizar y dar de baja.
- Check-ins — listar, obtener y registrar fichajes.
- Work summaries — agregados de jornada para nómina.
- Absences — listar, obtener, crear, aprobar y rechazar.
- Vacation balances — saldos de vacaciones.
- Locations / Units — estructura organizativa (solo lectura).
- Reports — informes asíncronos (registro horario legal y exports), con descarga del fichero vía
GET /v1/reports/{id}/download.
Webhooks:
- Eventos salientes firmados (Standard Webhooks): gestión de endpoints, envío de
ping, listado de entregas y reencolado manual de una entrega víaPOST /v1/webhook-endpoints/{id}/deliveries/{deliveryId}/retry.