Skip to main content

Supported events

EventStatusDescription
order.createdActiveA new order was created
order.status_updatedActiveAn order status changed or a milestone was reached
Events marked Configured can be selected when creating a webhook but are not yet emitted by all backend flows. order.created and order.status_updated are actively emitted today.

Envelope

All events share this structure:
{
  "id": "131a1559-3723-4c6b-b133-f5d5747c2bfa",
  "type": "order.created",
  "data": { ... }
}
FieldDescription
idUnique outbox event ID (also in x-st-webhook-id header)
typeEvent type string
dataEvent-specific payload

order.created

Emitted when a new order is created.

Payload (data)

FieldTypeDescription
orderIdstring (UUID)Order identifier
offeringIdstring (UUID)Offering identifier
accountIdstring (UUID)Account identifier
statusstringOrder status (e.g. ORDERED)
unitsstringToken amount in smallest unit. Divide by 10^decimals for the human-readable amount. Example: "98700000000" with 8 decimals = 987 tokens. See Units and decimals.
amountnumber | nullOrder amount in currency
currencystring | nullCurrency code (e.g. USD)
walletIdstring | nullLinked wallet ID
walletAddressstring | nullBlockchain wallet address
createdAtstringISO 8601 creation timestamp

Example

{
  "id": "131a1559-3723-4c6b-b133-f5d5747c2bfa",
  "type": "order.created",
  "data": {
    "orderId": "f85ff5bd-b923-49d3-ad03-c89f62cbecef",
    "offeringId": "540e3424-ec22-4d69-9821-001fe1d1ac2f",
    "accountId": "dabc6029-db0e-422e-a151-007cda958bf6",
    "status": "ORDERED",
    "units": "98700000000",
    "amount": 98700,
    "currency": "USD",
    "walletId": null,
    "walletAddress": null,
    "createdAt": "2026-07-12T01:30:09.064Z"
  }
}
Key order in data matches server serialization. Use the raw body for signature verification, not a manually reordered copy.

order.status_updated

Emitted when an order transitions status or reaches a milestone.

Payload (data)

FieldTypeDescription
orderIdstring (UUID)Order identifier
milestonestringMilestone name (see below)
previousStatusstring | nullPrevious order status
currentStatusstringCurrent order status
updatedAtstringISO 8601 timestamp
walletIdstring | nullWallet ID (when relevant)
walletAddressstring | nullWallet address (when relevant)

Milestones

MilestoneDescription
issuer_approvedOrder confirmed by issuer
issuer_rejectedOrder cancelled before payment
whitelistedAccount whitelisted
no_paymentMarked as no payment required
paidPayment received
ready_to_mintReady for tokenization
tokenization_startedMinting in progress
tokenization_completedTokens minted
wallet_addedWallet linked to a paid order

Example

{
  "id": "a2b3c4d5-e6f7-8901-abcd-ef1234567890",
  "type": "order.status_updated",
  "data": {
    "orderId": "f85ff5bd-b923-49d3-ad03-c89f62cbecef",
    "milestone": "paid",
    "previousStatus": "READYTOPAY",
    "currentStatus": "PAID",
    "updatedAt": "2026-07-12T02:15:00.000Z",
    "walletId": null,
    "walletAddress": null
  }
}