Skip to content

payment.overpaid

Same shape as payment.completed, with an excess field. The full amount — expected plus excess — always settles to your own wallet; Send Chain never retains the difference.

{
"livemode": false,
"paymentId": "pay_test_00000000",
"paymentRequestId": "req_test_00000000",
"origin": { "type": "link", "id": "lnk_test_00000000", "title": "Sample link" },
"supporter": { "id": "sup_test_00000000", "handle": "sample_supporter", "message": "Test payment" },
"asset": "USDC",
"chain": "base",
"onchainAmount": "15000000",
"feeAmount": "75000",
"decimals": 6,
"fiatValue": { "minor": 1500, "currency": "USD" },
"rateBasis": "Locked",
"txRef": "0xtesttx",
"confirmations": 12,
"completedAt": "2026-09-13T00:00:00Z",
"excess": "250000"
}

See Webhooks overview for the envelope, headers, and signature verification shared by every event type.