Sign inGet started

Template autentikasi WhatsApp

Template autentikasi mengirimkan kode verifikasi sekali pakai. Meta menyediakan teksnya saat Anda membuat template. Saat mengirimnya, berikan kode tersebut sebagai parameter body.

Sebelum Anda mengirim

Pilih apakah Anda ingin menggunakan template yang dikelola Bird atau membuat template sendiri di akun bisnis Anda.
Mengirim template katalog bawaan Bird, bird_otp dan bird_otp_authifly, tidak memerlukan verifikasi dari Anda. Template tersebut berada di WhatsApp Business Account milik Bird sendiri, dan jalur pengiriman terkelola tidak pernah memeriksa status verifikasi bisnis Anda.
Ketika akun bisnis yang terhubung melaporkan not_verified, Bird menolak pembuatan atau duplikasi template autentikasi dengan 412 E15043 WhatsAppTemplateBusinessNotVerified. Periksa akun yang terhubung dan status tersinkronisasi terakhirnya. Lihat Verifikasi bisnis WhatsApp untuk proses verifikasi dan penanganan status.
Pembuatan template utility dan marketing tidak terpengaruh oleh persyaratan ini; Anda tetap dapat membuat dan mengeditnya apa pun status verifikasi Anda.
Buat template di dashboard, dengan bird CLI, atau melalui server MCP. Lihat Membuat template WhatsApp untuk alur lengkapnya.

Mengirim kode verifikasi

POST /v1/whatsapp/messages dengan objek template yang menyebut slug katalog:
const msg = await bird.whatsapp.send({
  to: "+14155550100",
  template: {
    slug: "bird_otp",
    language: "en",
    components: [{ type: "body", parameters: [{ type: "text", text: "481920" }] }],
  },
});
console.log(msg.id, msg.status);
Empat aturan khusus untuk kategori ini:
  • Jangan sertakan from. Template yang dikelola Bird memilih pengirimnya sendiri berdasarkan kategori dan wilayah, sehingga menyetel from menghasilkan 422 E15018 WhatsAppSenderNotAllowed. Ini kebalikan dari pengiriman bebas yang memerlukan from, penting diingat jika Anda datang dari halaman pesan interaktif.
  • to harus berupa nomor telepon E.164. Template autentikasi tidak dapat dikirim ke ID pengguna cakupan bisnis; itu menghasilkan 422 E15014 WhatsAppRecipientNotSupportedForTemplate.
  • Body menerima tepat satu parameter posisional, yaitu kode. Tanpa parameter, atau menamai parameter, menghasilkan 422 E15003 WhatsAppTemplateParameterMismatch. Autentikasi adalah satu-satunya kategori yang ditulis Meta secara posisional; semua kategori lain menamai parameternya.
  • Tidak perlu jendela layanan pelanggan. Pengiriman template tidak dibatasi jendela, dan itulah alasan template kode verifikasi ada: template harus bisa menjangkau seseorang yang belum pernah mengirim pesan kepada Anda.
Baca bahasa yang tersedia untuk bird_otp atau bird_otp_authifly dari katalog template. Jika bahasa yang Anda minta tidak tersedia, pengiriman gagal alih-alih mengganti dengan bahasa lain.

Tombol salin kode

Meta menulis body template autentikasi sendiri, sebagai preset dengan satu placeholder kode, jadi Anda menyediakan flag, bukan teks. Komponen tombol bersifat opsional dalam pengiriman: jika Anda tidak menyertakannya, Bird menambahkannya untuk Anda dengan kode yang sama seperti di body. Anda juga dapat menyediakannya sendiri:
Contoh kode
{ "type": "button", "parameters": [{ "type": "text", "text": "481920" }] }
Bagaimanapun, tepat satu tombol sampai ke WhatsApp, yaitu tombol salin kode: mengetuknya menyalin kode ke clipboard. Bird hanya mendukung copy_code; dua perilaku tombol lain yang didokumentasikan Meta untuk template autentikasi, one-tap dan zero-tap autofill, tidak tersedia di Bird saat ini.
Pembuatan tombol template mengikuti bentuk yang sama: satu tombol otp, dan template tidak menerima tipe tombol lain. Anda menyediakan add_security_recommendation (boolean yang ditampilkan di body) dan code_expiration_minutes (1 sampai 90, ditampilkan di footer) alih-alih menulis teks.

Apa yang Meta izinkan dalam template autentikasi

Meta menetapkan struktur template autentikasi dan meninjau isinya: tidak boleh ada URL, media, atau emoji di mana pun dalam template, dan batas 15 karakter pada parameter kode. Kategori ini juga mengubah cara WhatsApp mengirimkan pesan, yaitu hanya ke perangkat utama penerima. Lihat Panduan template untuk struktur tetap, batas karakter, dan proses peninjauan selengkapnya.

Biaya

Kategori dan tujuan menentukan harga. Lihat Tarif authentication-international WhatsApp untuk mengetahui bagaimana pengiriman ke negara selain lokasi utama Anda dapat mengubahnya, dan Biaya dan penagihan untuk mengetahui kapan pengiriman dikenakan biaya. Angka tarif tersedia di Harga WhatsApp.

Hal yang perlu diperhatikan

  • Template bawaan Bird tidak mengirim ke sembilan negara. bird_otp dan bird_otp_authifly mengirim dari WhatsApp Business Account milik Bird sendiri, dan akun tersebut tidak mengirimkan pesan autentikasi ke Mesir, India, Indonesia, Malaysia, Nigeria, Pakistan, Arab Saudi, Afrika Selatan, atau Uni Emirat Arab. Pengiriman semacam itu ditolak 422 E15063 WhatsAppDestinationRestricted sebelum dikenakan biaya. Template yang Anda buat di akun sendiri, dikirim dari nomor Anda sendiri, menjangkau negara-negara ini secara normal. Verify juga menjangkau mereka, dengan memindahkan kode verifikasi ke kanal lain secara otomatis.
  • Pengiriman template buatan sendiri memerlukan from, dan nomor pengirim harus berada di WhatsApp Business Account yang sama dengan template. Pengirim dari akun berbeda ditolak 422 E15023 WhatsAppSenderWABAMismatch sebelum dikenakan biaya.
  • Hanya bahasa yang versinya disetujui dan aktif yang dapat dikirim. Bahasa berstatus draf, pending, ditolak, atau dijeda tidak dapat dikirim.
  • Meta dapat mengubah kategori template atas inisiatifnya sendiri. Tidak ada opsi menolak, dan perubahan kategori ini turut mengubah aturan harga dan pengiriman yang berlaku.
  • Kategori template dan kategori bahasanya bisa berbeda. Lihat Template WhatsApp untuk cara jalur pengiriman menyelesaikan hal ini.
  • Template autentikasi yang sudah diimpor tidak dapat diduplikasi. Bird tidak dapat membaca kembali teks yang dibuat WhatsApp lalu mengubahnya kembali menjadi pengaturan untuk membuat template baru; itu menghasilkan 422 E15024 WhatsAppTemplateContentNotDuplicable. Buat template baru dengan rekomendasi keamanan dan kedaluwarsa kode tersendiri.

Langkah selanjutnya