Возможные ошибки
Как API сообщает об ошибках и как их обрабатывать.
API возвращает ошибки в формате JSON. Для определения типа ошибки используйте HTTP-статус вместе с error.code. Поле message предназначено для отображения и локализуется по accept-language — не опирайтесь на его текст в коде.
Формат ошибки
HTTP-коды и ошибки
| HTTP | Код | Описание |
|---|---|---|
| 400 | VALIDATION_FAILED | Ошибка проверки параметров запроса. |
| 400 | INVALID_JSON | Некорректный JSON в теле запроса. |
| 400 | QUERY_TOO_COMPLEX | Слишком сложный запрос. |
| 400 | PROJECT_DELETED | Проект удалён. |
| 400 | INVOICE_ADDRESS_GENERATION_FAILED | Не удалось сгенерировать адрес счёта. |
| 400 | INVOICE_COIN_UNAVAILABLE | Выбранная монета недоступна для счёта. |
| 400 | INVOICE_CANCELLATION_NOT_ALLOWED | Отмена счёта невозможна. |
| 400 | INVOICE_DESCRIPTION_INVALID | Некорректное описание счёта. |
| 400 | INVOICE_AMOUNT_INVALID | Некорректная сумма счёта. |
| 400 | INVOICE_AMOUNT_BELOW_MINIMUM | Сумма ниже минимально допустимой. |
| 400 | INVOICE_AMOUNT_ABOVE_MAXIMUM | Сумма превышает максимально допустимую. |
| 400 | INVOICE_RATE_UNAVAILABLE | Недоступен курс выбранной монеты. |
| 400 | PROJECT_STATIC_WALLET_INVALID | Некорректный статический кошелёк. |
| 400 | PROJECT_STATIC_WALLET_ASSET_UNAVAILABLE | Актив недоступен для статического кошелька. |
| 400 | PROJECT_STATIC_WALLET_LIMIT_EXCEEDED | Превышен лимит статических кошельков. |
| 400 | PROJECT_ACCEPTED_COINS_UNAVAILABLE | Недоступные монеты проекта. |
| 400 | PROJECT_DEPOSIT_ASSET_UNAVAILABLE | Актив для депозита недоступен. |
| 400 | WITHDRAWAL_ASSET_UNAVAILABLE | Актив для вывода недоступен. |
| 400 | WITHDRAWAL_DESTINATION_INVALID | Некорректный адрес получателя. |
| 400 | WITHDRAWAL_AMOUNT_INVALID | Некорректная сумма вывода. |
| 400 | WITHDRAWAL_AMOUNT_BELOW_MINIMUM | Сумма вывода ниже минимальной. |
| 400 | WITHDRAWAL_BALANCE_INSUFFICIENT | Недостаточно средств на балансе. |
| 400 | WITHDRAWAL_QUOTE_INVALID_OR_EXPIRED | Quote недействителен или истёк. |
| 400 | WITHDRAWAL_QUOTE_MISMATCH | Параметры вывода не совпадают с quote. |
| 400 | WITHDRAWAL_QUOTE_ALREADY_USED | Quote уже использован. |
| 401 | MERCHANT_AUTH_REQUIRED | Требуется корректная авторизация API-ключом. |
| 403 | ACCOUNT_ACCESS_DENIED | Доступ к операции запрещён. |
| 404 | PROJECT_NOT_FOUND | Проект не найден. |
| 404 | INVOICE_NOT_FOUND | Счёт не найден. |
| 404 | PAYMENT_TRANSACTION_NOT_FOUND | Транзакция не найдена. |
| 404 | PROJECT_STATIC_WALLET_NOT_FOUND | Статический кошелёк не найден. |
| 404 | TOKEN_TARIFF_NOT_FOUND | Тариф токена не найден. |
| 404 | WITHDRAWAL_NOT_FOUND | Вывод не найден. |
| 409 | INVOICE_EXTERNAL_ID_CONFLICT | orderId уже используется с другими параметрами счёта. |
| 409 | PROJECT_STATIC_WALLET_EXTERNAL_ID_CONFLICT | orderId уже используется с другими параметрами кошелька. |
| 413 | PAYLOAD_TOO_LARGE | Размер запроса превышает допустимый. |
| 429 | INVOICE_CREATION_RATE_LIMITED | Превышен лимит создания счетов. |
| 429 | PROJECT_STATIC_WALLET_CREATION_RATE_LIMITED | Превышен лимит создания статических кошельков. |
| 500 | INTERNAL_SERVER_ERROR | Внутренняя ошибка сервера. Результат исходного POST-запроса может быть неизвестен. |
| 503 | PROJECT_DEPOSIT_ADDRESS_UNAVAILABLE | Адрес для депозита временно недоступен. |
| 503 | PROJECT_WALLET_GENERATION_FAILED | Не удалось сгенерировать кошелёк проекта. |
Обработка ошибок
- Используйте комбинацию HTTP-статуса и
error.code: например,400+INVOICE_AMOUNT_BELOW_MINIMUMоднозначно означает слишком маленькую сумму счёта. - Для
409проверьте конфликтующие параметры. - Для
429повторяйте запрос только после задержки. - Сохраняйте
requestIdиз ответа и передавайте его в поддержку вместе с HTTP-кодом иerror.code.