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

## Запрос

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://wiki.aaio.so/api/vyvod-sredstv.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
