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}}/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. tron, ethereum)
kycIdstringKYC-approved customer identifier

Response

{
  // response example pending
}

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}}/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

Response

{
  // response example pending
}

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}}/api/orders/withdraws/{{_wOrderId}}

Headers

Note: Authentication is required. Include your Bearer token.

Response

{
  // response example pending
}

Get All Withdraws (Affiliate)

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

GET{{apiUrl}}/api/withdraws/affiliate?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)

Response

{
  // response example pending
}

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