İçeriğe geç
Veri MerkeziVeri MerkeziAPI

API referansı

Başarısız istekler standart bir hata nesnesi döndürür. Kodu programınızda kullanın; mesaj metni değişebilir.

Hata nesnesi
{
  "ok": false,
  "error": {
    "code": "insufficient_credits",
    "message": "...",
    "field": null
  }
}
KodHTTPAnlamıNe yapmalı
invalid_media_id400media_id yalnız rakamlardan oluşmalı.Webhook'taki data.media.media_id değerini aynen kullanın.
invalid_phone_number_id400phone_number_id rakam değil (yol parametresi). Arama ve form uçlarında 422 döner.GET /numbers yanıtındaki phone_number_id değerini kullanın.
invalid_template_id400Şablon kimliği geçersiz.GET /templates yanıtındaki id değerini kullanın.
invalid_api_key401Anahtar geçersiz, süresi dolmuş, iptal edilmiş ya da IP izin listesi dışından çağrılmış.Anahtarı ve IP kısıtını panelden kontrol edin; gerekirse yeni anahtar oluşturun.
unauthorized401Authorization başlığı yok.Authorization: Bearer vmk_live_... başlığını ekleyin.
insufficient_credits402Mesaj kredisi yetersiz (yalnız canlı anahtar). error.balance döner.Kredi paketi alın; credit.low olayına abone olun.
call_permission_required403Müşterinin arama izni yok.Önce POST /calls/permission-request ile izin isteyin.
insufficient_scope403Anahtarda gerekli kapsam yok. error.required_scope ya da error.required_scopes döner.Panelden anahtara kapsam ekleyin ya da uygun kapsamlı yeni anahtar oluşturun.
test_mode_unsupported403İşlem test anahtarıyla yapılamaz (numara ayırma, form yazma uçları).vmk_live_ anahtarı kullanın.
test_only403Uç yalnız test anahtarıyla çalışır (POST /test/inbound).vmk_test_ anahtarı kullanın.
call_not_found404Arama yok, size ait değil ya da test/canlı anahtar uyuşmuyor.Aramayı başlatan anahtar türünü kullanın.
endpoint_moved404API yanlış adresten çağrıldı.Taban adres olarak https://api.verimerkezi.app/wa kullanın.
flow_not_found404Form yok ya da size ait değil.Meta arayüzünde oluşturduğunuz formlar için phone_number_id ekleyin.
media_file_missing404Kayıt var, dosya depoda yok.Destek ekibine X-Request-Id ile bildirin.
media_not_found404Medya kaydı yok ya da başka hesaba ait.Kendi hesabınızın media_id değerini kullanın.
not_found404Arama uçlarında geçersiz eylem adı.Yalnız pre_accept, accept, reject, terminate kullanın.
number_not_found404Numara size ait değil ya da aktif değil.GET /numbers ile numaranın durumunu kontrol edin.
template_not_found404Şablon bulunamadı.Şablon kimliğini GET /templates ile doğrulayın.
webhook_not_found404Abonelik yok ya da size ait değil.GET /webhooks ile kimliği doğrulayın.
action_in_progress409Aynı arama için başka bir eylem hâlâ işleniyor.retry_after (2 sn) kadar bekleyip tekrar deneyin.
call_action_conflict409Aynı eylem farklı parametreyle uygulanmış.İlk eylemin sonucunu kullanın.
call_ended409Arama sona ermiş.Yeni aramayı bekleyin ya da başlatın.
calling_not_enabled409Numarada arama kapalı.PATCH /numbers/{id}/calling ile enabled: true yapın.
contact_exists409Telefon zaten rehberde kayıtlı. error.id mevcut kişiyi verir.Mevcut kişiyi kullanın ya da toplu eklemede skip_duplicates: true gönderin.
duplicate_call409Bu kişiyle zaten süren bir arama var (Meta 138003).Mevcut aramanın durumunu GET /calls ile izleyin.
flow_not_draft409İşlem yalnız DRAFT formda yapılır.Yayınlanmış form için yeni form oluşturun.
history_completed409Geçmiş aktarımı daha önce tamamlandı.Yeniden başlatmanız gerekmez.
history_declined409Müşteri geçmiş aktarımını reddetti.Aktarım bu numara için yeniden başlatılamaz.
history_in_progress409Geçmiş aktarımı zaten başlatılmış (benzer biçimde history_requested, history_completed, history_declined).GET /numbers/{id}/history-import ile durumu izleyin.
history_requested409Geçmiş aktarımı zaten istendi; müşterinin onayı bekleniyor.GET /numbers/{phone_number_id}/history-import ile durumu izleyin.
history_window_expired409Geçmiş aktarımının 24 saatlik penceresi kapandı.Geçmiş için numarayı kaldırıp yeniden bağlayın.
idempotency_in_progress409Aynı Idempotency-Key ile bir istek hâlâ işleniyor.Retry-After kadar bekleyip aynı anahtarla tekrar deneyin.
invalid_action_for_direction409Başlattığınız aramada yalnız terminate kullanılabilir.POST /calls/{id}/terminate kullanın.
meta_outcome_unknown409İstek Meta'ya iletildi ama sonucu doğrulanamadı (retryable: false).Aynı anahtarla tekrar göndermeyin; durum olayını bekleyin ya da GET /messages ile kontrol edin.
number_detached409Numara hesabınızdan ayrılmış. Hata nesnesinde phone_number_id ve detached_at de döner.Numarayı panelden yeniden bağlayın.
waba_missing409Numaranın işletme hesabı (WABA) bilgisi eksik; form işlemi yapılamaz.Numarayı panelden yeniden bağlayın ya da destekle iletişime geçin.
webhook_url_exists409Bu adrese zaten aktif bir abonelik var. existing_id döner.Mevcut aboneliği PATCH ile güncelleyin.
template_exists409Aynı WABA'da aynı ad ve dilde şablon zaten var (field: name, template_id).Mevcut şablonu düzenleyin (POST /templates/{id}) ya da farklı ad / dil kullanın.
template_not_editable409Şablon düzenlenemez: durum APPROVED / REJECTED / PAUSED dışında ya da Meta'ya hiç gönderilmemiş (status döner).Durum uygun olunca düzenleyin; GET /templates/{id} yanıtındaki edit_limit.editable alanına bakın.
media_too_large413Dosya türün Meta sınırını aşıyor (max_bytes döner).Dosyayı küçültün; sınırlar için Medya rehberine bakın.
media_invalid_format415Desteklenmeyen dosya türü (içerik doğrulanır).Desteklenen türlerden birine dönüştürün.
unsupported_media_type415Yükleme isteği multipart/form-data değil.-F file=@... biçiminde gönderin.
range_not_satisfiable416İstenen bayt aralığı geçersiz.Range başlığını dosya boyutuna göre düzeltin.
calling_disabled_quality422Meta kalite nedeniyle aramayı geçici kapattı (Meta 138014, retryable: true).Bir süre sonra tekrar deneyin.
calling_messaging_limit_too_low422Günlük mesaj limiti 2.000'in altında (Meta 138015).Mesajlaşma limitinizi yükseltin.
calling_not_available_in_country422Alıcının ülkesinde işletme araması yok.Bu alıcıyı arayamazsınız.
calling_not_supported_for_number422Numara coexistence ya da Cloud API dışı; arama açılamaz (Meta 141000).Aramayı ayrı bir API numarasında açın.
calling_outbound_unavailable422İşletme başlatmalı arama bu numara/ülkede yok (Meta 138013).Gelen aramalarla çalışın.
calling_prerequisites_unmet422Numaranın teknik önkoşulları karşılanmıyor (Meta 138018).Meta Business Suite'te numara ayarlarını kontrol edin.
coexistence_readonly_profile422Coexistence numarasında profil API ile güncellenemez.Profili telefondaki WhatsApp Business uygulamasından güncelleyin.
deregister_not_supported422Meta'dan numara kaldırma bu sürümde yok.deregister_meta göndermeyin.
header_media_fetch_failed422Şablon başlık medyası indirilemedi (header_media_url; POST /templates/media için url / media_id).header_media_url adresinin herkese açık olduğundan emin olun.
history_failed422Geçmiş aktarımı başarısız oldu.Destekle iletişime geçin.
history_not_applicable422Numara coexistence değil; geçmiş aktarımı yok.Yalnız coexistence numaralarda kullanın.
history_not_found422Bu numara için geçmiş aktarımı kaydı yok.Numaranın coexistence ile bağlandığını kontrol edin.
idempotency_key_conflict422Aynı Idempotency-Key farklı bir gövdeyle kullanılmış.Her farklı istek için yeni anahtar üretin.
invalid_contacts422Kişi kartı mesajı hatalı: kart sayısı 1–20 dışında ya da name.formatted_name eksik.error.field alanındaki kartı düzeltin.
invalid_context422context.message_id geçerli bir wamid değil.Webhook'taki data.wamid değerini kullanın.
invalid_flow422POST /messages içindeki flow nesnesi hatalı.error.field alanını düzeltin.
invalid_flow_id422flow_id yalnız rakam olmalı.Meta form kimliğini kullanın.
invalid_flow_json422Flow JSON geçersiz ya da 10 MB'ı aşıyor.Flow JSON'u doğrulayın.
invalid_interactive422Etkileşimli mesajın interactive nesnesi hatalı ya da Meta sınırını aşıyor.error.field alanındaki değeri Meta sınırlarına göre düzeltin.
invalid_location422Konum mesajında enlem/boylam eksik ya da aralık dışı, ad/adres çok uzun.error.field alanındaki değeri düzeltin; enlem −90…90, boylam −180…180.
invalid_media422Medya nesnesi hatalı (link/id yok, https değil, audio.voice boolean değil, boş dosya).Medya nesnesini düzeltin.
invalid_name422Kişi adı en az 2 karakter olmalı.name alanını doldurun.
invalid_period422period geçersiz.7d, 30d ya da 90d kullanın.
invalid_phone422Telefon numarası geçersiz.Ülke koduyla, + olmadan gönderin (ör. 905550000000).
invalid_reaction422reaction.message_id ya da emoji geçersiz.Tek bir emoji ve geçerli wamid gönderin.
invalid_request422Zorunlu alan eksik ya da biçim hatalı. error.field sorunlu alanı belirtir.İstek gövdesini referanstaki alanlarla karşılaştırın.
invalid_sdp422SDP boş ya da geçersiz.WebRTC ucunuzdan geçerli bir SDP üretin.
invalid_since422since ISO 8601 değil ya da izinli aralık dışında.Örn. 2026-10-09T00:00:00Z; mesajlarda 90, yeniden teslimde 7 gün sınırı.
invalid_template_flow_button422Şablon form butonu parametresi hatalı.sub_type: "flow" buton biçimine uyun.
invalid_webhook422Webhook adresi https/genel değil ya da olay listesi boş/geçersiz.Geçerli olay adları ve genel bir https adres kullanın.
meta_call_failed422Meta arama isteğini başka bir nedenle reddetti.meta_code ve meta_message alanlarına bakın.
meta_error422Meta isteği reddetti (okundu, profil). meta_code döner.Meta hata koduna göre düzeltin.
meta_flow_failed422Meta form isteğini reddetti.validation_errors alanını düzeltin.
meta_send_failed422Meta gönderimi reddetti. meta_code ve meta_subcode alanlarına bakın (retryable: true).meta_code: 131047 ise 24 saat penceresi kapalıdır; şablon kullanın.
meta_upload_failed422Meta dosyayı kabul etmedi. Şablon başlık örneği yüklemesinde meta_* alanları da döner.Dosya türünü ve boyutunu kontrol edin.
outside_service_window422Arama izni isteği için 24 saatlik pencere kapalı.Müşteri size yazdıktan sonra tekrar deneyin.
receiver_cannot_receive_calls422Alıcı arama alamıyor (Meta 138001).Kişiye mesajla ulaşın; tekrar denemeyin (retryable: false).
template_delete_failed422Meta şablon silmeyi kabul etmedi (ör. DISABLED şablon silinemez; meta_* alanları döner).Tekrar deneyin; sürerse destek ekibine bildirin.
template_edit_failed422Meta şablon düzenlemesini kabul etmedi (meta_* alanları döner).Meta'nın sebebine (meta_user_message) göre bileşenleri düzeltin.
template_invalid422Şablon Meta kurallarına aykırı; Meta'ya gönderilmedi.message alanındaki kuralı düzeltin; POST /templates/validate ile önceden deneyin.
template_not_in_waba422Şablon gönderen numaranın WABA'sında yok ya da onaylı değil (Meta 132001).Şablonun aynı WABA'da APPROVED olduğundan emin olun.
template_rejected422Meta şablonu reddetti.Meta'nın sebebine göre içeriği düzeltip tekrar gönderin.
too_many422Toplu eklemede 1000 sınırı aşıldı.Listeyi 1000'lik parçalara bölün.
upload_failed422Dosya alınamadı.Yüklemeyi tekrar deneyin.
waba_required422Birden çok WABA'nız var; hedef belirtilmedi.waba_id gönderin.
category_not_editable422Onaylı şablonda kategori değiştirilemez.Kategoriyi göndermeyin ya da POST /templates/{id}/copy ile yeni şablon açın.
invalid_template_parameters422POST /messages şablon gönderiminde URL düğme bileşeni kayıtlı şablon tanımına uymuyor (field yolu söyler). Meta'ya gönderilmez; yalnız şablon Veri Merkezi'nde kayıtlıysa denetlenir, AUTHENTICATION hariç.Değişkenli URL butonu için {type:"button", sub_type:"url", index:"0", parameters:[{type:"text", text:"<adres sonu>"}]} gönderin; sabit adresli URL butonuna bileşen göndermeyin.
business_call_limit429Aynı kişiye 24 saatte yapılabilecek işletme araması sınırı doldu (Meta 138012).24 saat sonra tekrar deneyin.
call_rate_limited429Arama sınırı aşıldı.Bekleyip tekrar deneyin.
concurrent_call_limit429Eşzamanlı arama sınırına ulaşıldı (Meta 138002).Süren bir arama bitince tekrar deneyin (retryable: true).
permission_request_limited429Aynı kişiye arama izni isteği sınırı (24 saatte 1, 7 günde 2).Sınır dolunca tekrar deneyin.
rate_limited429Dakikalık istek sınırı aşıldı. Retry-After ve error.retry_after döner. 2.27.0: error.scope (key, account, account_share), error.bucket ve X-RateLimit-Scope başlığı hangi sınırın aşıldığını gösterir.Retry-After saniye kadar bekleyin; isteklerinizi yayın.
sync_rate_limited429Şablon senkronu WABA başına dakikada 1.Retry-After kadar bekleyin.
template_edit_limit429Şablon düzenleme sınırı doldu (onaylı şablon 24 saatte 1, 30 günde 10). next_edit_at ve retry_after (saniye) döner; Meta kaynaklıysa meta_* alanları da gelir.next_edit_at zamanından sonra tekrar deneyin.
erasure_failed500KVKK silmesi tamamlanamadı.Tekrar deneyin; işlem idempotenttir.
media_path_invalid500Medya kaydının dosya yolu geçersiz.Destek talebinde X-Request-Id değerini paylaşın.
media_unreadable500Medya dosyası okunamadı.Kısa süre sonra tekrar deneyin; sürerse destekle iletişime geçin.
send_failed500Gönderim sistem hatasıyla tamamlanamadı; kredi iade edildi.Aynı Idempotency-Key ile güvenle tekrar deneyin.
server_error500Beklenmeyen sunucu hatası (arama, form, numara ayırma).Üstel bekleme ile tekrar deneyin.
test_inbound_failed500Sahte gelen mesaj işlenemedi.Tekrar deneyin.
webhook_create_failed500Abonelik oluşturulamadı.Tekrar deneyin.
call_connection_error502Arama bağlantısı kurulamadı (Meta 138004).Kısa bir beklemeden sonra tekrar deneyin (retryable: true).
meta_unavailable502Meta yanıt vermiyor (arama ve form uçları). Şablon uçlarında Meta'ya ulaşılamadığında da bu kod döner.Üstel beklemeyle tekrar deneyin (retryable: true).
meta_unexpected_response502Meta işlemi kabul etti ama kimlik döndürmedi; sonuç belirsiz.Aynı isteği tekrar göndermeyin; önce listeleyip durumu kontrol edin.
sync_failed502Meta şablon listesi alınamadı.Bir süre sonra tekrar deneyin.
feature_unavailable503Özellik geçici olarak kullanılamıyor.Kısa süre sonra tekrar deneyin.
temporarily_unavailable503Altyapı geçici olarak yoğun (ör. veritabanı bağlantısı kısa süre reddedildi). 2.27.0 öncesinde bu durumlar 500 dönebiliyordu.Retry-After (5 sn) sonra aynı isteği tekrarlayın; gönderimde aynı Idempotency-Key kullanın.
rate_limit_unavailable503Hız sınırı servisi geçici olarak kullanılamıyor (gönderim uçları güvenli tarafta kalır).Retry-After (5 sn) sonra tekrar deneyin.
call_connect_timeout504Arama bağlantısı zaman aşımına uğradı (Meta 138007).Tekrar deneyin (retryable: true).