Orders
Create Verification Order
Creates a verification order whose test deposit activates a Standard-verified customer for trading.
POST
/v1/customers/{customer_uuid}/orders/verification/The customer pays a fixed verification amount (1 unit of the asset; it is kept as the order commission) from their own bank account to the bank details in source.deposit_bank_info, quoting reference; once the deposit arrives the order completes automatically and the account is activated. Only bank rails and fiat assets are accepted. When verification is not configured for the requested rail, the call answers 400. Poll the order with GET /customers/{customer_uuid}/orders/{order_uuid}/.
Authorization
X-Api-Key
string required
API key generated in the Developers section of the Stablegate app. Send it in the
X-Api-Key header on every request; the partner API does not require request signing.Path parameters
customer_uuid
string<uuid> required
Request body
source
object required
rail
string required
Bank rail the customer pays fromOne of:
sepa, sepa_instant, swift, ach, wireasset
string required
Fiat asset of the deposit, e.g. EUROne of:
EUR, USD, AED, CHF, GBP, CAD, AUD, NZD, CNY, HKD, JPY, SGD, THB, ILS, SAR, ZAR, PLN, ETH, BTC, XLM, TRX, MYR, USDT, USDC, EURS, EURCaccount_uuid
string<uuid> | null
Customer account to credit; the customer's default account when omitted
Responses
Successful Response
uuid
string<uuid> required
reference
string required
state
string required
One of:
new, processing, done, hold, failed, rejected, rollbacked, cancelled, stoppeddeposit_address
string | null
source
object | null
rail
string required
One of:
bitcoin, sepa, sepa_instant, swift, ach, wire, visa, mastercard, ethereum, algorand, polygon, ripple, xinfin, stellar, tronasset
string required
One of:
EUR, USD, AED, CHF, GBP, CAD, AUD, NZD, CNY, HKD, JPY, SGD, THB, ILS, SAR, ZAR, PLN, ETH, BTC, XLM, TRX, MYR, USDT, USDC, EURS, EURCamount
string required
deposit_bank_info
object | null
iban
string required
bank_name
string required
bank_code
string required
bank_country
string required
holder_name
string | null
Payee name to put on the transfer (the Stablegate legal entity)
bank_address
string | null
Street address of the Stablegate bank that receives the transfer
transaction_hash
string | null
Blockchain transaction hash of the crypto deposit. Present once the deposit is detected; null for bank and card rails.
deposit_status
string | null
Status of the customer's deposit for this order:
received, confirmed, credited, on_hold or rejected. null until a deposit is detected.One of: received, confirmed, credited, on_hold, rejecteddestination
object | null
rail
string required
One of:
bitcoin, sepa, sepa_instant, swift, ach, wire, visa, mastercard, ethereum, algorand, polygon, ripple, xinfin, stellar, tronasset
string required
One of:
EUR, USD, AED, CHF, GBP, CAD, AUD, NZD, CNY, HKD, JPY, SGD, THB, ILS, SAR, ZAR, PLN, ETH, BTC, XLM, TRX, MYR, USDT, USDC, EURS, EURCamount
string required
client_account
string required
commission
object required
asset
string required
One of:
EUR, USD, AED, CHF, GBP, CAD, AUD, NZD, CNY, HKD, JPY, SGD, THB, ILS, SAR, ZAR, PLN, ETH, BTC, XLM, TRX, MYR, USDT, USDC, EURS, EURCamount
string | null required
account
object required
uuid
string<uuid> required
code
string | null
name
string | null
type
string required
One of:
trading, internal_ibanerror_message
string | null
third_party_document_required
boolean
The destination is a third-party bank account and the source amount is above the invoice threshold. Until its invoice is attached (
third_party_document_uuid on creation or POST .../orders/{order_uuid}/third-party-document/), such an order is not executed automatically: it waits for the operator.third_party_document_uuid
string<uuid> | null
The invoice (customer document of type proof_of_third_party_deal) attached to the order.
created_at
string<date-time> required
valid_until
string<date-time> | null
exchange_rate
string | null
Exchange rate currently applied to the order: destination asset units per one source asset unit, the same value
check-fees returns. Re-priced until the deposit arrives; null when the order has no exchange step.rate_valid_until
string<date-time> | null
Time until which
exchange_rate and destination.amount are held. While the order is new and unfunded they are recalculated after this time; null once the deposit is received or for orders that are not re-priced.Validation Error
trace_id
string required
error_code
string required
One of:
devapi_internal_error, devapi_request_validation_error, devapi_iban_parse_error, devapi_customer_close_error, devapi_bank_code_required_error, devapi_download_aol_error, devapi_not_found_error, devapi_bad_request_error, devapi_email_occupied_error, devapi_idempotency_invalid_key, devapi_idempotency_key_misuse, devapi_idempotency_request_in_progress, devapi_kyc_application_link_error, devapi_instant_verification_error, devapi_unauthorized_error, devapi_forbidden_error, devapi_method_not_allowed_error, devapi_service_unavailable_errormessage
string required
details
object[] required
loc
string | string[] required
msg
string required
type
string required
curl https://api.stablegate.com/v1/customers/CUSTOMER_UUID/orders/verification/ \
--request POST \
--header 'X-Api-Key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{
"source": {
"rail": "sepa",
"asset": "EUR"
},
"account_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}'
{
"uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"reference": "string",
"state": "new",
"deposit_address": "string",
"source": {
"rail": "bitcoin",
"asset": "EUR",
"amount": "string",
"deposit_bank_info": {
"iban": "string",
"bank_name": "string",
"bank_code": "string",
"bank_country": "string",
"holder_name": "string",
"bank_address": "string"
},
"transaction_hash": "string",
"deposit_status": "received"
},
"destination": {
"rail": "bitcoin",
"asset": "EUR",
"amount": "string",
"client_account": "string"
},
"commission": {
"asset": "EUR",
"amount": "string"
},
"account": {
"uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"code": "string",
"name": "string",
"type": "trading"
},
"error_message": "string",
"third_party_document_required": true,
"third_party_document_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"created_at": "2026-01-01T00:00:00Z",
"valid_until": "2026-01-01T00:00:00Z",
"exchange_rate": "string",
"rate_valid_until": "2026-01-01T00:00:00Z"
}
{
"trace_id": "string",
"error_code": "devapi_internal_error",
"message": "string",
"details": [
{
"loc": "string",
"msg": "string",
"type": "string"
}
]
}