Hata sözlüğü

Hata zarfı her uçta aynıdır: { "code": "…", "message": "…" } (+ 429'larda retryAfterSeconds). message insan içindir ve değişebilir; programatik davranışı yalnız `code` ve HTTP durumuna bağlayın.

Kodlar

HTTPcodeAnlam / yapılacak
401invalid_api_keyAnahtar yok, biçimsiz, bilinmiyor, iptal edilmiş veya IP allowlist dışı — tek biçim. Anahtarı ve IP'yi kontrol edin.
403insufficient_scopeAnahtarın scope'u bu uca yetmiyor (send/read).
403account_suspendedHesap askıda. Anahtar geçerli — değiştirmeyin, destekle görüşün.
404not_foundKayıt yok veya başka hesabın (varlık sızdırılmaz). Şablon send-test'te: şablon veya kimlik bulunamadı.
409invalid_statusKampanya durum makinesi bu geçişe izin vermiyor (örn. tamamlanmış kampanyayı durdurmak).
409identity_existsAynı kimlik değeri zaten kayıtlı.
409identity_in_useKimlik kampanyada kullanılmış; silinemez.
409idempotency_conflictAynı Idempotency-Key 24 saat içinde farklı gövdeyle kullanıldı — yeni anahtar üretin.
413attachments_too_largeTekil dosya veya mesajın toplam eki 20 MB'ı aşıyor.
422validation_errorGenel alan doğrulama hatası (zorunlu alan, biçim, bilinmeyen olay tipi, customerRef biçimi, geçersiz export formatı, bozuk bastırma adresi…).
422too_many_recipientsto > 50 (mesaj) veya recipients > 10.000 (kampanya).
422too_many_emailsBastırma eklemede tek istekte 1.000 adres sınırı aşıldı.
422identity_not_foundfrom adresi hesabın kimlikleriyle eşleşmiyor. GET /identities ile kontrol edin.
422identity_not_verifiedKimlik var ama doğrulanmamış — DNS kayıtlarını tamamlayın.
422no_default_identityfrom boş ve varsayılan kimlik tanımlı değil.
422no_valid_recipientsElemeler sonrası geçerli to alıcısı kalmadı; kredi düşmedi.
422scheduling_not_supportedİşlemsel mesajda scheduledAt yok; kampanya ucunu kullanın.
422no_unopened_recipientsresend-to-unopened: açmayan alıcı yok.
422invalid_urlWebhook URL'i geçersiz (https değil / localhost / private IP / çözümlenemedi).
422webhook_limit_reachedHesap başına 3 webhook endpoint sınırı doldu.
429rate_limitedDakikalık istek sınırı aşıldı. Retry-After kadar bekleyin.
429daily_capHesabın günlük gönderim tavanı aşıldı. Retry-After TR gece yarısına kadardır.
502send_failedSağlayıcı mesajı kabul etmedi; kredi iade edildi (test/send-test'te kredi zaten düşmez). Daha sonra yeniden deneyin.

Ret gerekçeleri (HTTP hatası değil)

200 yanıtın rejected[].reason alanında görünen değerler — istek başarılıdır, yalnız o alıcı elenmiştir:

reasonAnlam
invalid_syntaxAdres sentaksı geçersiz.
mx_failMX ön doğrulaması başarısız.
suppressedAdres bastırma listesinde (işlemsel yolda yalnız campaign_and_transactional kapsamı süzer).
quotaKredi yetersiz — HTTP 200, kredi düşmez, messageId yazılmaz.