A HubCred pode notificar seu sistema automaticamente sempre que o status de uma operação mudar — assim você não precisa ficar consultando (polling) a API. Quando o status muda, enviamos um POST para a URL de callback que você configurou, com um objeto JSON descrevendo o evento.

Como funciona

  • O evento é operation.status_changed, disparado a cada mudança de status de uma operação sua.
  • A entrega é assíncrona: você recebe o webhook poucos instantes após a mudança (não no mesmo instante da ação).
  • A entrega é confiável: se o seu endpoint não responder 2xx, tentamos novamente em intervalos fixos; após esgotar as tentativas, o evento vai para uma fila de dead-letter e pode ser reprocessado.
  • Ordenação por operação: eventos de uma mesma operação chegam na ordem em que aconteceram; operações diferentes são entregues em paralelo.
Entrega “pelo menos uma vez” (at-least-once). Em cenários raros de falha, um mesmo evento pode ser reenviado. Use o eventId (também no header X-Hubcred-Event-Id) para deduplicar no seu lado.

Configuração

A URL de callback e o secret de assinatura são configurados pela HubCred por loja/integração. Fale com o seu contato HubCred para cadastrar ou rotacionar:
  • URL de callback — o endpoint HTTPS que receberá os POST.
  • Secret — chave para você validar que a requisição veio da HubCred (enviada no header X-Hubcred-Token).

Segurança

Todo webhook chega com os headers abaixo. Valide sempre o X-Hubcred-Token.
Nunca processe um webhook cujo X-Hubcred-Token não corresponda ao seu secret.

Resposta esperada

Responda rápido com qualquer código 2xx (ex.: 200 OK) assim que receber e persistir o evento — de preferência antes de processá-lo (processe de forma assíncrona). Qualquer resposta diferente de 2xx, timeout ou erro de rede é tratada como falha e o evento será reenviado.

Exemplo do objeto enviado

Corpo do POST

Campos

eventId
string (UUID)
Identificador único do evento. Estável entre reenvios — use para deduplicar.
eventType
string
Sempre operation.status_changed nesta versão.
occurredAt
string (ISO 8601)
Data/hora em que o status mudou.
operationCode
string
Código público da operação (o mesmo usado na API de integração).
product
number
Código do produto da operação (ver tabela de produtos).
previousStatus
number
Status anterior (ver tabela de status).
newStatus
number
Status novo.
statusDescription
string
Descrição legível do newStatus em PT-BR.
operation
object
Snapshot da operação no momento do evento.
Compatibilidade: podemos adicionar novos campos no futuro. Ignore campos desconhecidos e não dependa da ordem dos campos.

Tabela de status

Trate status desconhecidos com tolerância: novos códigos podem ser introduzidos. Se receber um código que não conhece, registre e ignore em vez de quebrar o processamento.

Tabela de produtos

Status por produto

Cada produto emite um subconjunto dos status. A tabela lista os status que normalmente ocorrem em cada produto; alguns são transversais (ver notas).
Status transversais. 12/13 (biometria/assinatura) ocorrem em produtos com assinatura eletrônica; 10 (Perda) por expiração automática; a pré-análise de crédito pode emitir 1, 5, 80, 15, 9 antes da esteira do produto. Os status em negrito são (quase) exclusivos daquele produto: 91/92 = Consignado; 8386 = CDC (NF); 101 = celular; 16/102/103 = Operação Estruturada; 17 = CDC Hub.

Boas práticas

1

Valide o token

Confira o X-Hubcred-Token em toda requisição e rejeite (401) se não bater.
2

Responda 2xx rápido

Confirme o recebimento e processe de forma assíncrona no seu lado.
3

Deduplique por eventId

Pode haver reenvio; ignore eventos já processados.
4

Tolere o desconhecido

Aceite campos e status novos sem quebrar — o contrato evolui de forma aditiva.
Use operationCode para casar o evento com a operação no seu sistema; se precisar de mais dados, consulte a operação pela Referência da API.