Skip to content

payment.partial

Same shape as payment.completed, with a shortfall field. Decide in your own integration whether a partial payment fulfils the order, requires a top-up from the payer, or should be refunded manually (Send Chain payments are non-custodial and final on-chain — there is no automatic refund path).

{
"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",
"shortfall": "500000"
}

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