Ask for an invitation
Menu

Webhook event

order.finalized

High-value orders only (above US$10,000 on Ethereum and the rollups): the payments behind an order that was already paid are now final on the network. A shop shipping something expensive waits for this.

Type
order.finalized
The object it carries
the order object
Subscribe with
order.finalized, 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_xfaa0h4knjms050q3r2kemjy",
  "object": "event",
  "livemode": true,
  "created": "2026-10-11T14:09:55.764Z",
  "type": "order.finalized",
  "api_version": "2026-10-11",
  "data": {
    "object": {
      "id": "ord_0zymngngvf12b8b2cra7tb8e",
      "object": "order",
      "livemode": true,
      "created": "2026-10-11T14:03:22.418Z",
      "updated": "2026-10-11T14:09:55.764Z",
      "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": "0.00",
      "paid_late": false,
      "accepted_short": false,
      "refunded": false,
      "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": {
      "finalized": false,
      "has_unconfirmed": true
    }
  },
  "request": {
    "id": null,
    "idempotency_key": null
  },
  "pending_webhooks": 1
}

Fields of data.object

Fields of data.object in order.finalized
FieldIn this example
id"ord_0zymngngvf12b8b2cra7tb8e"
object"order"
livemodetrue
created"2026-10-11T14:03:22.418Z"
updated"2026-10-11T14:09:55.764Z"
status"paid"
source"checkout"
amount"21.99"
currency"USD"
valueAn object with amount, currency
fxnull
description"Order #1042"
reference"1042"
customer"cus_8ea07c40qsvv19f7rgmeb8ha"
customer_email"jane@example.com"
line_itemsA list of 1 item
settlementAn object with mode, asset, amount_expected, amount_received, wallet
fee_bearer"payer"
amount_paid"21.99"
amount_due"0.00"
amount_refunded"0.00"
paid_latefalse
accepted_shortfalse
refundedfalse
partially_refundedfalse
finalizedtrue
has_unconfirmedfalse
screening_holdfalse
provider_refund_receivedfalse
overpaymentnull
rails_allowedA list of 3 items
acceptA list of 0 items
app_pay_allowedtrue
active_instructionnull
instructionsA list of 1 item
paymentsA list of 1 item
checkout_session"cs_z7ek5wj68fyz80j7bz1eq4e0"
payment_linknull
invoicenull
subscriptionnull
pos_devicenull
receipt"rcpt_ppaxx20nbqv0kqgkwcxcc5xh"
expires_at"2026-10-11T15:03:22.418Z"
paid_at"2026-10-11T14:09:55.764Z"
cancelled_atnull
metadataAn object with cart_id
screeningAn 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 finalized, has_unconfirmed.

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.