Codici di errore

KernelHost API

Tutti gli errori seguono RFC 7807. Il body è application/problem+json con i campi type, title, status, detail, request_id e opzionalmente reason oppure 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"
}
HTTPtypeSignificato
400validation_failedValidazione dell'input fallita. Vedere errors[] per il dettaglio per ogni campo.
401auth_failedAutenticazione non riuscita. La risposta contiene sempre reason unauthorized (oppure ip_not_allowed se la chiave è limitata ad altri indirizzi IP) e di proposito non rivela altro. Verifichi chiave, secret, orario (±300 s), nonce e firma; il supporto può risalire alla causa esatta tramite il request_id.
402payment_requiredPagamento richiesto. Per il reason si veda sotto.
403forbidden_scopePermesso mancante. reason: missing_scope.
404not_foundLa risorsa non esiste o non è visibile a questa chiave (evita l'enumerazione dei tenant).
409idempotency_conflict, order_in_progress, service_not_activeConflitto. L'Idempotency-Key è già stata usata con un altro body o un altro endpoint (idempotency_conflict, reason in_progress finché la prima richiesta è ancora in corso), un altro ordine del suo account è ancora in elaborazione (reason order_in_progress, rispettare l'header Retry-After) oppure il servizio non si trova in uno stato che consente l'azione (service_not_active, vedere service_status).
413payload_too_largeBody della richiesta superiore a 65.536 byte. Viene rifiutato prima dell'autenticazione.
422unprocessableRichiesta compresa ma non eseguibile. reason billing_cycle_not_available: il prodotto non è offerto con questo ciclo di fatturazione. reason zero_total_not_allowed: l'ordine sarebbe gratuito senza un motivo valido, come un codice promozionale.
429rate_limitedLimite di velocità superato. Rispettare l'header Retry-After.
500internal_errorErrore interno del server. Fornisca request_id per la correlazione con l'audit log quando contatta il supporto.

Motivi di Payment Required (HTTP 402)

Quando l'ordine non può essere pagato, l'API restituisce HTTP 402 con un reason leggibile dalla macchina nel body JSON.

  • insufficient_credit_and_no_card (Credito insufficiente e nessuna carta registrata. Soluzione: ricaricare il credito o aggiungere una carta nel portale clienti.)
  • card_declined (Carta rifiutata dalla banca o dal gateway. Soluzione: provare un'altra carta o contattare la propria banca.)
  • credit_apply_failed (Non è stato possibile applicare il credito alla fattura. Non è stato addebitato nulla e l'ordine è stato annullato. Riprovi con una nuova Idempotency-Key o contatti il supporto.)
  • client_not_found (Account id non trovato (in pratica non dovrebbe mai accadere, contattare il supporto).)