Başlangıç
Hatalar ve limitler
Başarısız her istek tutarlı bir JSON gövdesi ve anlamlı bir HTTP durum koduyla döner.
Hata biçimi
400 — örnek yanıt
{
"error": {
"code": "invalid_request",
"message": "Ürün adı gerekli",
"param": "name"
}
}Programatik karar için code alanını kullan; message insan okurdur ve değişebilir.
Hata kodları
| HTTP | Kod | Anlamı |
|---|---|---|
| 400 | invalid_json | Gövde geçerli bir JSON değil. |
| 400 | invalid_request | Alan eksik ya da hatalı. param hangi alan olduğunu söyler. |
| 400 | invalid_carrier | Geçersiz kargo firması kodu. |
| 400 | variant_required | Ürünün varyantları var; variantId gönderilmeli. |
| 400 | variant_invalid | Seçilen varyant bu ürüne ait değil ya da pasif. |
| 400 | min_quantity | Adet, ürünün minimum sipariş adedinin altında. |
| 400 | coupon_invalid | Kupon kodu yok ya da pasif. |
| 401 | invalid_api_key | Anahtar geçersiz, hatalı yazılmış veya iptal edilmiş. |
| 403 | insufficient_scope | Anahtarda bu işlem için gereken yetki yok. |
| 404 | store_not_found | Mağaza bulunamadı (X-Odecik-Store değerini kontrol et). |
| 404 | product_not_found | Ürün bulunamadı. |
| 404 | product_unavailable | Ürün satışta değil (taslak veya arşivlenmiş). |
| 404 | order_not_found | Sipariş bulunamadı. |
| 404 | coupon_not_found | Kupon bulunamadı. |
| 404 | webhook_not_found | Webhook endpoint'i bulunamadı. |
| 409 | coupon_exists | Bu kupon kodu zaten kullanımda. |
| 409 | invalid_state | Sipariş mevcut durumunda bu işleme uygun değil. |
| 409 | payout_completed | Siparişin ödemesi IBAN'a aktarılmış; iade için destek ekibine yaz. |
| 409 | out_of_stock | Yeterli stok yok. |
| 409 | out_of_keys | Lisans stoğu tükendi. |
| 429 | rate_limited | Hız sınırı aşıldı. |
| 502 | payment_provider_error | Ödeme sağlayıcısına ulaşılamadı; biraz sonra tekrar dene. |
| 500 | internal_error | Beklenmeyen hata. Tekrarlanırsa destekle iletişime geç. |
Hız sınırı
Her anahtar dakikada 120 istek yapabilir. Her yanıtta kalan hakkını görürsün:
yanıt başlıkları
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 117Sınır aşıldığında 429 ve Retry-After (saniye) başlığı döner. Bu süre kadar bekleyip yeniden dene; üstel geri çekilme (exponential backoff) kullanman önerilir.
Sayfalama
Liste uç noktaları imleç (cursor) tabanlı sayfalama kullanır. limit en fazla 100'dür (varsayılan 25).
json
{
"object": "list",
"data": [ /* … */ ],
"hasMore": true,
"nextCursor": "cm9x2k1a30042"
}hasMore true ise sonraki sayfayı ?cursor=cm9x2k1a30042 ile iste. Sonuçlar en yeniden en eskiye sıralıdır.