ORDER_WEBHOOK endpoint. Orders not created through the API do not trigger this webhook. The payload contains the full order snapshot — including amounts, pricing, and the updated status code. Your endpoint must verify the signature header and respond with {"callbackStatus": "SUCCESS"} to acknowledge receipt.
Request Headers
Order Status Codes
Orders that are canceled, rejected in API or risk review, or time out are sent with
orderStatus 70. Other statuses, such as 20, 30, 71, and 73, are not sent.
Payload Fields
string
The ID of the webhook endpoint that delivered this event.
string
Always
ORDER_WEBHOOK for this event type.string
Unique identifier for the order.
string
Your client-supplied order identifier. Omitted if you did not supply one.
string
Your VelaFi account (user) ID.
string
ID of the merchant this order belongs to.
string
ID of the merchant account setting (payment channel) used for the order.
string
Direction of the trade:
BUY (fiat → crypto) or SELL (crypto → fiat).string
Fiat currency involved in the order, e.g.
MXN.string
Fiat amount for the order.
string
Fiat amount actually paid or received.
string
Fiat fee charged for the order.
string
Cryptocurrency involved in the order, e.g.
USDT.string
Crypto amount for the order.
string
Exchange rate at which the order was executed (fiat per unit of crypto).
string
Current order status code. See the status table above.
string
Machine-readable failure code. Present only for canceled (
70) or refunded (72) orders that have a recorded failure code; omitted otherwise.string
Human-readable failure description. Present only when
failCode is present and a description is recorded.string
Unix timestamp (milliseconds) when the order was created.
string
Unix timestamp (milliseconds) when the order was last updated.
string
Unix timestamp (milliseconds) at which this delivery attempt was signed.
fiatCurrency, orderAmount, arriveOrderAmount, mcSettingsId, cryptoCurrency, and quantity, which repeat fiat, fiatAmount, arriveFiatAmount, settingsId, crypto, and cryptoAmount. Some orders include additional fields, such as bankOrderId. Ignore any fields you do not use.
Example Payload
Incoming POST body
Required Response
Return the following JSON body with HTTP status200 to acknowledge receipt:
Your response
VelaFi retries delivery if your endpoint returns a non-2xx status, does not respond in time, or returns any other body. The same event can arrive more than once, so deduplicate on
orderId together with orderStatus. See Delivery and Retries.