---
title: "Create Verification Order"
description: "Creates a verification order whose test deposit activates a Standard-verified customer for trading."
canonical_url: "https://docs.stablegate.com/docs/apiref/orders/create-verification-order"
---
# Create Verification Order

> Creates a verification order whose test deposit activates a Standard-verified customer for trading.

::api-operation{color="info" endpoint="/v1/customers/{customer_uuid}/orders/verification/" method="POST"}
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

::field-group
::field{name="X-Api-Key" type="string" :required="true"}
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

::field-group
:field{name="customer_uuid" type="string<uuid>" :required="true"}
::

## Request body

::field-group
::field{name="source" type="object" :required="true"}
::collapsible{name="properties"}
::field-group
::field{name="rail" type="string" :required="true"}
Bank rail the customer pays from

One of: `sepa`, `sepa_instant`, `swift`, `ach`, `wire`
::

::field{name="asset" type="string" :required="true"}
Fiat asset of the deposit, e.g. EUR

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`, `EURC`
::
::
::
::

:field[Customer account to credit; the customer's default account when omitted]{name="account_uuid" type="string<uuid> | null"}
::

## Responses

::tabs
::tabs-item{label="200"}
Successful Response

::field-group
:field{name="uuid" type="string<uuid>" :required="true"}:field{name="reference" type="string" :required="true"}::field{name="state" type="string" :required="true"}
One of: `new`, `processing`, `done`, `hold`, `failed`, `rejected`, `rollbacked`, `cancelled`, `stopped`
::

:field{name="deposit_address" type="string | null"}::field{name="source" type="object | null"}
::collapsible{name="properties"}
::field-group
::field{name="rail" type="string" :required="true"}
One of: `bitcoin`, `sepa`, `sepa_instant`, `swift`, `ach`, `wire`, `visa`, `mastercard`, `ethereum`, `algorand`, `polygon`, `ripple`, `xinfin`, `stellar`, `tron`
::

::field{name="asset" type="string" :required="true"}
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`, `EURC`
::

:field{name="amount" type="string" :required="true"}::field{name="deposit_bank_info" type="object | null"}
::collapsible{name="properties"}
::field-group
:field{name="iban" type="string" :required="true"}:field{name="bank_name" type="string" :required="true"}:field{name="bank_code" type="string" :required="true"}:field{name="bank_country" type="string" :required="true"}:field[Payee name to put on the transfer (the Stablegate legal entity)]{name="holder_name" type="string | null"}:field[Street address of the Stablegate bank that receives the transfer]{name="bank_address" type="string | null"}
::
::
::

:field[Blockchain transaction hash of the crypto deposit. Present once the deposit is detected; null for bank and card rails.]{name="transaction_hash" type="string | null"}::field{name="deposit_status" type="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`, `rejected`
::
::
::
::

::field{name="destination" type="object | null"}
::collapsible{name="properties"}
::field-group
::field{name="rail" type="string" :required="true"}
One of: `bitcoin`, `sepa`, `sepa_instant`, `swift`, `ach`, `wire`, `visa`, `mastercard`, `ethereum`, `algorand`, `polygon`, `ripple`, `xinfin`, `stellar`, `tron`
::

::field{name="asset" type="string" :required="true"}
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`, `EURC`
::

:field{name="amount" type="string" :required="true"}:field{name="client_account" type="string" :required="true"}
::
::
::

::field{name="commission" type="object" :required="true"}
::collapsible{name="properties"}
::field-group
::field{name="asset" type="string" :required="true"}
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`, `EURC`
::

:field{name="amount" type="string | null" :required="true"}
::
::
::

::field{name="account" type="object" :required="true"}
::collapsible{name="properties"}
::field-group
:field{name="uuid" type="string<uuid>" :required="true"}:field{name="code" type="string | null"}:field{name="name" type="string | null"}::field{name="type" type="string" :required="true"}
One of: `trading`, `internal_iban`
::
::
::
::

:field{name="error_message" type="string | null"}::field{name="third_party_document_required" type="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.
::

:field[The invoice (customer document of type proof_of_third_party_deal) attached to the order.]{name="third_party_document_uuid" type="string<uuid> | null"}:field{name="created_at" type="string<date-time>" :required="true"}:field{name="valid_until" type="string<date-time> | null"}::field{name="exchange_rate" type="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.
::

::field{name="rate_valid_until" type="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.
::
::
::

::tabs-item{label="422"}
Validation Error

::field-group
:field{name="trace_id" type="string" :required="true"}::field{name="error_code" type="string" :required="true"}
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_error`
::

:field{name="message" type="string" :required="true"}::field{name="details" type="object[]" :required="true"}
::collapsible{name="properties"}
::field-group
:field{name="loc" type="string | string[]" :required="true"}:field{name="msg" type="string" :required="true"}:field{name="type" type="string" :required="true"}
::
::
::
::
::
::

::template{v-slot:samples=""}
::code-switcher{body="{"source":{"rail":"sepa","asset":"EUR"},"account_uuid":"3fa85f64-5717-4562-b3fc-2c963f66afa6"}" method="POST" path="/v1/customers/CUSTOMER_UUID/orders/verification/"}
```bash
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"
}'
```
::

::code-group
```json [200]
{
  "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"
}
```

```json [422]
{
  "trace_id": "string",
  "error_code": "devapi_internal_error",
  "message": "string",
  "details": [
    {
      "loc": "string",
      "msg": "string",
      "type": "string"
    }
  ]
}
```
::
::
::


## Sitemap

See the full [sitemap](https://docs.stablegate.com/sitemap.md) for all pages.
