Обработка ошибок
Все ошибки API Intotes следуют единому JSON-формату, что упрощает программную обработку ошибок.
Формат ответа об ошибке
{
"error": {
"code": "ERROR_CODE",
"message": "Human-readable description of the error"
}
}
| Поле | Тип | Описание |
|---|---|---|
code | string | Машиночитаемый код ошибки (например, INSUFFICIENT_BALANCE) |
message | string | Описание на английском языке |
HTTP-коды состояния
| Статус | Значение | Когда |
|---|---|---|
400 | Bad Request | Ошибка валидации или нарушение бизнес-правила |
401 | Unauthorized | Отсутствует или недействительная аутентификация |
403 | Forbidden | Недостаточно прав (например, не создатель) |
404 | Not Found | Ресурс не существует |
409 | Conflict | Дублирование ресурса (например, email уже зарегистрирован) |
429 | Too Many Requests | Превышен лимит запросов |
500 | Internal Server Error | Непредвиденная ошибка сервера |
Распространенные коды ошибок
Ошибки аутентификации
| Код | Описание |
|---|---|
INVALID_CREDENTIALS | Неверный email или пароль |
EMAIL_NOT_VERIFIED | Требуется подтверждение email |
TOKEN_EXPIRED | Access-токен истек |
UNAUTHORIZED | Не предоставлена аутентификация |
Ошибки торговли
| Код | Описание |
|---|---|
INSUFFICIENT_BALANCE | Недостаточно средств |
MARKET_PAUSED | Рынок не принимает сделки |
MARKET_RESOLVED | Рынок уже разрешен |
INVALID_AMOUNT | Сумма нулевая, отрицательная или превышает лимиты |
INVALID_PRICE | Цена вне диапазона 0-10000 |
ORDER_NOT_FOUND | Ордер не существует |
POSITION_NOT_FOUND | Нет позиции на этом рынке |
Ошибки вывода
| Код | Описание |
|---|---|
INSUFFICIENT_BALANCE | Недостаточно средств для вывода |
MIN_DEPOSIT_REQUIRED | Необходим минимальный депозит 1000 RUB |
WITHDRAWAL_LIMIT_EXCEEDED | Дневной лимит выводов достигнут |
UNSUPPORTED_TOKEN | Токен не поддерживается |
UNSUPPORTED_NETWORK | Сеть не поддерживается |
INVALID_ADDRESS | Недействительны й адрес кошелька |
PENDING_WITHDRAWAL_EXISTS | Вывод уже в процессе |
Ошибки P2P
| Код | Описание |
|---|---|
AD_NOT_ACTIVE | Объявление больше недоступно |
DUPLICATE_AD_TYPE | Уже есть активное объявление этого типа |
INVALID_AMOUNT | Сумма вне диапазона мин/макс |
ORDER_ALREADY_PAID | Ордер уже отмечен как оплаченный |
ORDER_ALREADY_COMPLETED | Ордер уже завершен |
ORDER_ALREADY_CANCELLED | Ордер уже отменен |
CANNOT_CANCEL | Ордер в состоянии, не допускающем отмену |
INVALID_PAYMENT_METHOD | Способ оплаты не принимается |
Ошибки карточных операций
| Код | Описание |
|---|---|
CARD_NOT_ACTIVE | Карта платформы не активна |
INVALID_AMOUNT | Сумма вне лимитов |
ORDER_ALREADY_PAID | Ордер уже подтвержден |
MIN_DEPOSIT_REQUIRED | Минимальный депозит не выполнен |
Пример обработки ошибок
const response = await fetch('https://intotes.com/api/v1/lmsr/trade', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
credentials: 'include',
body: JSON.stringify({
market_id: 42,
side: 'buy_yes',
amount_type: 'spend',
amount: 10000,
}),
});
if (!response.ok) {
const { error } = await response.json();
switch (error.code) {
case 'INSUFFICIENT_BALANCE':
showNotification('Недостаточно средств. Пополните баланс.');
break;
case 'MARKET_PAUSED':
showNotification('Этот рынок временно приостановлен.');
break;
default:
showNotification(error.message);
}
}