Send a test webhook

Webhooks

Every webhook subscription in the console now has Send test event. It sends one real delivery to your endpoint, now, through the same path a real order takes: the same signature, the same headers, the same retries, and an entry in the delivery log.

What arrives

A test delivery is an order.placed event with "test": true at the top level. The ids inside are fixed placeholders that match nothing real: the order is always ord_test_000000000000 and the user usr_test_000000.

{
  "event": "order.placed",
  "delivery_id": "dl_351eacf74201",
  "order": {
    "id": "ord_test_000000000000",
    "state": "placed",
    "store": "Layout test kitchen",
    "items": 1,
    "total_minor": 1234,
    "currency": "usd"
  },
  "user": { "id": "usr_test_000000" },
  "sent_at": "2026-09-13T10:14:03Z",
  "test": true
}

Why it matters

Until now the first delivery you could see was the first real order. A signature check that was subtly wrong, an endpoint behind the wrong firewall rule, or a handler that crashed on the payload all surfaced at the worst possible moment. Now you can find out on day one.

What to do

Ignore test deliveries in production handlers, so a test never reads as a real order:

if (payload.test) return res.status(200).end();

Look a placeholder id up and you get nothing back. That is the right answer, not a bug. See Test deliveries.

Breaking changes

None. A test delivery only ever goes to the subscription you sent it from.

All changes