Codes d'erreur

KernelHost API

Toutes les erreurs suivent la RFC 7807. Le corps est en application/problem+json avec les champs type, title, status, detail, request_id et éventuellement reason ou 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"
}
HTTPtypeSignification
400validation_failedÉchec de la validation des entrées. Voir errors[] pour le détail par champ.
401auth_failedÉchec de l'authentification. La réponse contient toujours reason unauthorized (ou ip_not_allowed si la clé est limitée à d'autres adresses IP) et n'en révèle volontairement pas davantage. Vérifiez la clé, le secret, l'heure (±300 s), le nonce et la signature ; le support retrouve la cause exacte grâce au request_id.
402payment_requiredPaiement requis. reason : voir ci-dessous.
403forbidden_scopePermission manquante. reason : missing_scope.
404not_foundLa ressource n'existe pas ou n'est pas visible pour cette clé (empêche l'énumération entre locataires).
409idempotency_conflict, order_in_progress, service_not_activeConflit. Soit l'Idempotency-Key a déjà été utilisée avec un autre corps ou sur un autre point de terminaison (idempotency_conflict, reason in_progress tant que la première requête n'est pas terminée), soit une autre commande de votre compte est encore en cours de traitement (reason order_in_progress, respectez l'en-tête Retry-After), soit le service n'est pas dans un état qui permet l'action (service_not_active, voir service_status).
413payload_too_largeCorps de requête supérieur à 65 536 octets. Il est rejeté avant l'authentification.
422unprocessableRequête comprise mais non exécutable. reason billing_cycle_not_available : le produit n'est pas proposé pour ce cycle de facturation. reason zero_total_not_allowed : la commande serait gratuite sans motif valable tel qu'un code promo.
429rate_limitedLimite de débit dépassée. Respectez l'en-tête Retry-After.
500internal_errorErreur interne du serveur. Indiquez request_id pour la corrélation avec le journal d'audit lorsque vous contactez le support.

Motifs de paiement requis (HTTP 402)

Lorsque la commande ne peut pas être payée, l'API renvoie HTTP 402 avec un motif lisible par machine dans le corps JSON.

  • insufficient_credit_and_no_card (Crédit insuffisant et aucune carte enregistrée. Solution : rechargez le crédit ou ajoutez une carte dans le portail client.)
  • card_declined (Carte refusée par la banque ou la passerelle. Solution : essayez une autre carte ou contactez votre banque.)
  • credit_apply_failed (Le crédit n'a pas pu être appliqué à la facture. Rien n'a été débité et la commande a été annulée. Réessayez avec une nouvelle Idempotency-Key ou contactez le support.)
  • client_not_found (Identifiant de compte introuvable (ne devrait pratiquement jamais se produire, contactez le support).)