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.
Request price quote
Get a real-time crypto -> ARS price quote for the selected asset and network.
Create withdraw order
Submit the quoteHash along with bank payout details to create the order.
User sends crypto (on-chain)
The user transfers the crypto amount to the SettleRamp deposit address.
SettleRamp confirms on-chain receipt
Once the on-chain transfer is detected and confirmed, the order proceeds.
ARS payout to bank account
SettleRamp executes the ARS payout to the bank account provided during order creation.
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.
{{apiUrl}}/api/orders/priceHeaders
Content-Type: application/jsonNote: Include Authorization: Bearer {{_api_token}} if your environment requires it.
Request Body
{
"fromAsset": "{{cryptoAsset}}",
"fromAmount": {{amount}},
"toAsset": "ARS",
"network": "{{cryptoNetwork}}",
"kycId": "{{_kycId}}"
}Body Fields
| Field | Type | Description |
|---|---|---|
| fromAsset | string | Source crypto asset (e.g. USDT, BTC) |
| fromAmount | number | Amount of crypto to convert |
| toAsset | string | Target fiat currency (always "ARS") |
| network | string | Blockchain network (e.g. tron, ethereum) |
| kycId | string | KYC-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
quoteHashfrom the price endpoint. - Includes partner
transactionReffor idempotency. - Includes
bankDatadescribing the payout destination. callbackUrlis used for async notifications.
{{apiUrl}}/api/orders/withdrawsHeaders
Authorization: Bearer {{_api_token}}Content-Type: application/jsonRequest Body
{
"transactionRef": "txRef{{_random}}",
"bankData": {
"bankAccountId": "{{destinationBankAddress}}",
"bankAccountIdType": "CVU",
"bankName": "HNT",
"bankExtraInfo": {}
},
"quoteHash": "{{_quoteHash}}",
"callbackUrl": "{{callbackUrl}}"
}Key Fields
| Field | Type | Description |
|---|---|---|
| transactionRef | string | Unique partner reference ID for idempotency |
| bankData | object | Bank payout destination details (see body below) |
| quoteHash | string | Quote hash returned from the price endpoint |
| callbackUrl | string | URL 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.
{{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.
{{apiUrl}}/api/withdraws/affiliate?limit=10&offset=0&filter=AcceptedQuery Parameters
| Parameter | Default | Description |
|---|---|---|
| limit | 10 | Number of results per page |
| offset | 0 | Number of results to skip |
| filter | Accepted | Filter 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.