O gateway envia webhooks para a callback_url configurada no Cash-In ou automaticamente no Cash-Out. Webhooks podem chegar antes do registro existir no banco; nesse caso, devem ser ignorados com resposta 200 OK.
Formato do payload
json
{
"event": "transaction | withdrawal",
"status": "pending | processing | paid | failed | canceled | refunded",
"transaction_id": "external_id"
}
Eventos suportados
- transaction — depósitos (PIX / Crypto)
- withdrawal — saques (PIX / Crypto)
Comportamento esperado
- Webhooks duplicados podem ocorrer
- Webhooks fora de ordem podem ocorrer
- Status finais devem ser tratados como idempotentes