Hata Kodları
API yanıtlarında standart HTTP durum kodları kullanılmaktadır. Hata durumlarında yanıt gövdesi tutarlı bir yapıda döner.
Yanıt Yapısı
{
"error": "Unauthorized",
"message": "Invalid credentials"
}
Doğrulama (validation) hatalarında, hatalı item'ları detaylandıran bir errors dizisi yer alır:
{
"errors": [
{ "index": 0, "barcode": "ABC", "message": "quantity must be int 0..9999" },
{ "index": 2, "barcode": "DEF", "message": "barcode is required (1-100 chars)" }
]
}
HTTP Durum Kodları
| Kod | Anlam | Açıklama |
|---|---|---|
| 200 | OK | İstek başarıyla işlenmiştir. |
| 400 | Bad Request | İstek gövdesi okunamadı veya zorunlu alanlar eksik. |
| 401 | Unauthorized | API anahtarı veya secret değeri eksik, hatalı ya da kullanılan ortamla uyumsuz. |
| 403 | Forbidden | Yetki yetersizliği, IP whitelist kısıtı veya seller kimliğinin eşleşmemesi. |
| 404 | Not Found | Endpoint ya da istenen kaynak (batch, order vb.) bulunamadı. |
| 405 | Method Not Allowed | Endpoint, izin verilmeyen bir HTTP metoduyla çağrılmıştır. |
| 409 | Conflict | Kaynak durumu çelişkilidir (örneğin sipariş zaten tamamlanmış). |
| 422 | Validation Error | İstek gövdesi yapısal olarak geçerli ancak içerik kurallarına uymamaktadır. |
| 429 | Too Many Requests | Rate limit aşıldı veya brute force koruması devreye girdi. |
| 500 | Internal Error | Sunucu tarafında beklenmeyen bir hata oluştu. |
Sıkça Karşılaşılan Hatalar
401 — Invalid credentials
{"error": "Unauthorized", "message": "Invalid credentials"}
API anahtarı veya secret değeri hatalıdır. Anahtarın status=1 (aktif) durumda olduğundan emin olunmalıdır.
403 — SellerId does not match credentials
{"error": "Forbidden", "message": "SellerId does not match credentials"}
URL'de belirtilen sellerId ile API anahtarının sahibi olan kullanıcı eşleşmemektedir. İstek, anahtarın ait olduğu sellerId üzerinden yapılmalıdır.
403 — Insufficient scope
{"error": "Forbidden", "message": "Insufficient scope: stock:write"}
Çağrılan endpoint için gerekli yetki, API anahtarına tanımlanmamıştır. Yönetim panelinden ilgili scope eklenmelidir.
422 — Validation errors
{
"errors": [
{ "index": 0, "barcode": "ABC123", "message": "quantity must be int 0..9999" }
]
}
Gönderilen item'lardan biri ya da birden fazlası kuralları karşılamamaktadır. Her hata kaydının index alanı, hangi item'a ait olduğunu belirtmektedir.
429 — Rate limit
{"error": "TooManyRequests", "message": "Rate limit exceeded"}
Dakikalık istek limiti aşılmıştır. Detaylı bilgi için Rate Limits sayfası incelenmelidir.
429 — Brute force lockout
{"error": "TooManyRequests", "message": "Too many failed authentication attempts. Try again later."}
Aynı IP adresinden 10 dakikalık zaman dilimi içerisinde 15'ten fazla başarısız kimlik doğrulama denemesi yapılmıştır. Bekleme süresi sonunda yeniden deneme yapılabilir.
Batch İçi Item Bazında Hatalar
Stok ve fiyat güncellemelerinde, batch içerisindeki bazı item'lar bireysel olarak başarısız olabilir. Bu durumda batch geneli completed durumuna geçer; ancak hatalı item'lar failed olarak işaretlenir:
{
"batchRequestId": "abc-123",
"status": "completed",
"successCount": 8,
"failureCount": 2,
"items": [
{
"barcode": "XYZ",
"status": "failed",
"failureReasons": ["barcode not found for this seller"]
}
]
}
| Hata Mesajı | Açıklama |
|---|---|
barcode not found for this seller | Belirtilen barkod, ilgili mağazaya ait ürünler arasında bulunamadı. |
salePrice cannot be greater than listPrice | Satış fiyatı, liste fiyatından büyük olamaz kuralı ihlal edildi. |
Invalid or empty request payload | Item gövdesi okunamadı veya boştur. |
Entegrasyon hatası, lütfen yöneticinizle iletişime geçin | Dış sistem tarafından dönen bir hata söz konusudur. Detaylar dahili log kayıtlarındadır. |