> For the complete documentation index, see [llms.txt](https://wiki.aaio.so/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.aaio.so/api/vyvod-sredstv.md).

# Вывод средств

## Запрос

<mark style="color:green;">`POST`</mark>  `https://aaio.so/api/create-payoff`

### Заголовки

`Accept: application/json` <mark style="color:red;">**\***</mark>\
`Content-Type: application/x-www-form-urlencoded` <mark style="color:red;">**\***</mark>\
`X-Api-Key: {api_key}` <mark style="color:red;">**\***</mark>

#### Определения

`{api_key}` - Ключ API из раздела <https://aaio.so/business/api/keys> с разрешениями:\ <mark style="color:green;">Вывод средств</mark>\
\ <mark style="color:red;">**\***</mark>**&#x20;- обязательные заголовки. Без них Вы не сможете получить корректный ответ.**

### Параметры <mark style="color:red;">(url-encoded)</mark>

<table><thead><tr><th width="227">name</th><th width="117">type</th><th>description</th></tr></thead><tbody><tr><td>my_id</td><td>string</td><td>ID вывода средств в Вашей системе</td></tr><tr><td>wallet <mark style="color:red;"><strong>*</strong></mark></td><td>string</td><td>Номер счета/кошелька в допустимом формате (без пробелов и разделителей)</td></tr><tr><td>amount <mark style="color:red;"><strong>*</strong></mark></td><td>double / int</td><td>Сумма вывода в RUB</td></tr><tr><td>method <mark style="color:red;"><strong>*</strong></mark></td><td>string</td><td>Кодовое название доступной платежной системы для вывода <a href="/pages/wDQoQfbv2PfPXqwNRAmw">(см. способы вывода средств)</a></td></tr><tr><td>commission_type</td><td>int</td><td>Комиссия: <br><code>0</code> - с суммы платежа (по умолчанию) <br><code>1</code> - с баланса</td></tr><tr><td>bank</td><td>int</td><td>Код банка СБП<br><strong>Поле обязательное при методе</strong> <code>sbp</code><br><br> <a href="/pages/xWSt0jBcqKwuX1FmH5gu">(банки для вывода средств на СБП)</a></td></tr><tr><td>mobile_operator</td><td>string</td><td>Кодовое название мобильного оператора.<br><strong>Поле обязательное при методе</strong> <code>mobile_ru</code><br><br><code>beeline_ru</code> - Билайн<br><code>tele2</code> - Tele2<br><code>mts_ru</code> - МТС<br><code>megafon_ru</code> - Мегафон</td></tr><tr><td>webhook_url</td><td>url</td><td>Webhook URL для отправки оповещения о выполнении либо отмене вывода.<br><br>Данный URL будет использоваться вместо того что указан в настройках аккаунта если вы укажите его в параметре.</td></tr></tbody></table>

<mark style="color:red;">Обратите внимание!</mark> Параметры передаются в формате `application/x-www-form-urlencoded`

## Примеры ответа

**Формат ответа** `application/json`

{% tabs %}
{% tab title="Успех - 200" %}
Пример если к отправке будет валюта USD, USDT, BTC, UAH:

```json
{
	"type": "success",
	"id": "52a16aea-d308-11ed-afa1-0242ac120002", // ID Вывода средств в нашей системе
	"my_id": "my_id_123", // ID Вывода средств в Вашей системе
	"method": "tether_trc20", // Кодовое название платежной системы
	"wallet": "*********", // Номер счета/кошелька
	"amount": 485, // Придёт на счет (в RUB)
	"amount_in_currency": 5, // Придёт на счет (в валюте)
	"amount_currency": "USDT", // Валюта отправки на счет
	"amount_rate": 96.92, // Курс конвертации
	"amount_down": 500, // Списано с баланса (в RUB)
	"commission": 15, // Сумма комиссии (в RUB)
	"commission_type": 0, // Тип комиссии
	"status": "in_process" // Статус (in_process - в процессе, cancel - отменено, success - выполнено)
}
```

Пример если к отправке будет валюта RUB:

```json
{
	"type": "success",
	"id": "52a16aea-d308-11ed-afa1-0242ac120002", // ID Вывода средств в нашей системе
	"my_id": "my_id_123", // ID Вывода средств в Вашей системе
	"method": "qiwi", // Кодовое название платежной системы
	"wallet": "*********", // Номер счета/кошелька
	"amount": 485, // Придёт на счет (в RUB)
	"amount_in_currency": 485, // Придёт на счет (в валюте)
	"amount_currency": "RUB", // Валюта отправки на счет
	"amount_down": 500, // Списано с баланса (в RUB)
	"commission": 15, // Сумма комисии (в RUB)
	"commission_type": 0, // Тип комиссии
	"status": "in_process" // Статус (in_process - в процессе, cancel - отменено, success - выполнено)
}
```

{% endtab %}

{% tab title="Ошибка: 400, 401, 429, 500, 503  " %}
**Пользовательские коды ошибок** - `400`, `401`, `429`\
**Серверные коды ошибок** - `500`, `503`

```json
{
  "type": "fail",
  "code": "400",
  "message": "message"
}
```

{% endtab %}

{% tab title="Другой код ответа" %}
Если код ответа другой, то возможна проблема на стороне сервера API. \
**Рекомендуем учитывать такие ситуации в коде.**
{% endtab %}
{% endtabs %}

## Готовые примеры запроса

{% tabs %}
{% tab title="cURL" %}

```bash
curl -X 'POST' \
'https://aaio.so/api/create-payoff' \
-H 'accept: application/json' \
-H 'x-api-key: API_KEY' \
-d 'my_id=my_id_123' \
-d 'method=tether_trc20' \
-d 'amount=500' \
-d 'commission_type=0' \
-d 'wallet=*********'
```

{% endtab %}

{% tab title="PHP" %}

```php
<?php
$api_key = ''; // Ключ API из раздела https://aaio.so/cabinet/api
$my_id = 'my_id_123'; // ID вывода средств в Вашей системе
$method = 'tether_trc20'; // Кодовое название платежной системы
$amount = 500; // Сумма вывода
$wallet = '*********'; // Номер счета/кошелька
$commission_type = 0; // Тип комиссии

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://aaio.so/api/create-payoff');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    	'Accept: application/json',
	'X-Api-Key: ' . $api_key
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
	'my_id' => $my_id,
	'method' => $method,
	'amount' => $amount,
	'wallet' => $wallet,
	'commission_type' => $commission_type
]));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15); // Таймаут подключения к нашему серверу
curl_setopt($ch, CURLOPT_TIMEOUT, 60); // Таймаут обработки запроса

$result = curl_exec($ch); // Ответ
$http_code = curl_getinfo($ch, CURLINFO_RESPONSE_CODE); // Код ответа

if (curl_errno($ch)) {
	die('Connect error:' . curl_error($ch)); // Вывод ошибки соединения
}
curl_close($ch);

if(!in_array($http_code, [200, 400, 401])) {
	die('Response code: ' . $http_code); // Вывод неизвестного кода ответа
}

$decoded = json_decode($result, true); // Парсинг результа. На выходе получаем массив данных

if(json_last_error() !== JSON_ERROR_NONE) {
	die('Не удалось пропарсить ответ');
}

if($decoded['type'] == 'success') {
	print_r($decoded); // Вывод результата
} else {
	die('Ошибка: ' . $decoded['message']); // Вывод ошибки
}
```

{% endtab %}

{% tab title="Python" %}

```python
import requests, sys
from requests.exceptions import ConnectTimeout, ReadTimeout

url = 'https://aaio.so/api/create-payoff'
api_key = '' # Ключ API из раздела https://aaio.so/cabinet/api
my_id = 'my_id_123' # ID вывода средств в Вашей системе
method = 'tether_trc20' # Кодовое название платежной системы
amount = 500; # Сумма вывода
wallet = '' # Номер счета/кошелька
commission_type = 0 # Тип комиссии

params = {
    'my_id': my_id,
    'method': method,
    'amount': amount,
    'wallet': wallet,
    'commission_type': commission_type,
}

headers = {
    'Accept': 'application/json',
    'X-Api-Key': api_key
}

try:
    response = requests.post(url, data=params, headers=headers, timeout=(15, 60))
except ConnectTimeout:
    print('ConnectTimeout') # Не хватило времени на подключение к сайту
    sys.exit()
except ReadTimeout:
    print('ReadTimeout') # Не хватило времени на выполнение запроса
    sys.exit()

if(response.status_code in [200, 400, 401]):
    try:
        response_json = response.json() # Парсинг результата
    except:
        print('Не удалось пропарсить ответ')
        sys.exit()

    if(response_json['type'] == 'success'):
        print(response_json) # Вывод результата
    else:
        print('Ошибка: ' + response_json['message']) # Вывод ошибки
else:
    print('Response code: ' + str(response.status_code)) # Вывод неизвестного кода ответа

```

{% endtab %}
{% endtabs %}
