Коды ошибок

Reseller API

Все ошибки следуют RFC 7807. Тело ответа — application/problem+json с полями type, title, status, detail, request_id и опционально reason или errors[].

{
  "type": "https://www.kernelhost.com/en/reseller-api/errors/payment_required",
  "title": "Payment required",
  "status": 402,
  "detail": "The order could not be paid.",
  "request_id": "01HX7Z3K8Q...",
  "reason": "insufficient_credit_and_no_card"
}
HTTPtypeЗначение
400validation_failedВалидация входных данных не прошла. См. errors[] для деталей по каждому полю.
401auth_failedАутентификация не пройдена. reason указывает причину: missing_headers, bad_key, bad_timestamp, timestamp_out_of_window, bad_nonce, bad_signature, signature_mismatch, replay_detected, unknown_or_locked_key, ip_not_allowed.
402payment_requiredТребуется оплата. reason — см. ниже.
403forbidden_scopeНет разрешения. reason: missing_scope.
404not_foundРесурс не существует или не виден для этого ключа (защита от перечисления арендаторов).
409idempotency_conflictIdempotency-Key уже использовался с другим телом.
429rate_limitedПревышено ограничение частоты. Соблюдайте заголовок Retry-After.
500internal_errorВнутренняя ошибка сервера. При обращении в поддержку указывайте request_id для сопоставления с журналом аудита.

Причины Payment Required (HTTP 402)

Если заказ невозможно оплатить, API возвращает HTTP 402 с машинно-читаемым reason в JSON теле.

  • insufficient_credit_and_no_card (Баланса недостаточно и карта не привязана. Решение: пополните баланс или добавьте карту в клиентском портале.)
  • card_declined (Карта отклонена банком или платёжным шлюзом. Решение: попробуйте другую карту или свяжитесь с банком.)
  • card_expired (Срок действия карты истёк. Решение: добавьте новую карту в клиентском портале.)
  • client_not_found (Идентификатор аккаунта не найден (практически не должно происходить, обратитесь в поддержку).)