Alle Fehler folgen RFC 7807. Antwort-Body ist application/problem+json mit den Feldern type, title, status, detail, request_id und ggf. reason oder 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 | Bedeutung |
|---|---|---|
| 400 | validation_failed | Eingabe-Validierung fehlgeschlagen. Siehe errors[] für Detail pro Feld. |
| 401 | auth_failed | Authentifizierung fehlgeschlagen. reason gibt an warum: 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 | Zahlung erforderlich. reason siehe unten. |
| 403 | forbidden_scope | Berechtigung fehlt. reason: missing_scope. |
| 404 | not_found | Ressource existiert nicht oder ist für diesen Key nicht sichtbar (verhindert Tenant-Enumeration). |
| 409 | idempotency_conflict | Idempotency-Key bereits mit anderem Body verwendet. |
| 429 | rate_limited | Rate-Limit überschritten. Retry-After Header beachten. |
| 500 | internal_error | Interner Server-Fehler. request_id zur Korrelation mit dem Audit-Log angeben wenn Sie Support kontaktieren. |
Payment-Required Gründe (HTTP 402)
Wenn die Bestellung nicht bezahlt werden kann, liefert die API HTTP 402 mit einem maschinen-lesbaren reason im JSON-Body.
insufficient_credit_and_no_card(Guthaben reicht nicht und keine Karte hinterlegt. Lösung: Guthaben aufladen oder Karte im Kundenportal hinzufügen.)card_declined(Karte wurde von der Bank/dem Gateway abgelehnt. Lösung: andere Karte hinterlegen oder Bank kontaktieren.)card_expired(Karte abgelaufen. Lösung: neue Karte im Kundenportal hinterlegen.)client_not_found(Account-ID nicht auffindbar (sollte praktisch nie vorkommen, Support kontaktieren).)

