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: Colombia- Consejo de Estado, búsqueda de jurisprudencia y una providencia
- Policía Nacional, antecedentes penales
- ADRES, estado de afiliación en salud
- RUAF, afiliaciones a la seguridad social
- SICAAC, casos de insolvencia
- Superfinanciera, quejas
- RUNT, vehículo por placa e historial del vehículo por placa
- SIMIT, estado de cuenta
- Contaduría, deudores morosos del Estado
- DIAN, validación de documento electrónico
- SUNAT, todas las consultas (RUC, documento, nombre, contribuyentes)
- RREE, carnés de extranjería
- SAT Lima, estado de cuenta y capturas
- Callao, papeletas
- SUTRAN, infracciones
- APESEG y SBS, SOAT
- SIEM, establecimientos comerciales
Las tres maneras de obtener un resultado
Las tres se apoyan en el mismo trabajo, así que elige según cada solicitud.
Si Croma ya tiene un resultado reciente para la misma consulta, cualquier
modo devuelve
200 { data } de inmediato (encabezado X-Cache: HIT) y no
se crea ningún trabajo; en el modo callback no llega ningún POST. Maneja
siempre un 200 directo.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.