Баланс клиента
Баланс клиента
POST
https://gptunnel.ru/api/v1/balance/get Возвращает текущий остаток на счёте клиента. Клиент задаётся ровно одним полем:
user_id— личный счёт пользователя;org_id— счёт организации.
Метод только читает данные, заголовок Idempotency-Key не нужен.
Headers
| Параметр | Тип | Описание |
|---|---|---|
Authorization* | string | API ключ организации |
Content-Type* | string | application/json |
Параметры запроса
| Параметр | Тип | Описание |
|---|---|---|
user_id | string | ID пользователя-клиента, 24 hex-символа строчными. Ровно одно из user_id, org_id и user_data |
org_id | string | ID организации-клиента, 24 hex-символа строчными. Ровно одно из user_id, org_id и user_data |
user_data | object | Поиск пользователя по телефону: { "phone": "+79XXXXXXXXX" }. Подключается отдельно, см. обзор |
Пример запроса
curl --request POST \ --url https://gptunnel.ru/api/v1/balance/get \ --header 'Authorization: YOUR_API_KEY' \ --header 'Content-Type: application/json' \ --data '{ "user_id": "6ad72133269dc8d9f75a33bc"}'import axios from 'axios'
const response = await axios({ method: 'POST', url: 'https://gptunnel.ru/api/v1/balance/get', headers: { Authorization: 'YOUR_API_KEY' }, data: { user_id: '6ad72133269dc8d9f75a33bc' },})
console.log(response.data)import requests
response = requests.post( 'https://gptunnel.ru/api/v1/balance/get', headers={'Authorization': 'YOUR_API_KEY'}, json={'user_id': '6ad72133269dc8d9f75a33bc'},)
print(response.json())Ответ
Поля ответа
| Параметр | Тип | Описание |
|---|---|---|
code | number | 0 при успехе |
type | string | user — личный счёт пользователя, org — счёт организации |
id | string | ID пользователя или организации, чей баланс возвращён |
balance | number | Остаток в рублях. Может быть отрицательным |
bonus | number | Бонусы пользователя, 1 бонус = 0,5 ₽. У организации всегда 0 |
credit_limit | number | Только для организации: кредитный лимит в рублях, 0 если не назначен |
inn | string | null | Только для организации: ИНН |
ogrn | string | null | Только для организации: ОГРН |
currency | string | Всегда RUB |
{ "code": 0, "type": "user", "id": "6ad72133269dc8d9f75a33bc", "balance": 412.5, "bonus": 0, "currency": "RUB"}{ "code": 0, "type": "org", "id": "6ad7a4f2269dc8d9f75a41d0", "balance": 18250, "bonus": 0, "credit_limit": 0, "inn": "7701234567", "ogrn": "1027700123456", "currency": "RUB"}{ "code": 17, "message": "Recipient not found."}Ошибки
| HTTP | code | Когда |
|---|---|---|
| 400 | 3 | Тело не по схеме: нет клиента, указано больше одного поля, лишнее поле, id не из 24 символов 0-9a-f. Подробности — в поле details |
| 403 | 13 | Ключ личного аккаунта, а не организации |
| 403 | 27 | Поиск по user_data организации не подключён |
| 403 | 34 | Организации ключа метод не подключён |
| 404 | 17 | Пользователь не найден, удалён или не является клиентом партнёра |
| 404 | 24 | Организация не найдена, удалена или не является клиентом партнёра |
Ключ проверяется раньше тела: ключ без доступа получит 403 даже на запрос с телом не по схеме.
Полный список кодов и ответ 401 на неверный ключ — в справочнике ошибок.