Alla fel följer RFC 7807. Svars-bodyn är application/problem+json med fälten type, title, status, detail, request_id samt eventuellt reason eller 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"
}
| HTTP | type | Betydelse |
|---|---|---|
| 400 | validation_failed | Inmatningsvalidering misslyckades. Se errors[] för detaljer per fält. |
| 401 | auth_failed | Autentisering misslyckades. reason anger varför: 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. |
| 402 | payment_required | Betalning krävs. reason se nedan. |
| 403 | forbidden_scope | Behörighet saknas. reason: missing_scope. |
| 404 | not_found | Resursen finns inte eller är inte synlig för denna nyckel (förhindrar tenant-uppräkning). |
| 409 | idempotency_conflict | Idempotency-Key redan använd med annan body. |
| 429 | rate_limited | Hastighetsbegränsning överskriden. Respektera headern Retry-After. |
| 500 | internal_error | Internt serverfel. Ange request_id för korrelation med granskningsloggen när du kontaktar support. |
Orsaker till payment-required (HTTP 402)
När en beställning inte kan betalas returnerar API:et HTTP 402 med en maskinläsbar orsak (reason) i JSON-bodyn.
insufficient_credit_and_no_card(Saldot räcker inte och inget kort är sparat. Lösning: fyll på saldo eller lägg till ett kort i kundportalen.)card_declined(Kortet avvisades av banken eller betalningsleverantören. Lösning: prova ett annat kort eller kontakta din bank.)card_expired(Kortet har gått ut. Lösning: lägg till ett nytt kort i kundportalen.)client_not_found(Konto-ID hittades inte (bör i praktiken aldrig inträffa, kontakta support).)

