跳到主要内容

Webhooks do Pedido

A cada transição de status do pedido, a QI Tech envia um webhook do tipo insurance.order.status_changed para a URL de callback configurada. O evento identifica o pedido pelo order_key e carrega o novo status.

Webhooks são notificações, não a fonte da verdade

A entrega dos webhooks é do tipo best-effort. Não dependa exclusivamente deles: um evento perdido é sempre recuperável consultando o pedido em GET /v1/insurance/order.

Configuração de webhooks

Para receber webhooks é necessário ter uma URL de callback configurada. Veja Autenticação — Recebimento de webhooks.

Estrutura do webhook

CampoTipoDescrição
webhook_typestringSempre insurance.order.status_changed.
webhook_datetimestringData e hora do evento no formato ISO 8601.
dataobjectDados do evento. Veja tabela abaixo.

Atributos de data

CampoTipoDescrição
order_keystringChave do pedido.
statusstringNovo status do pedido.
customer_document_numberstringDocumento do segurado.
reasonarray / stringMotivo, quando aplicável: a lista de decline_reasons em rejected, o motivo informado em cancelled. null nos demais casos — a chave está sempre presente.
product_countintegerQuantidade de produtos do pedido. No evento de emitted, é o número de apólices que serão emitidas.
Estrutura padrão do webhook
{
"webhook_type": "insurance.order.status_changed",
"webhook_datetime": "2026-07-16T14:03:22Z",
"data": {
"order_key": "5e2b3f60-7c4b-4c8e-9f1a-6d2e8b4a7c90",
"status": "status",
"customer_document_number": "96969879003",
"reason": null
}
}

Eventos por status

Pedido criado

STATUS
awaiting_payment

Enviado quando a submissão é concluída com sucesso. O pedido aguarda o pagamento da primeira parcela pelo payment_artifact Pix retornado na criação do pedido.


Pedido recusado

STATUS
rejected

Enviado quando o pedido nasce recusado na submissão porque a precificação recusou ao menos uma linha. O campo reason traz a lista de decline_reasons.


Pedido emitido

STATUS
emitted

Enviado quando o pagamento é confirmado e a emissão das apólices é disparada. O campo product_count indica quantas apólices serão criadas — o evento não carrega as chaves das apólices, porque elas são emitidas de forma assíncrona logo em seguida. Descubra-as com GET /v1/insurance/policies?order_key= ou aguarde os webhooks de apólice.

Webhook Body
{
"webhook_type": "insurance.order.status_changed",
"webhook_datetime": "2026-07-16T14:03:22Z",
"data": {
"order_key": "5e2b3f60-7c4b-4c8e-9f1a-6d2e8b4a7c90",
"status": "emitted",
"customer_document_number": "96969879003",
"reason": null,
"product_count": 2
}
}

Pedido expirado

STATUS
expired

Enviado quando o prazo de pagamento (expires_at) vence sem confirmação. A expiração nunca desfaz um pagamento válido: se o pagamento for confirmado antes do processamento da expiração, o pedido é emitido normalmente e este evento não ocorre.


Pedido cancelado

STATUS
cancelled

Enviado quando o cancelamento pré-emissão é concluído. O campo reason traz o motivo informado no cancelamento, quando houver. O cancelamento pós-emissão não gera este evento — o pedido permanece emitted e o acompanhamento é pelos webhooks de apólice.

Atenção!

Os webhooks da QI Tech não devem ser mapeados de forma estrita. Campos adicionais podem ser incluídos aos payloads dos webhooks retornados em nossas APIs.