Orders – Withdraw (Crypto → ARS)

The Withdraw flow allows partners to convert a crypto asset into ARS and pay out to a local bank account. The flow is quote-based and asynchronous. Partners first request a price quote and then create a withdraw order using the returned quoteHash.

Important: Quotes are time-limited. Create the withdraw order promptly after receiving a quote to avoid expiry. The user must send crypto on-chain after order creation.

High-level Flow

A typical withdraw follows six steps from quote to ARS payout.

1

Request price quote

Get a real-time crypto -> ARS price quote for the selected asset and network.

2

Create withdraw order

Submit the quoteHash along with bank payout details to create the order.

3

User sends crypto (on-chain)

The user transfers the crypto amount to the SettleRamp deposit address.

4

SettleRamp confirms on-chain receipt

Once the on-chain transfer is detected and confirmed, the order proceeds.

5

ARS payout to bank account

SettleRamp executes the ARS payout to the bank account provided during order creation.

6

Partner receives status updates

Status changes are delivered via the callbackUrl and can also be polled at any time.

Create Order Price (Withdraw Quote)

Request a real-time price quote for a crypto-to-ARS conversion. The returned quoteHash is required to create the withdraw order.

POST{{apiUrl}}/settle/api/orders/price

Headers

Content-Type: application/json

Note: Include Authorization: Bearer {{_api_token}} if your environment requires it.

Request Body

{
  "fromAsset": "{{cryptoAsset}}",
  "fromAmount": {{amount}},
  "toAsset": "ARS",
  "network": "{{cryptoNetwork}}",
  "kycId": "{{_kycId}}"
}

Body Fields

FieldTypeDescription
fromAssetstringSource crypto asset (e.g. USDT, BTC)
fromAmountnumberAmount of crypto to convert
toAssetstringTarget fiat currency (always "ARS")
networkstringBlockchain network (e.g. stellar, gnosis, base)
kycIdstringKYC-approved customer identifier

Create Withdraw Order

Creates a new withdraw order using the quoteHash returned from the pricing endpoint. Key details:

  • Requires quoteHash from the price endpoint.
  • Includes partner transactionRef for idempotency.
  • Includes bankData describing the payout destination.
  • callbackUrl is used for async notifications.
POST{{apiUrl}}/settle/api/orders/withdraws

Headers

Authorization: Bearer {{_api_token}}Content-Type: application/json

Request Body

{
  "transactionRef": "txRef{{_random}}",
  "bankData": {
    "bankAccountId": "{{destinationBankAddress}}",
    "bankAccountIdType": "CVU",
    "bankName": "HNT",
    "bankExtraInfo": {}
  },
  "quoteHash": "{{_quoteHash}}",
  "callbackUrl": "{{callbackUrl}}"
}

Key Fields

FieldTypeDescription
transactionRefstringUnique partner reference ID for idempotency
bankDataobjectBank payout destination details (see body below)
quoteHashstringQuote hash returned from the price endpoint
callbackUrlstringURL for async status notifications

Get Withdraw Order Status

Query the current status of a specific withdraw order at any time using the order ID returned during creation.

GET{{apiUrl}}/settle/api/orders/withdraws/{{_wOrderId}}

Headers

Note: Authentication is required. Include your Bearer token.

Get All Withdraws (Affiliate)

Retrieve a paginated list of all withdraw orders for the affiliate with optional status filtering.

GET{{apiUrl}}/api/orders/withdraws?limit=10&offset=0&filter=Accepted

Query Parameters

ParameterDefaultDescription
limit10Number of results per page
offset0Number of results to skip
filterAcceptedFilter by order status (e.g. Accepted)

Notes

  • Quote-based flow: price first, then create order.

  • Orders are asynchronous; status evolves over time.

  • Use callbackUrl for event-driven updates and polling for resilience.

  • transactionRef should be unique per partner to prevent duplicates.

Next Steps