No tienes que hacer nada especial. Por defecto estos endpoints se
comportan como cualquier otro: haces
POST y recibes { "data": … } de
vuelta. Las opciones siguientes son opt-in, para cuando prefieras no mantener
una conexión abierta.¿Qué endpoints son asíncronos?
Estas consultas se ejecutan como trabajos asíncronos:- Policía Nacional, antecedentes penales
- SICAAC, casos de insolvencia
- Superfinanciera, quejas
- RUNT, vehículo por placa
- RREE, carnés de extranjería
- SUNAT, contribuyentes RUC
Las tres maneras de obtener un resultado
Las tres se apoyan en el mismo trabajo, así que elige según cada solicitud.
Modo 1: Esperar en línea (por defecto)
Simplemente llama al endpoint. La solicitud se mantiene abierta hasta que el trabajo termina (hasta 55 segundos) y devuelve el resultado en la forma habitual{ data }, idéntica a un endpoint síncrono.
Prefer: wait=N
(segundos, limitado a 55):
200: terminó. El cuerpo es{ "data": … }, igual que la forma síncrona.202: no terminó dentro del tiempo de espera. El cuerpo es un sobre de trabajo; sigue sustatus_urlpara hacer polling. El encabezadoX-Job-Idlleva el id del trabajo.
Maneja siempre tanto
200 como 202. Un 202 no es un error; solo significa
“aún en proceso, vuelve por él”.Modo 2: Polling
EnvíaPrefer: wait=0 para obtener un 202 de inmediato, luego haz GET al
status_url del trabajo hasta que alcance un estado terminal.
GET /jobs/:id siempre devuelve 200 con el sobre.
Mientras el trabajo sigue en ejecución incluye un encabezado Retry-After
(segundos); úsalo para regular tu polling. Los trabajos tienen alcance de tu
organización; un trabajo que pertenece a otra organización se lee como 404.
Modo 3: Callback (webhook)
Incluye uncallback_url en el cuerpo de la solicitud. Obtienes un 202 de
inmediato, y Croma hace POST con el resultado a tu URL una vez que el trabajo
termina, sin necesidad de polling.
callback_url debe ser una URL HTTPS absoluta en un host público (localhost
y los rangos privados son rechazados). Cuando el trabajo termina, Croma le envía
un POST:
- Cuerpo: el mismo sobre de trabajo que el endpoint de polling.
x-croma-job-id: el id del trabajo.x-croma-signature:sha256=<hmac>, un HMAC-SHA256 del cuerpo crudo de la solicitud, para que puedas verificar la integridad de la carga útil.
La verificación de firma usa un secreto compartido emitido por Croma;
contáctanos si quieres habilitarla para tus callbacks. Responde
2xx con
rapidez; las respuestas distintas de 2xx se reintentan.El sobre de trabajo
La respuesta202, GET /jobs/:id y el cuerpo del callback comparten una misma
forma:
datase completa solo cuandostatusescompleted(y coincide con la carga útildatanormal del endpoint). De lo contrario esnull.errorse completa solo cuando el trabajo ha fallado (failed), como{ "type", "code", "message" }.
Estados
Referencia de encabezados
Errores
Cómo funcionan las fallas y el objeto
error.