Docs

Ошибки и безопасные повторы

Отличайте неизвестный результат от подтверждённого отказа.

Envelope интеграции: { "error": { "code": "INVALID_AMOUNT", "message": "Human-readable diagnostic" } }. Обрабатывайте error.code, а не только HTTP/текст. Тайм-аут, потерянный ответ или обычный 5xx оставляют результат создания неизвестным: повторяйте сохранённое тело с тем же Idempotency-Key.

КодДействие
INVALID_REQUEST, INVALID_AMOUNTИсправьте поля; для v2 amountUsd/baseAmountUsd — положительная строка до 18 целых и 6 дробных цифр; 25.0000001 отклоняется. Без знаков, экспоненты, пробелов и ведущих нулей.
INVALID_API_KEYПроверьте секрет, проект и режим; не публикуйте ключ.
PROJECT_NOT_READY, WALLET_NOT_CONFIGUREDЗавершите настройку, проверьте кошелёк/маршрут и доступность аккаунта.
UNSUPPORTED_ASSET, UNSUPPORTED_NETWORKИспользуйте предлагаемый маршрут текущего контекста.
INVOICE_NOT_FOUNDПроверьте ID и проект/контекст; исторический код может означать отсутствие сессии.
IDEMPOTENCY_CONFLICTСверьте сохранённые ID/тело/заказ; не обходите новым ключом.
DEMAND_MONITORING_UNAVAILABLE, TEMPORARILY_UNAVAILABLEПодождите; сохраняйте идентичность запроса.
AMOUNT_SPACE_EXHAUSTEDМаршрут недоступен; обратитесь в поддержку, не придумывайте точную сумму.
RATE_LIMITEDУчитывайте параметры повтора, backoff и jitter.

429 может включать resourceCode, scope, limit, profile, retryAfterSeconds, retryable. Единой гарантированной квоты нет.

Окончательный отказ создания

Только полностью проверенная ошибка с code: "PAYMENT_CREATION_DECLINED", version: 1, retryable: false, sessionCreated: false, корректным rejectionId и совпадающими projectId, mode, externalId, idempotencyKey, requestHash подтверждает зафиксированный отказ без сессии. Сверьте все поля с сохранённым запросом и сохраните квитанцию. Один HTTP 503, отсутствие поля или несовпадение идентичности оставляют результат неизвестным; не создавайте замену с новым ключом.

Истечение срока не доказывает окончательную неоплату. Проверяйте status, monitoringComplete, pendingSettlement и isFinal. Ошибочный, дополнительный или поздний перевод требует расследования; не просите автоматически новый перевод и не обещайте возврат.