Documentação

Webhooks

Receba o resultado de um relatório assim que ele fica pronto, sem ficar consultando a API: como assinar, verificar a origem e tratar reentrega.

O que são os webhooks

Quando um relatório atinge um estado terminal, o Minha CNH faz um POST para a URL que você configurou em Configurações → API. O corpo contém o mesmo shape do endpoint de polling.

Eventos

EventoQuando ocorre
report.deliveredPipeline completou e o diagnóstico está disponível
report.partially_deliveredRelatório entregue, mas dados complementares da consulta estadual ficaram pendentes. Se a busca for recuperada depois, um report.delivered é enviado em seguida
report.failedPipeline falhou após todas as tentativas; crédito estornado

O corpo do `report.partially_delivered` não vem vazio

Esse evento carrega status: "PROCESSING" — porque a consulta estadual ainda pode responder — e já traz diagnosis e details preenchidos com o que foi apurado.

Um handler que faz if (payload.status !== "DELIVERED") return; descarta um relatório que tem dado. Teste diagnosis !== null / details !== null para saber se há o que ler, e o status para saber se ainda vem um report.delivered depois.

Headers enviados

HeaderValor exemplo
Content-Typeapplication/json
X-MinhaCNH-Eventreport.delivered
X-MinhaCNH-Deliveryid único por entrega
X-MinhaCNH-Signaturet=1748785200,v1=<hex-sha256>
User-AgentMinhaCNH-Webhook/1.0

Fluxo de entrega

  1. Relatório atinge um estado terminal (DELIVERED, PARTIALLY_DELIVERED ou ERROR).
  2. Um registro de entrega é criado com a URL do webhook snapshotada nesse instante.
  3. Um cron de 1 minuto faz o POST para a URL, com a assinatura recomputada por tentativa.
  4. Resposta 2xx → entrega marcada como DELIVERED.
  5. Resposta não-2xx ou timeout → backoff exponencial (ver Retries e Backoff).

Próximos passos