Возможные ошибки

Как API сообщает об ошибках и как их обрабатывать.

API возвращает ошибки в формате JSON. Для определения типа ошибки используйте HTTP-статус вместе с error.code. Поле message предназначено для отображения и локализуется по accept-language — не опирайтесь на его текст в коде.

Формат ошибки

{
  "error": {
    "code": "VALIDATION_FAILED",
    "message": "string",
    "kind": "field",
    "errors": [
      {
        "field": "string",
        "message": "string",
        "code": "string",
        "rule": "string"
      }
    ],
    "details": {},
    "requestId": "4ad561fd-6ecd-445d-a65f-989ea5995f18",
    "timestamp": "2026-10-05T12:08:14.331Z",
    "path": "/api/v1/invoices"
  }
}

HTTP-коды и ошибки

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

Обработка ошибок

  • Используйте комбинацию HTTP-статуса и error.code: например, 400 + INVOICE_AMOUNT_BELOW_MINIMUM однозначно означает слишком маленькую сумму счёта.
  • Для 409 проверьте конфликтующие параметры.
  • Для 429 повторяйте запрос только после задержки.
  • Сохраняйте requestId из ответа и передавайте его в поддержку вместе с HTTP-кодом и error.code.
{
  "error": {
    "requestId": "4ad561fd-6ecd-445d-a65f-989ea5995f18"
  }
}