WhatsApp API ilə mesaj göndərmək: OTP kodu, şablon və mətn
Son yeniləmə: 11 oktyabr 2026 · 9 dəq oxunur
Şablon da, adi mətn də bir endpointdən gedir: POST /v1/accounts/{account_id}/whatsapp/messages. Mesaj dərhal qəbul olunub növbəyə düşür, cavab 201 ilə gəlir.
Addımlar
-
1
Şablonu tapın
GET /v1/accounts/{account_id}/whatsapp/templatesyalnız APPROVED şablonları qaytarır.channel_idtələb olunur,nameistəyə bağlıdır.Hər şablonda
name,language,category,parameter_format,componentsvəexample_parametersvar.example_parametersşablonun gözlədiyi parametrlərin hazır skeletidir: onu kopyalayıb dəyərləri öz məlumatınızla əvəz edin. Dəyişəni əskik göndərmək Meta tərəfindən rədd edilir.synced_atşablonların Meta-dan sonuncu dəfə nə vaxt gətirildiyini göstərir. Yeni şablonu API görsün deyə paneldə Şablonları sinxronlaşdır basın. -
2
Sorğunun sahələri
channel_id(tələb olunur): WhatsApp Cloud API gələn qutusunun id-siphone_number(tələb olunur): alıcının nömrəsi, beynəlxalq formatdatext: sərbəst mətn, yalnız pəncərə açıq olanda gedirtemplate: şablonla göndəriş,textyoxdursa tələb olunur.template.name(şablonun dəqiq adı) vətemplate.language(az,en,tr,ru,en_USvə s.) tələb olunur,template.parametersşablonun dəyişənləridirfallback_template:textilə birlikdə, pəncərə bağlı olanda işlədilirconversation_status:resolved(standart),openvə yapendingcontact.name,contact.email,contact.identifier(sizin sistemdəki müştəri id-si): istəyə bağlısource_reference: idempotentlik açarıstatus_callback: mesajın vəziyyətini öz ünvanınıza almaq üçün (url,after_seconds,on_change,secret), istəyə bağlı. Ətraflı «Mesajın çatdırılma statusunu izləmək» məqaləsindədir
-
3
Doğrulama kodu (OTP) göndərin
AUTHENTICATION kateqoriyalı şablonla göndərin. Sorğunun gövdəsi:
{ "channel_id": 159, "phone_number": "+994 50 123 45 67", "template": { "name": "verification_code", "language": "az", "parameters": { "body": { "1": "483920" } } }, "contact": { "name": "Kənan Rzayev", "identifier": "crm-10422" }, "source_reference": "otp-10422-1754582400" }Kodun etibarlılıq müddətini qısa saxlayın, 5 dəqiqə tövsiyə olunur. Bir OTP mesajı 0.036 AZN-dir.
-
4
Bildiriş göndərin
Mətni
fallback_templateilə birlikdə göndərin:{ "channel_id": 159, "phone_number": "+994 50 123 45 67", "text": "AZ-10422 nömrəli bağlamanız kuryerə verildi.", "fallback_template": { "name": "kargo_status", "language": "az", "parameters": { "body": { "1": "AZ-10422", "2": "kuryerdə" } } } }Pəncərə açıqdırsa mətn pulsuz gedir (
sent_as: "session"), bağlıdırsa şablon (sent_as: "template"). -
5
Şablon parametrləri
Parametrlər şablonun hissələrinə görə qruplaşır:
header,body,footer,buttons.parameter_formatPOSITIONAL-dırsabody-nin açarları{{1}},{{2}}sırasına uyğun rəqəmlərdir, NAMED-dirsə Meta-da verdiyiniz adlardır:"body": { "1": "Kənan", "2": "AZ-10422" } "body": { "customer_name": "Kənan", "order_id": "AZ-10422" }Yalnız
bodyvarsa qısa forma da qəbul olunur:"parameters": { "1": "483920" }.- Başlıq şəkil, video və ya sənəddirsə
media_url(açıq, https ünvan) vəmedia_typegöndərin:image(JPG, PNG),video(MP4),document(PDF və s., fayl adı üçünmedia_name). - Düymələr:
url(parameterlinkin sonuna əlavə olunur) vəcopy_code(kod köçürmə, ən çoxu 15 simvol). Statik linkli və sürətli cavab düymələri parametr istəmir. - Məbləğ üçün
currencytipi (code,amount_1000,fallback_value), tarix üçündate_time(fallback_value).amount_1000məbləğin 1000-ə vurulmuş tam ədədidir: 149.00 AZN üçün149000.
- Başlıq şəkil, video və ya sənəddirsə
-
6
Nömrəni düzgün yazın
Nömrəni ölkə kodu ilə yazın. Bunların hamısı eyni nəticəni verir, boşluq, defis, mötərizə və «+» özü təmizlənir:
994501234567 +994 50 123 45 67 (+994) 50-123-45-67
0501234567səhvdir: ölkə kodu yoxdur, mesaj səhv nömrəyə gedər. Rəqəmlərin sayı 8-dən 15-ə qədər olmalıdır (E.164), yoxsa422qayıdır. -
7
Cavabı oxuyun
Cavab
201 Createdilə gəlir:id(mesajın id-si),sent_as,status,external_error,whatsapp_message_id,conversation_id,conversation_status,contact_id,channel_id,content,template_name,source_reference,created_at,delivered_at,read_at,status_callback.status: "sent"çatdırıldı demək deyil, Meta mesajı qəbul edib.deliveredvəreadbir neçə saniyə sonra gəlir, ona görə göndərişdən dərhal sonra müştəriyə «çatdırıldı» yazmayın. -
8
Təkrar göndərişin qarşısını alın
Şəbəkə kəsiləndə və ya növbə iki dəfə işə düşəndə eyni sorğu təkrarlana bilər.
source_referenceversəniz, 24 saat ərzində eyni açarla gələn təkrar sorğu yeni mesaj yaratmır, ilk mesajı qaytarır: müştəriyə ikinci kod getmir, Meta-ya iki dəfə ödəniş olmur. Açarı öz sisteminizdə unikal seçin, məsələnotp-{istifadəçi}-{vaxt}. -
9
Kod nümunələri
Sənədin 12-ci bölməsində dörd nümunə var:
- Node.js: kargo bildirişi, pəncərə bağlı olanda şablona keçid
- PHP: doğrulama kodu
- Python: pəncərəni yoxlayıb göndərmək
- C# (.NET): doğrulama kodu
Hamısında açar kodun içində deyil, mühit dəyişənindədir (
CLOMNI_TOKEN).