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/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"
}
HTTPtypeBetydelse
400validation_failedInmatningsvalidering misslyckades. Se errors[] för detaljer per fält.
401auth_failedAutentiseringen misslyckades. Svaret innehåller alltid reason unauthorized (eller ip_not_allowed om nyckeln är begränsad till andra IP-adresser) och avslöjar medvetet inget mer. Kontrollera nyckel, secret, klocka (±300 s), nonce och signatur; supporten kan hitta den exakta orsaken via request_id.
402payment_requiredBetalning krävs. reason se nedan.
403forbidden_scopeBehörighet saknas. reason: missing_scope.
404not_foundResursen finns inte eller är inte synlig för denna nyckel (förhindrar tenant-uppräkning).
409idempotency_conflict, order_in_progress, service_not_activeKonflikt. Idempotency-Key har redan använts med en annan body eller endpoint (idempotency_conflict, reason in_progress medan den första begäran fortfarande pågår), en annan beställning för ditt konto behandlas fortfarande (reason order_in_progress, respektera Retry-After), eller så är tjänsten inte i ett tillstånd som tillåter åtgärden (service_not_active, se service_status).
413payload_too_largeBegärans body är större än 65 536 byte. Den avvisas redan före autentiseringen.
422unprocessableFörstådd men inte genomförbar. reason billing_cycle_not_available: produkten erbjuds inte med denna faktureringsperiod. reason zero_total_not_allowed: beställningen skulle bli gratis utan giltigt skäl, till exempel en kampanjkod.
429rate_limitedHastighetsbegränsning överskriden. Respektera headern Retry-After.
500internal_errorInternt 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.)
  • credit_apply_failed (Tillgodohavandet kunde inte tillämpas på fakturan. Inget har debiterats och beställningen har avbrutits. Försök igen med en ny Idempotency-Key eller kontakta supporten.)
  • client_not_found (Konto-ID hittades inte (bör i praktiken aldrig inträffa, kontakta support).)