Kody błędów

KernelHost API

Wszystkie błędy są zgodne z RFC 7807. Treść odpowiedzi to application/problem+json z polami type, title, status, detail, request_id oraz opcjonalnie reason lub errors[].

{
  "type": "https://www.kernelhost.com/en/kernelhost-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"
}
HTTPtypeZnaczenie
400validation_failedWalidacja danych wejściowych nie powiodła się. Szczegóły poszczególnych pól w errors[].
401auth_failedUwierzytelnianie nie powiodło się. Odpowiedź zawsze zawiera reason unauthorized (lub ip_not_allowed, jeśli klucz jest ograniczony do innych adresów IP) i celowo nie ujawnia niczego więcej. Należy sprawdzić klucz, secret, zegar (±300 s), nonce i podpis; pomoc techniczna ustali dokładną przyczynę na podstawie request_id.
402payment_requiredWymagana płatność. reason zob. poniżej.
403forbidden_scopeBrak uprawnień. reason: missing_scope.
404not_foundZasób nie istnieje lub jest niewidoczny dla tego klucza (zapobiega enumeracji lokatorów).
409idempotency_conflict, order_in_progress, service_not_activeKonflikt. Idempotency-Key został już użyty z innym body lub na innym endpoincie (idempotency_conflict, reason in_progress, dopóki pierwsze żądanie jest jeszcze w toku), inne zamówienie z Państwa konta jest wciąż przetwarzane (reason order_in_progress, należy uwzględnić Retry-After) albo usługa nie jest w stanie pozwalającym na tę akcję (service_not_active, patrz service_status).
413payload_too_largeBody żądania przekracza 65 536 bajtów. Jest odrzucane jeszcze przed uwierzytelnieniem.
422unprocessableŻądanie jest zrozumiałe, ale nie może zostać wykonane. reason billing_cycle_not_available: produkt nie jest oferowany w tym cyklu rozliczeniowym. reason zero_total_not_allowed: zamówienie byłoby bezpłatne bez ważnego powodu, takiego jak kod promocyjny.
429rate_limitedPrzekroczono limit szybkości. Należy uwzględnić nagłówek Retry-After.
500internal_errorWewnętrzny błąd serwera. Proszę podać request_id do korelacji z dziennikiem audytu, kontaktując się z pomocą techniczną.

Powody braku płatności (HTTP 402)

Jeżeli zamówienie nie może zostać opłacone, API zwraca HTTP 402 z czytelnym maszynowo polem reason w treści JSON.

  • insufficient_credit_and_no_card (Saldo kredytowe niewystarczające i brak karty na koncie. Rozwiązanie: doładowanie salda lub dodanie karty w panelu klienta.)
  • card_declined (Karta została odrzucona przez bank/bramkę. Rozwiązanie: spróbować innej karty lub skontaktować się z bankiem.)
  • credit_apply_failed (Nie udało się zastosować salda do faktury. Nic nie zostało pobrane, a zamówienie anulowano. Należy spróbować ponownie z nowym Idempotency-Key lub skontaktować się z pomocą techniczną.)
  • client_not_found (Identyfikator konta nieznaleziony (w praktyce nie powinno się zdarzyć, prosimy o kontakt z pomocą techniczną).)