Headers enviados
Content-Type: application/jsonX-XXXPay-Webhook-TimestampX-XXXPay-Webhook-Signature
Sempre que uma cobranca muda de estado, a XXXPay envia um POST para o clientCallbackUrl informado na criacao da cobranca.
Content-Type: application/jsonX-XXXPay-Webhook-TimestampX-XXXPay-Webhook-SignatureO HMAC é calculado como sha256(timestamp + "." + rawBody) usando o client_secret da conta.
{
"transaction_id": "pedido-1001",
"status": "COMPLETED",
"amount": 25.9,
"fee": 0.5,
"net_amount": 25.4,
"gross_amount": 25.9,
"deposit_rate": 0,
"percentage_fee": 0,
"fixed_fee": 0.5,
"type": "Deposit"
}
Use o corpo bruto do request para validar a assinatura antes de qualquer parse ou mutacao.
Rejeite callbacks com timestamp muito antigo para reduzir risco de replay.
Use transaction_id como chave unica do lado do seller.