Event types


The full catalog of webhook events. The vocabulary carries the truth: order.unconfirmed is first-class, and must never be collapsed into order.failed.

EventMeaning
order.buildingThe order was accepted and the cart is being built.
order.cartedThe cart is priced and ready. Carries store, items, modifiers, totals, and pickup time.
order.placingThe person confirmed; Layout is submitting to the merchant.
order.placedThe order reached the merchant, with evidence. Fires only on a confirmed placement.
order.failedThe order could not be placed, with a reason code. Nothing was charged.
order.unconfirmedPlacement is genuinely uncertain. Do not retry blindly and do not treat as failed — that is the double-charge trap.
order.needs_approvalA money ceremony is required. Layout hands the person a hosted link; you get the outcome.
order.challengeThe checkout raised a challenge; Layout pauses and resumes once it clears.

Example payload

{
  "event": "order.placed",
  "delivery_id": "dl_9f3a2c",
  "order": {
    "id": "ord_7c21",
    "state": "placed",
    "store": "Sweetgreen — Market St",
    "items": 2,
    "total_minor": 2140,
    "currency": "usd"
  },
  "user": { "id": "usr_4b8e" },
  "sent_at": "2026-09-10T17:01:07Z"
}