İçeriğe geç
ZZenWapp Docs

Başlarken

Hata kodları

Hata yanıtları tutarlı bir yapı kullanır: makine tarafından okunabilir bir error kodu ve insan tarafından okunabilir bir message.

{
  "error": "validation_error",
  "message": "Missing required field: to"
}

Koda göre dallanın, metne göre değil

message alanı iyileştirme amacıyla değişebilir. Uygulama mantığınızı her zaman error koduna ve HTTP durumuna dayandırın.

Standart kodlar

HTTPerrorAnlamıNe yapmalı
400validation_errorZorunlu alan eksik veya biçim hatalı.İsteği düzeltin. Tekrar denemek aynı sonucu verir.
400account_not_connectedKanal hesabı bağlı değil.Panelden kanalı yeniden bağlayın; bekleyip tekrar deneyin.
401invalid_api_keyAnahtar eksik veya geçersiz.Anahtarı kontrol edin. Tekrar denemeyin.
403forbiddenAnahtarın bu uç için yetkisi yok.Panelden anahtara gerekli yetkiyi ekleyin.
404not_foundKaynak yok ya da bu hesaba ait değil.Kimliği doğrulayın. Tekrar denemeyin.
429rate_limit_exceededHız limiti aşıldı.X-RateLimit-Reset anına kadar bekleyin, geri çekilerek yeniden deneyin.
500internal_errorSunucu tarafında beklenmeyen hata.Üstel geri çekilme ile en fazla birkaç kez deneyin.
504send_timeoutsync: true modunda gönderim zaman aşımına uğradı.Körü körüne tekrar göndermeyin — çift mesaj riski var. Webhook ile doğrulayın.

Uca özel kodlar

Bazı uçlar kendi bağlamlarına özgü kodlar döndürür:

errorNeredeAnlamı
too_many_phonesPOST /contacts/syncTek çağrıdaki numara limiti aşıldı; listeyi parçalayın.
invalid_datePOST /messages/schedulescheduled_at geçerli bir ISO 8601 tarihi değil.
invalid_trigger_typePOST /auto-repliestrigger_type izin verilen değerlerden biri değil.
content_blockedPOST /messages/sendMesaj içeriği politika kontrolüne takıldı.
no_mediaGET /messages/{messageId}/mediaMesajda medya eki yok.
invalid_filenameGET /media/{filename}Dosya adı geçersiz karakter içeriyor.

Yeniden deneme stratejisi

4xx hatalarını tekrar denemeyin — istek düzelmeden sonuç değişmez. Tek istisna 429: limit penceresi geçtikten sonra denenmelidir.

5xx ve ağ hataları için üstel geri çekilme (örneğin 1s, 2s, 4s, 8s) ve makul bir üst sınır kullanın. Gönderim uçlarında tekrar denerken kendi tarafınızda bir istek kimliği tutun ki aynı mesajı iki kez göndermeyin.

Çift gönderim tuzağı

Zaman aşımı alan bir gönderim isteği sunucuda başarılı olmuş olabilir. Otomatik tekrar denemeden önce GET /chats/{chatId}/messages ile son mesajı doğrulayın veya webhook olayını bekleyin.