Tüm hatalar RFC 7807 standardını izler. Yanıt gövdesi application/problem+json formatındadır ve type, title, status, detail, request_id ile gerektiğinde reason veya errors[] alanlarını içerir.
{
"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"
}
| HTTP | type | Anlamı |
|---|---|---|
| 400 | validation_failed | Girdi doğrulaması başarısız. Alan bazında ayrıntı için errors[] bakın. |
| 401 | auth_failed | Kimlik doğrulama başarısız. Yanıt her zaman reason unauthorized (anahtar başka IP adresleriyle sınırlandırılmışsa ip_not_allowed) içerir ve bilerek daha fazlasını açıklamaz. Anahtarı, secret'ı, saati (±300 sn), nonce'u ve imzayı kontrol edin; destek ekibi kesin nedeni request_id ile bulabilir. |
| 402 | payment_required | Ödeme gerekli. reason aşağıda. |
| 403 | forbidden_scope | Yetki eksik. reason: missing_scope. |
| 404 | not_found | Kaynak mevcut değil veya bu anahtar için görünür değil (kiracı sayımını engeller). |
| 409 | idempotency_conflict, order_in_progress, service_not_active | Çakışma. Ya Idempotency-Key farklı bir gövde veya endpoint ile zaten kullanılmıştır (idempotency_conflict, ilk istek hâlâ sürerken reason in_progress), ya hesabınıza ait başka bir sipariş hâlâ işlenmektedir (reason order_in_progress, Retry-After başlığını dikkate alın) ya da servis bu aksiyona izin veren bir durumda değildir (service_not_active, bkz. service_status). |
| 413 | payload_too_large | İstek body'si 65.536 bayttan büyük. Kimlik doğrulamadan önce reddedilir. |
| 422 | unprocessable | İstek anlaşıldı ancak yürütülemiyor. reason billing_cycle_not_available: ürün bu faturalama döneminde sunulmuyor. reason zero_total_not_allowed: sipariş, promosyon kodu gibi geçerli bir neden olmadan ücretsiz olurdu. |
| 429 | rate_limited | Hız sınırı aşıldı. Retry-After başlığını dikkate alın. |
| 500 | internal_error | Dahili sunucu hatası. Destek ile iletişime geçerken denetim kaydıyla eşleştirme için request_id değerini iletin. |
Ödeme gerekli sebepleri (HTTP 402)
Sipariş ödenemediğinde API, JSON gövdesinde makine tarafından okunabilir bir reason ile HTTP 402 döner.
insufficient_credit_and_no_card(Bakiye yetersiz ve kayıtlı kart yok. Çözüm: bakiyeyi yükleyin veya müşteri panelinden kart ekleyin.)card_declined(Kart banka veya ödeme ağ geçidi tarafından reddedildi. Çözüm: başka bir kart kullanın veya bankanızla iletişime geçin.)credit_apply_failed(Bakiye faturaya uygulanamadı. Hiçbir ücret alınmadı ve sipariş iptal edildi. Yeni bir Idempotency-Key ile tekrar deneyin veya destek ekibiyle iletişime geçin.)client_not_found(Hesap kimliği bulunamadı (pratikte neredeyse hiç gerçekleşmemelidir, destek ile iletişime geçin).)

