POST/verificacion
Verificación pública de un asiento
Sin clave de API: es un punto del protocolo OAuth.
Sin clave de API ni sesión. Quien verifica presenta el recibo firmado (recibo, el texto que se le entregó al fichar) o el asiento completo (asiento), uno solo. No se busca por un identificador suelto ni por posición: sin el contenido o la firma no hay respuesta, así que recorrer posiciones no descubre qué asientos existen. Responde siempre 200 y la misma forma, exista o no el asiento. integro: coincide con el guardado (devuelve su posición y su resumen, que ya tenías); alterado: el asiento presentado no cuadra con su propio resumen; no_consta: cuadra, pero no hay uno igual en la cadena (no se distingue «no existió» de «existió con otro contenido»); recibo_invalido: el recibo no verifica (firma, algoritmo distinto de EdDSA, clave desconocida o emitido en el futuro). El recibo no caduca. Se comprueba contra todas las claves públicas publicadas, las antiguas incluidas (/.well-known/jwks.json). No devuelve ningún dato personal (art. 5.1.c del RGPD, minimización). Límite: 30 peticiones por minuto y por IP (429 con Retry-After). CORS: orígenes de la web y de la app; desde un servidor, sin restricción de origen.
| Estado | Qué devuelve |
|---|---|
| 200 | Veredicto. Cuerpo: VerificacionRespuesta. |
| 400 | Error con la forma de RFC 9457 (type, title, status, detail, code, request_id). Se envía con Content-Type: application/json y con la cabecera X-Request-Id. Programa contra code. Códigos: metodo_no_permitido (405, con Allow: GET, OPTIONS; en /cumplimiento/validar, Allow: POST, OPTIONS; en /fichajes, /ausencias, /modificaciones e /informes, Allow: GET, POST, OPTIONS), clave_ausente, clave_invalida, clave_revocada, clave_caducada (401), clave_ip_no_permitida, ambito_insuficiente, empresa_inactiva, complemento_no_contratado (403, solo si se activa el cobro del complemento, hoy apagado), recurso_no_encontrado, persona_no_encontrada, centro_no_encontrado, modificacion_no_encontrada, informe_no_encontrado (404), parametro_invalido, cursor_invalido, cuerpo_invalido (400), rango_demasiado_amplio (422), limite_por_minuto_excedido, limite_mensual_excedido, demasiados_fallos_de_autenticacion (429, con Retry-After) y flujo_sin_configurar (503). Los errores que se producen antes de llegar a la API (capa HTTP) tienen otra forma: ver ErrorHttp. |
| 429 | Error con la forma de RFC 9457 (type, title, status, detail, code, request_id). Se envía con Content-Type: application/json y con la cabecera X-Request-Id. Programa contra code. Códigos: metodo_no_permitido (405, con Allow: GET, OPTIONS; en /cumplimiento/validar, Allow: POST, OPTIONS; en /fichajes, /ausencias, /modificaciones e /informes, Allow: GET, POST, OPTIONS), clave_ausente, clave_invalida, clave_revocada, clave_caducada (401), clave_ip_no_permitida, ambito_insuficiente, empresa_inactiva, complemento_no_contratado (403, solo si se activa el cobro del complemento, hoy apagado), recurso_no_encontrado, persona_no_encontrada, centro_no_encontrado, modificacion_no_encontrada, informe_no_encontrado (404), parametro_invalido, cursor_invalido, cuerpo_invalido (400), rango_demasiado_amplio (422), limite_por_minuto_excedido, limite_mensual_excedido, demasiados_fallos_de_autenticacion (429, con Retry-After) y flujo_sin_configurar (503). Los errores que se producen antes de llegar a la API (capa HTTP) tienen otra forma: ver ErrorHttp. |
| Otro error | Error con cuerpo Problema: ver límites y errores. |