Fluxo recomendado do consumidor
- Receba o evento.
- Faça validação básica de schema.
- Persista o ID do evento para deduplicação.
- Responda
200 OK. - Processe de forma assíncrona.
- Reconcilie com
GETse não for possível determinar o estado final com segurança.
Design seguro para retentativas
Seu consumidor deve ser seguro quando o mesmo webhook for entregue mais de uma vez.Chave de deduplicação
Use oid de topo como chave de deduplicação tanto para pagamentos quanto para transferências.
Exemplo de tabela de eventos
Exemplo de processamento
Quando reconciliar
Reconcilie quando:- seu worker cair depois do ack
- alguma dependência interna der timeout
- uma ação de fulfillment ou payout falhar no meio
- suporte ou financeiro precisar do estado mais recente
- um pagamento ou payout permanecer tempo demais em estado não final
Endpoints de reconciliação
- Pagamentos:
GET /v2/transactions/{id} - Transferências:
GET /v2/transfers/{id}
Fluxo de reconciliação
Atualizações forward-safe
No seu domínio, aplique apenas transições seguras para frente.- não volte um pedido pago para não pago por causa de lógica antiga
- não liquide o mesmo payout duas vezes
- não cumpra o pedido novamente se você já agiu em
transaction.paid

