Webhooks
Set a webhook URL in Agent Payments → Settings. KAIRO POSTs JSON after a payment is settled and confirmed on Arc. Up to 3 attempts, 5-second timeout, no redirects followed. De-duplicate on KAIRO-Event-Id.
Events
payment.settledtest.ping(from the Send test button)
Signature
KAIRO-Signature: t=<unix>,v1=<hex HMAC-SHA256(secret, "<t>.<raw body>")>. Reject if older than 5 minutes. The same secret signs X-KAIRO-Payment-Proof on paid requests over "<paymentId>:<txHash>".
payment.settled
{
"event": "payment.settled",
"created": 1793000000,
"data": { "id":"…","category":"x402_payment","resource":"https://kairo.market/api/public/x402/r/…",
"gross":"50000","fee":"250","net":"49750","network":"eip155:5042","transaction":"0x…","payer":"0x…" }
}