payment.paid_after_expiry
Same shape as payment.completed. The rate
lock had already expired when the funds arrived, so the settled fiatValue
reflects the rate at quote time, not the (possibly different) rate at
arrival — decide in your own integration whether a late payment still
fulfils the order.
Payload (data)
Section titled “Payload (data)”{ "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"}See Webhooks overview for the envelope, headers, and signature verification shared by every event type.