Withdrawing ARS
Learn how you can complete a withdrawal in ARS from your Bitso account.
Your Bitso account provides a bank transfer method to withdraw ARS and disburse them using the Argentinian local banking network. You can send money to any bank account or digital wallet. Transactions might take up to 24 business hours to settle, and Nvio Argentina operates the transactions.
Making a Withdrawal
You can withdraw your funds in two different ways depending on whether the receiving account is created in Bitso's system:
- Providing the receiving account's data: You have not created the account, so you must also specify the transaction's taxonomy in the request.
- Providing the receiving account's ID: You have previously set up the account, so the system retrieves the transaction's taxonomy from the stored account.
Recall that every withdrawal is associated with a taxonomy that identifies a currency, a method, and an integration with a payment gateway. When the account is not created, you must specify this metadata in the request body, which includes: asset, currency, method, network, and protocol.
To determine the specific values of these taxonomy parameters for the particular currency you want to withdraw, make an HTTP call to the following endpoint, which retrieves the withdrawal methods for the currency at hand, in this case, ars:
GET https://api-stage.bitso.com/v3/withdrawal_methods/{currency}
🚀 You're now ready to make your transaction. To execute a withdrawal for either a created or uncreated account, complete the following HTTP request using the appropriate body parameters:
POST https://api-stage.bitso.com/v3/withdrawals
Body Parameters
amount: The amount to be withdrawn in ARS. This value should be a positive number representing the monetary amount to be deducted from the Bitso account.asset: The digital asset in a network. In most cases, it is the same as the withdrawal currency.contact_id: Bitso-generated, unique identifier of your receiving account. You get this identifier back when you create the account.currency: The currency to withdraw using the available balance.cvu: Clave Virtual Uniforme, unique, 22-digit code that identifies a virtual, nonbank account. You can also use the CBU (Clave Bancaria Uniforme), which identifies a bank account issued either by a traditional or digital bank.max_fee: Maximum fee that the user is willing to pay for the transaction. This parameter is more helpful in crypto transactions where the volatility of blockchain fees can cause fees to be larger than the withdrawn amount. Setting a limit prevents high transaction fees.method: Withdrawal method.network: Payment network through which the withdrawal is processed.origin_id: A client-generated unique value that the server uses to recognize subsequent retries of the same request. This idempotency key helps prevent duplicated withdrawals from being processed. Valid character set:atoz(lower and uppercase),0to9, underscore,_, and dash,-. Maximum length = 40 characters, so a UUID is a valid value. Formerly, this field was calledclient_withdrawal_id, a name now deprecated and must not be used.protocol: A specific mechanism, protocol, or standard used in a network.recipient_name: Full name of the receiving account holder.
Required and Optional Parameters of the Request BodyThe examples in the following sections show optional and required fields in the request bodies. However, if you want to use only the required fields in your call, then revise the information returned by the endpoint
/withdrawal_methods/arsto identify the required and optional fields. The following JSON snippet shows an example. Anyhow, you must always send the taxonomy-related parameters.
{
"integration":"bind",
"method":"bind",
"method_description":"To any bank or digital account.",
"name":"Bank Transfer",
"network":"coelsa",
"network_description":"Transfer to any bank",
"network_name":"Bank",
"optional_fields":[
"description",
"recipient_name",
"origin_id",
"client_withdrawal_id",
"max_fee"
],
"protocol":"cvu",
"required_fields":[
"cvu"
],Withdrawal Requests Providing the Account's Data
The following object exemplifies the body parameters included in the HTTP request when the receiving account is not stored in the system:
{
"asset":"ars",
"currency":"ars",
"method":"bind",
"network":"coelsa",
"protocol":"cvu",
"amount":"10",
"max_fee":"0",
"recipient_name":"JuanJo Martinelli",
"cvu":"1430001713001199250012",
"origin_id":"bitso_f9f866bec79d"
}Withdrawal Requests Providing the Account's ID
The request object shown below exemplifies the body parameters used when you have already created the account. They include the variable contact_id, returned by the create account call. Recall that the system stores the transaction's taxonomy and the account's data when you set up the account.
If you don't have the contact ID, then retrieve your contacts list or do a filtered search. For more details, see the section, Retrieve Your Receiving Accounts List.
{
"amount":"10",
"max_fee":"0",
"contact_id":1223,
"origin_id":"bitso_312c460b4d4d"
}Withdrawal Request's Response
A successful withdrawal of funds returns the response object shown below:
{
"success":true,
"payload":{
"wid":"29614538c2667e5ff338299a318b621e",
"status":"pending",
"created_at":"2022-09-29T17:53:20+0000",
"currency":"ars",
"method":"bind",
"method_name":"Transferencia Bancaria",
"amount":"10.00",
"asset":"ars",
"network":"coelsa",
"protocol":"cvu",
"integration":"bind",
"details":{
"origin_id":"bitso_f9f866bec79d",
"cvu":"1430001713001199250012",
"description":"BITSO_COMPLETE_TRANS"
}
}
}Getting a Withdrawal Status
The payload returned by the create withdrawal call includes the variable wid, which stores the transaction's identifier. This ID can help you track your transaction by making the following HTTP call, which returns detailed information on a user's funds withdrawal:
GET https://api-stage.bitso.com/v3/withdrawals/{wid}
If you do not specify a withdrawal identifier, then it lists all your withdrawals. Visit Listing Withdrawals to learn other ways to filter your search using query parameters.
Another variable in the payload is status, which reports the withdrawal's state. Withdrawals can be in one of four possible states:
- PENDING: Bitso is currently processing and validating the withdrawal request and has not sent the transaction to the financial institution. The system found enough balance to fund the payout from your wallet, so it has created the transaction and has set this initial status.
- PROCESSING: Bitso sent the withdrawal to the financial institution and received a successful acknowledgment. This economic entity is processing the transaction and has not validated it yet.
- COMPLETE: The financial institution validated the withdrawal; the funds are now in the target wallet or account.
- FAILED: The system could not complete the withdrawal; the funds remain in the original wallet or account.
The following response object exemplifies the details retrieval for a specific withdrawal:
{
"success": true,
"payload": [
{
"wid": "29614538c2667e5ff338299a318b621e",
"status": "complete",
"created_at": "2022-09-29T17:53:20+0000",
"currency": "ars",
"method": "bind",
"method_name": "Bank Transfer",
"amount": "10.00",
"asset": "ars",
"network": "coelsa",
"protocol": "cvu",
"integration": "bind",
"details": {
"origin_id": "bitso_f9f866bec79d",
"cvu": "1430001713001199250012",
"description": "BITSO_COMPLETE_TRANS"
},
"legal_operation_entity": {
"name": "Nvio Argentina",
"country_code_iso_2": "AR",
"image_id": "nvio"
}
}
]
}Updated 2 months ago
