Ping de teste
Só sai como entrega TEST de POST /v1/webhook-endpoints/{id}/test, assinado com o segredo atual; não é assinável. O data não está definido no TDD; o exemplo é o vetor de teste de assinatura do TDD (segredo whsec_test_secret, t=1760486400 → v1=677603e905a53a5f17864abe50e46533c38c24e08644c3d0fe78ec7bdad22700).
Escopo de leitura exigido do cliente dono do endpoint: só platform.core.
Entrega: POST na url do endpoint com Content-Type: application/json; charset=utf-8, corpo de até 256 KB, TLS 1.2+, sem seguir redirect, IP validado contra SSRF a cada tentativa. Verificar a assinatura sobre os bytes crus (nunca sobre JSON re-serializado). Entrega duplicada é esperada e a ordem não é garantida: deduplicar por id.
X-Kodano-Signature*stringt=<unix em segundos>,v1=<hex>; durante a rotação, t=<unix>,v1=<novo>,v1=<anterior>. v1 = hex minúsculo de HMAC-SHA256(chave = bytes UTF-8 do segredo inteiro, inclusive whsec_; mensagem = "{t}." + bytes crus do corpo). Rejeitar |agora − t| > 300 s, comparar em tempo constante e aceitar se qualquer v1 conferir.
X-Kodano-Event-Id*stringIgual ao id do corpo; chave de deduplicação.
^evt_X-Kodano-Event-Type*stringIgual ao type do corpo.
"payment.succeeded""payment.failed""payment.refunded""chargeback.received""withdrawal.completed""withdrawal.failed""fx.operation.settled""fx.operation.expired""fx.operation.failed""fx.operation.action_required""fx.operation.refunded""settlement.closed""webhook_endpoint.disabled""ping"User-Agent*stringKodano-Webhooks/1.0.
application/json- body
Envelope do ping; o data do ping não está definido no TDD (pergunta em aberto).
id*string^evt_type*unknownapiVersion?stringcreatedAt?stringdate-timeenvironment?string"sandbox""production"merchantId?string|nulldata?Recebido. Sucesso é qualquer 2xx em até 10 s (DNS, TLS e resposta inclusos); o corpo da resposta é ignorado.
Envelope do ping; o data do ping não está definido no TDD (pergunta em aberto).
{ "id": "evt_test", "type": "ping"}{ "X-Kodano-Signature": "t=1792155732,v1=d3e134866c73f1ace702a6dab8e1d8225c471951a3f88f395c987bc441b22962", "X-Kodano-Event-Id": "string", "X-Kodano-Event-Type": "payment.succeeded", "User-Agent": "Kodano-Webhooks/1.0"}