Відмови
{ "code": "insufficient_balance", "error": "Not enough funds", "request_id": "9f3c1e2a7b4d5e60"}Розгалужуйтеся за code. Частина відмов несе додаткові поля:
{ "code": "invalid_targeting", "error": "Unknown city", "field": "city", "value": "nosuchcity"}{ "code": "unsupported_field", "error": "Field is not supported here", "field": "count"}{ "code": "rate_limited", "error": "Too many requests", "retry_after": 12, "limit": 120}404 на GET /api/v1/orders/{id} несе тільки error і request_id, без code.
Каталог кодів
Section titled “Каталог кодів”| Код | Статус | Коли |
|---|---|---|
invalid_api_key | 401 | ключ не прийнято |
validation_failed | 400 | порушено обмеження поля |
invalid_body | 400 | тіло або поле не тієї форми |
unknown_product | 400 | слаг невідомий або продукт не продається |
insufficient_scope | 403 | у ключа немає права, якого вимагає маршрут |
not_found | 404 | ресурсу немає або він належить іншому акаунту |
idempotency_in_progress | 409 | попередній запит із цим ключем ще виконується |
replace_in_progress | 409 | заміна адрес пакета вже йде |
invalid_volume | 422 | обсяг поза діапазоном продукту |
invalid_quantity | 422 | адрес більше, ніж можна взяти за одну купівлю |
country_unavailable | 422 | країна не продається для цього продукту |
unknown_plan, unknown_operator, unknown_period | 422 | тарифу, локації або періоду немає в обраної країни - звірте з параметрами |
out_of_stock | 422 | у локації менше вільних адрес, ніж запитано |
unsupported_capability | 422 | операція не стосується виду цього пакета |
package_expired | 422 | термін пакета адрес сплив - спочатку продовжте |
prolong_window_closed | 422 | адреси вже не повернути продовженням - потрібна нова купівля |
type_unavailable | 422 | конфігурацію не можна ні оцінити, ні продати |
insufficient_balance | 422 | не вистачає коштів |
unsupported_field | 422 | у тілі незастосовний ключ; іде з field |
invalid_targeting | 422 | значення немає в гео-каталозі; іде з field і value |
package_unavailable | 422 | операція неможлива в поточному стані пакета або з цими налаштуваннями |
purchase_refunded | 422 | купівля не відбулася, гроші повернуто |
idempotency_key_required | 422 | немає заголовка Idempotency-Key |
idempotency_key_invalid | 422 | заголовок порожній або довший за 255 символів |
idempotency_key_reused | 422 | той самий ключ з іншим тілом |
rate_limited | 429 | бюджет ключа вичерпано |
replace_cooldown | 429 | адреси нещодавно замінювалися; коли можна знову - у replace_available_at |
order_failed | 500 | замовлення не розміщено, баланс не списано |
package_failed | 500 | операція над пакетом не вдалася, гроші не списано |
order_needs_attention | 500 | гроші списано, видача не відбулася, розбирається вручну |
operation_indeterminate | 500 | повтор із ключем операції, результат якої не визначено |
catalog_unavailable | 503 | гео-каталог продукту ще не синхронізовано |
Оплачені операції
Section titled “Оплачені операції”| Код | Гроші | Дія |
|---|---|---|
order_failed, package_failed | не списано | повторити з тим самим Idempotency-Key |
purchase_refunded (422) | повернуто | повторити як нову купівлю з новим ключем |
order_needs_attention | списано, результат з’ясовується | не повторювати, у підтримку з order_id |
operation_indeterminate | результат не визначено | не повторювати з тим самим ключем; звірити замовлення й пакети, потім у підтримку |
Повідомлення в 5xx нейтральне - розгалужуйтеся за code.
Підтримка: @ipvrent_support,
[email protected]. Додайте request_id з тіла відмови та order_id,
якщо він є.
Ретрай
Section titled “Ретрай”Таймаут - не відмова: запит міг дійти. Повтор із тим самим Idempotency-Key поверне ту саму відповідь.
На 409 idempotency_in_progress зачекайте й повторіть з тим самим ключем.
Не ретраються: insufficient_balance, invalid_volume, invalid_quantity, unknown_product,
unsupported_field, unsupported_capability, invalid_targeting, prolong_window_closed. На
rate_limited чекайте Retry-After, на replace_cooldown - replace_available_at.