POST /v1/stable/order/submit-order — lock a prior quote into an order.| field | required | notes |
|---|---|---|
quoteId | yes | from get-quote; must not be expired |
merchantOrderId | recommended | merchant idempotency / reconciliation key |
remarks | no | free text |
data#merchantOrderId, orderId, orderStatus (processing | success | fail).STABLE_ORDER_UPDATED. Do not treat HTTP 200 alone as funds settled.{
"quoteId": "e49ddd0a21404dbc95df1d35771d7024",
"merchantOrderId": "BPN_RD_OFFRAMP_1788788907",
"userRefundCryptoAddress": {
"address": "0xUserBinanceWithdrawAddress",
"network": "ETH",
"currency": "USDT"
},
"extInfo": {
"returnUrl": "https://merchant.example.com/rd/return",
"cancelUrl": "https://merchant.example.com/rd/cancel",
"travelRule": {
"originatorName": "Sample Trading Limited",
"beneficiaryName": "Sample Trading Limited",
"customerType": "CORPORATE",
"country": "HK",
"address": "1 Queen's Road Central, Hong Kong",
"residenceCountry": "HK"
}
}
}curl --location '/v1/stable/order/submit-order' \
--header 'API-KEY: <api-key>' \
--header 'API-SIGNATURE: <api-key>' \
--header 'API-TIMESTAMP: <api-key>' \
--header 'Content-Type: application/json' \
--data '{
"quoteId": "e49ddd0a21404dbc95df1d35771d7024",
"merchantOrderId": "BPN_RD_OFFRAMP_1788788907",
"userRefundCryptoAddress": {
"address": "0xUserBinanceWithdrawAddress",
"network": "ETH",
"currency": "USDT"
},
"extInfo": {
"returnUrl": "https://merchant.example.com/rd/return",
"cancelUrl": "https://merchant.example.com/rd/cancel",
"travelRule": {
"originatorName": "Sample Trading Limited",
"beneficiaryName": "Sample Trading Limited",
"customerType": "CORPORATE",
"country": "HK",
"address": "1 Queen'\''s Road Central, Hong Kong",
"residenceCountry": "HK"
}
}
}'{
"status": 200,
"code": "SUCCESS",
"msg": "OK",
"success": true,
"traceId": "tr_3",
"data": {
"merchantOrderId": "m_20260730_001",
"orderId": "ord_123",
"orderStatus": "processing"
}
}