Você não precisa fazer nada especial. Por padrão esses endpoints se
comportam como qualquer outro: você faz
POST e recebe { "data": … } de
volta. As opções a seguir são opt-in, para quando você preferir não manter
uma conexão aberta.Quais endpoints são assíncronos?
Estas consultas são executadas como trabalhos assíncronos: Colômbia- Consejo de Estado, busca de jurisprudência e uma providência
- Policía Nacional, antecedentes criminais
- ADRES, status de afiliação em saúde
- SICAAC, casos de insolvência
- Superfinanciera, reclamações
- RUNT, veículo por placa e histórico do veículo por placa
- SIMIT, situação da conta
- Contaduría, devedores inadimplentes do Estado
- DIAN, validação de documento eletrônico
- SUNAT, todas as consultas (RUC, documento, nome, contribuintes)
- RREE, carteiras de estrangeiro
- SAT Lima, situação da conta e capturas
- Callao, papeletas
- SUTRAN, infrações
- APESEG e SBS, SOAT
- SIEM, estabelecimentos comerciais
As três maneiras de obter um resultado
As três se apoiam no mesmo trabalho, então escolha conforme cada solicitação.
Se o Croma já tem um resultado recente para a mesma consulta, qualquer
modo retorna
200 { data } imediatamente (cabeçalho X-Cache: HIT) e
nenhum trabalho é criado; no modo callback nenhum POST chega. Sempre
trate um 200 direto.Modo 1: Esperar de forma síncrona (padrão)
Simplesmente chame o endpoint. A solicitação fica aberta até o trabalho terminar (até 55 segundos) e retorna o resultado na forma habitual{ data }, idêntica a um endpoint síncrono.
Prefer: wait=N
(segundos, limitado a 55):
200: terminou. O corpo é{ "data": … }, igual à forma síncrona.202: não terminou dentro do tempo de espera. O corpo é um envelope de trabalho; siga seustatus_urlpara fazer polling. O cabeçalhoX-Job-Idcarrega o id do trabalho.
Sempre trate tanto
200 quanto 202. Um 202 não é um erro; significa
apenas “ainda em andamento, volte para buscá-lo”.Modo 2: Polling
EnviePrefer: wait=0 para obter um 202 imediatamente, depois faça GET no
status_url do trabalho até que ele alcance um estado terminal.
GET /jobs/:id sempre retorna 200 com o envelope.
Enquanto o trabalho ainda está em execução, inclui um cabeçalho Retry-After
(segundos); use-o para regular seu polling. Os trabalhos têm escopo da sua
organização; um trabalho que pertence a outra organização aparece como 404.
Modo 3: Callback (webhook)
Inclua umcallback_url no corpo da solicitação. Você recebe um 202
imediatamente, e o Croma faz POST com o resultado para a sua URL assim que o
trabalho termina, sem necessidade de polling.
callback_url deve ser uma URL HTTPS absoluta em um host público (localhost
e as faixas privadas são rejeitados). Quando o trabalho termina, o Croma envia
um POST para ela:
- Corpo: o mesmo envelope de trabalho do endpoint de polling.
x-croma-job-id: o id do trabalho.x-croma-signature:sha256=<hmac>, um HMAC-SHA256 do corpo bruto da solicitação, para que você possa verificar a integridade da carga útil.
A verificação de assinatura usa um segredo compartilhado emitido pelo Croma;
entre em contato conosco se quiser habilitá-la para seus callbacks. Responda
2xx com rapidez; respostas diferentes de 2xx provocam novas tentativas.O envelope de trabalho
A resposta202, o GET /jobs/:id e o corpo do callback compartilham uma mesma
forma:
dataé preenchido apenas quandostatusécompleted(e coincide com a carga útildatanormal do endpoint). Caso contrário énull.erroré preenchido apenas quando o trabalho falhou (failed), como{ "type", "code", "message" }.
Estados
Referência de cabeçalhos
Erros
Como funcionam as falhas e o objeto
error.