Arquitetura de Webhooks

Envelope comum dos eventos, verificação de assinatura HMAC e lista dos 11 eventos disponíveis.

Por que usar webhooks

Em vez de fazer polling repetido em GET /credit-operations/{externalContractId} (ou nos demais endpoints de consulta) para saber quando uma etapa mudou, assine os webhooks: cada evento relevante do ciclo de vida da operação, do documento ou da conta escrow dispara automaticamente uma notificação POST para a URL cadastrada pelo parceiro.

Envelope do evento

Todo webhook chega com a mesma estrutura:

{
  "eventType": "string",
  "entityId": "uuid",
  "occurredAt": "2026-08-06T12:00:00Z",
  "data": { }
}
CampoTipoDescrição
eventTypestring (enum)Tipo do evento disparado — veja lista abaixo.
entityIduuidID interno da entidade relacionada ao evento (a operação de crédito, o documento, o resultado de KYC ou a conta escrow, dependendo do evento).
occurredAtdatetimeTimestamp UTC (ISO 8601) do momento em que o evento ocorreu.
dataobjectDados completos da entidade. Para eventos de operação de crédito, tem a mesma estrutura da resposta de GET /credit-operations/{externalContractId}.

Verificando a autenticidade

Toda requisição de webhook chega com o header:

X-Laas-Webhook-Signature: sha256=<hmac-hex>

A assinatura tem o formato sha256=<hex>, onde <hex> é o HMAC-SHA256 do corpo bruto (raw body) da requisição, calculado com o secret de webhook fornecido no cadastro do parceiro. Antes de processar qualquer payload, recalcule o HMAC do corpo recebido com o seu secret, prefixe com sha256= e compare com o valor do header — descarte a requisição se não bater.

Lista de eventos

EventoCategoriaDescrição
CREDIT_OPERATION_CREATEDOperação de créditoOperação criada com sucesso (status RECEIVED).
CREDIT_OPERATION_STATUS_CHANGEDOperação de créditoQualquer mudança de status da operação.
CCB_GENERATEDCCBCCB gerada com sucesso.
CCB_GENERATION_FAILEDCCBFalha ao gerar a CCB.
CCB_SIGNING_REQUESTEDCCBAssinatura eletrônica solicitada ao tomador.
CCB_SIGNEDCCBCCB assinada pelo tomador.
DISBURSEMENT_REQUESTEDDesembolsoDesembolso solicitado à plataforma de crédito.
DISBURSEMENT_COMPLETEDDesembolsoValor desembolsado com sucesso.
DISBURSEMENT_FAILEDDesembolsoFalha ao desembolsar.
KYC_REQUESTEDKYCResultado da análise de KYC disponível.
ESCROW_ACCOUNT_CREATEDConta EscrowConta escrow aberta com sucesso no sistema bancário.

Boas práticas

  • Responda rápido: retorne 2xx assim que receber e enfileirar o evento — processe de forma assíncrona, sem bloquear a resposta.
  • Idempotência do lado do consumidor: o mesmo evento pode, em cenários raros de retry, ser entregue mais de uma vez — use entityId + eventType + occurredAt para deduplicar.
  • Disponibilidade: mantenha a URL do webhook sempre disponível; entregas com falha podem ser reenviadas, mas indisponibilidade prolongada pode levar à perda de eventos.

Did this page help you?