Webhook event
order.refunded
Confirmed refunds now equal amount_paid. status stays paid.
- Type
order.refunded- The object it carries
- the
orderobject - Subscribe with
order.refunded,order.*or*
Example payload
The body of the request your endpoint receives, shown here over several lines. On the wire it is compact JSON; check its signature over the bytes exactly as they arrive.
Example payload
{
"id": "evt_mqf69srmtz8aswc0d1yh0kv3",
"object": "event",
"livemode": true,
"created": "2026-10-12T10:13:40.000Z",
"type": "order.refunded",
"api_version": "2026-10-11",
"data": {
"object": {
"id": "ord_0zymngngvf12b8b2cra7tb8e",
"object": "order",
"livemode": true,
"created": "2026-10-11T14:03:22.418Z",
"updated": "2026-10-12T10:13:40.000Z",
"status": "paid",
"source": "checkout",
"amount": "21.99",
"currency": "USD",
"value": {
"amount": "21.99",
"currency": "USD"
},
"fx": null,
"description": "Order #1042",
"reference": "1042",
"customer": "cus_8ea07c40qsvv19f7rgmeb8ha",
"customer_email": "jane@example.com",
"line_items": [
{
"name": "Ethiopia Yirgacheffe, 1 kg",
"quantity": 1,
"unit_amount": "21.99",
"amount": "21.99",
"price": "price_mbk5s5r45kwheaq89dbmk2gz"
}
],
"settlement": {
"mode": "convert",
"asset": "base:usdc",
"amount_expected": "21.990000",
"amount_received": "21.990000",
"wallet": "wal_bsfw07hymawmda7gg8jsyy3g"
},
"fee_bearer": "payer",
"amount_paid": "21.99",
"amount_due": "0.00",
"amount_refunded": "21.99",
"paid_late": false,
"accepted_short": false,
"refunded": true,
"partially_refunded": false,
"finalized": true,
"has_unconfirmed": false,
"screening_hold": false,
"provider_refund_received": false,
"overpayment": null,
"rails_allowed": [
"orrerie_app",
"relay",
"direct"
],
"accept": [],
"app_pay_allowed": true,
"active_instruction": null,
"instructions": [
"pin_h73hkjr8dyp4zymaet5e2gbv"
],
"payments": [
"pay_2pe50hae6w2jk4sp1rcq5pae"
],
"checkout_session": "cs_z7ek5wj68fyz80j7bz1eq4e0",
"payment_link": null,
"invoice": null,
"subscription": null,
"pos_device": null,
"receipt": "rcpt_ppaxx20nbqv0kqgkwcxcc5xh",
"expires_at": "2026-10-11T15:03:22.418Z",
"paid_at": "2026-10-11T14:09:55.764Z",
"cancelled_at": null,
"metadata": {
"cart_id": "c_7781"
},
"screening": {
"status": "clear"
}
},
"previous_attributes": {
"refunded": false,
"partially_refunded": true,
"amount_refunded": "5.00"
}
},
"request": {
"id": null,
"idempotency_key": null
},
"pending_webhooks": 1
}Fields of data.object
| Field | In this example |
|---|---|
id | "ord_ |
object | "order" |
livemode | true |
created | "2026-10-11T14: |
updated | "2026-10-12T10: |
status | "paid" |
source | "checkout" |
amount | "21.99" |
currency | "USD" |
value | An object with amount, currency |
fx | null |
description | "Order #1042" |
reference | "1042" |
customer | "cus_ |
customer_email | "jane@example.com" |
line_items | A list of 1 item |
settlement | An object with mode, asset, amount_expected, amount_received, wallet |
fee_bearer | "payer" |
amount_paid | "21.99" |
amount_due | "0.00" |
amount_refunded | "21.99" |
paid_late | false |
accepted_short | false |
refunded | true |
partially_refunded | false |
finalized | true |
has_unconfirmed | false |
screening_hold | false |
provider_refund_received | false |
overpayment | null |
rails_allowed | A list of 3 items |
accept | A list of 0 items |
app_pay_allowed | true |
active_instruction | null |
instructions | A list of 1 item |
payments | A list of 1 item |
checkout_session | "cs_ |
payment_link | null |
invoice | null |
subscription | null |
pos_device | null |
receipt | "rcpt_ |
expires_at | "2026-10-11T15: |
paid_at | "2026-10-11T14: |
cancelled_at | null |
metadata | An object with cart_id |
screening | An object with status |
What each field means is on the page of the order object. data.previous_attributes holds the old values of exactly the fields that changed: here refunded, partially_refunded, amount_refunded.
Endpoints behind it
Calls that change orders. An event is also sent when a payer, the network, a timer or a person in the dashboard causes the change; the sentence above says which.
- POSTCreate an order/v1/orders
- PATCHUpdate an order/v1/orders/{id}
- POSTCancel an order/v1/orders/{id}/cancel
- POSTCreate a payment instruction/v1/orders/{id}/instructions
- POSTAccept an underpaid order as paid/v1/orders/{id}/accept_underpayment
- POSTKeep an overpayment as customer credit/v1/orders/{id}/keep_overpayment