API ReferenceWebhook Events

Webhook Events

Read-only audit log of every webhook delivery the system has queued or attempted on your behalf. Useful for retrospectively confirming whether a missed event was sent and what HTTP status your endpoint returned.

Manual replay is not exposed in v1 — contact TradeOn support for redeliveries.

All examples below assume Authorization: Bearer mer_live_… is set; see Authentication.

List webhook events

GET /api/v1/merchant/webhook-events

Cursor-paginated.

Query parameters

NameTypeNotes
cursorstringOpaque, from previous next_cursor.
limitint1–200, default 50.
statusenumpending / delivered / failed. Omit for all. Unknown values return 400 MERCHANT_INVALID_STATUS. (sending is a transient claim window — not a filterable value.)
order_iduuidRestrict to events for one purchase. None for balance.deposited.

Example

curl "https://api.tradeon.market/api/v1/merchant/webhook-events?status=failed&limit=10" \
  -H "Authorization: Bearer mer_live_…"
{
  "events": [
    {
      "id": "11111111-2222-3333-4444-555555555555",
      "event_type": "purchase.completed",
      "order_id": "1a2b3c4d-5e6f-7080-91a2-b3c4d5e6f708",
      "delivery_status": "failed",
      "delivery_attempts": 4,
      "last_response_code": 500,
      "created_at": "2026-05-05T16:02:14.000Z",
      "delivered_at": null
    }
  ],
  "next_cursor": null
}

Fields

FieldTypeNotes
iduuidThe event_id carried in the delivery and the body.
event_typeenumpurchase.created / purchase.sent_to_steam / purchase.completed / purchase.failed / purchase.refunded / balance.deposited.
order_iduuid | nullPurchase ID; null for balance.deposited.
delivery_statusenumpending (queued, awaiting next attempt) / delivered / failed. May transiently surface as sending while a sender replica holds the claim (≤120s); not exposed to the ?status= filter.
delivery_attemptsintAttempt counter, including any manual replays.
last_response_codeint | nullYour endpoint’s most recent HTTP status, or 0 for transport errors and pre-flight SSRF rejections.
created_atISO 8601
delivered_atISO 8601 | nullTimestamp of the successful 2xx, when applicable.

Health monitoring

A simple production signal: alert when pending events older than ~10 minutes exceed a threshold, or when failed deliveries grow over a window. We do not push this data — poll on the cadence that fits your ops setup.

See also