Temeller

Hata kodları

Kararlı makine kodları, HTTP karşılıkları ve hangi hatada yeniden denenir.

Her hata kararlı bir makine kodu taşır: DOMAIN-ALAN-NNNN.

json
{ "error": { "code": "CORE-AUTH-0001", "message": "…", "hint": "…", "trace_id": "…" } }

Dallanmayı codea yap. message kullanıcının diline göre çevrilir ve metin iyileştirildikçe değişir; code bir sözleşmedir ve değişmez.

Çekirdek kodları

KodHTTPSınıfAnlamı
CORE-SYS-0001500sunucuBeklenmeyen iç hata. Idempotent işlemler geri çekilmeyle yeniden denenebilir.
CORE-SYS-0002503sunucuBir bağımlılık (DB/Redis/kuyruk) geçici olarak yok. Yeniden denenebilir.
CORE-SYS-0003504sunucuZaman aşımı. Yeniden denenebilir.
CORE-SYS-0004501sunucuUç/özellik yok.
CORE-REQ-0001400istemciBozuk istek (geçersiz JSON, eksik alan).
CORE-REQ-0002422istemciDoğrulama başarısız; alan bazlı hatalar details[] içinde.
CORE-REQ-0003404istemciKaynak yok (ya da çalışma alanı kapsamı dışında).
CORE-REQ-0004409istemciDurum çakışması (mükerrer, ön koşul, kullanımda).
CORE-REQ-0005409istemciIdempotency anahtarı farklı bir gövdeyle kullanılmış.
CORE-REQ-0006413istemciGövde tavanı aşıldı.
CORE-AUTH-0001401istemciKimlik yok ya da geçersiz.
CORE-AUTH-0002403istemciKimlik geçerli, yetki yok.
CORE-RATE-0001429istemciHız sınırı; Retry-Afterı gözet.
CORE-TENANT-0001404istemciÇalışma alanı çözülemedi.
CORE-TENANT-0002403istemciÇalışma alanı askıya alınmış.
CORE-TENANT-0003400istemciKiracı kapsamlı bir uca kiracısız ulaşıldı.

Sınıflar: istemci (4xx — isteği düzeltmelisin; olduğu gibi yeniden denenmez) · sunucu (5xx — geçici; idempotent istekler geri çekilmeyle denenebilir).

Modül kodları

Her modül kendi önekini kullanır: CRM-*, ERP-*, SHOP-*, B2B-*, ADS-*… Yapı aynıdır ve aynı sınıflandırma geçerlidir.

En sık karşılaşacağın modül kodu lisans kapısıdır:

json
{ "error": { "code": "CRM-LIC-0001", "message": "Bu modül aboneliğinde yok.",
             "hint": "module_not_licensed" } }

Sekiz modülün hepsi aynı 403'ü ve aynı hinti döner — entegrasyonun tek bir dalda karar verebilmesi için.

Public API kodları

/public/v1/... uçları farklı bir zarf ve kelime dağarcığı kullanır:

codeHTTP
unauthorized401
forbidden403
not_found404
parameter_invalid400
conflict409
rate_limit_exceeded429
internal_error500

Yeniden deneme kuralı

DurumYeniden dene?
429EvetRetry-After kadar bekledikten sonra
500 · 502 · 503 · 504Evet — üstel geri çekilme + jitter
408 (zaman aşımı)Evet
4xx (diğer)Hayır — istek yanlış; tekrarı da yanlış olur

Yeniden denediğin her yazma isteğinde Idempotency-Key kullan. Yoksa "belki ulaştı" durumundaki bir istek ikinci kaydı doğurur.

Bu sayfa işine yaradı mı?