+
R

Oleh Ryan

Dipublikasikan pada 15 Okt 2026

Templat Autentikasi WhatsApp: Cara Mengirim OTP melalui WhatsApp

Templat autentikasi adalah kategori khusus WhatsApp untuk OTP: konten tetap, persetujuan instan, dan tombol OTP yang dirancang untuk pengisian otomatis di Android. Panduan ini membahas jenis tombol, persyaratan, cara membuat dan mengirim lewat dasbor atau API, masa berlaku vs TTL, serta harga.

Ringkasnya: Template autentikasi adalah kategori khusus di WhatsApp Business Platform untuk OTP dan kode verifikasi. Teks pesannya sudah ditetapkan oleh WhatsApp; Anda hanya memberikan kodenya dan memilih tombol OTP (salin kode, isi otomatis dengan sekali ketuk, atau tanpa ketuk). Biasanya template ini disetujui hampir seketika, jarang dijeda, dan hanya dikenakan biaya saat pesan terkirim. Panduan ini membahas perbedaannya dengan template lain, kapan menggunakannya, cara membuat dan mengirimkannya (melalui dasbor dan API), perbedaan masa berlaku kode dengan TTL pesan, serta praktik terbaik untuk mencegah sebagian besar masalah saat digunakan di lingkungan produksi.

Pendahuluan

Jika aplikasi Anda mengirim OTP melalui SMS, Anda tentu sudah tahu kendalanya: biaya yang terus naik, pesan yang tertunda atau difilter, serta pengguna yang tidak pernah melihat kodenya. Template autentikasi WhatsApp memberi Anda pilihan lain. Kode masuk melalui aplikasi yang sudah sering diperiksa orang, dan di Android Anda bisa menawarkan fitur isi otomatis dengan sekali ketuk yang langsung memasukkan kode ke aplikasi Anda.

Panduan ini membahas apa itu template autentikasi, perbedaannya dengan template Marketing dan Utility, kapan Anda bisa (dan tidak bisa) menggunakannya, serta cara membuat dan mengirimkannya melalui dasbor Chakra maupun API.

Apa Itu Template Autentikasi?

Template autentikasi adalah salah satu dari tiga kategori template di WhatsApp Business Platform, bersama Marketing dan Utility. Template ini memiliki satu fungsi: mengirimkan kata sandi sekali pakai dan kode verifikasi untuk mengonfirmasi identitas pengguna.

Hal yang membedakannya:

  • Kontennya sudah distandardisasi. Anda tidak dapat menulis teks isi pesan sendiri. WhatsApp membuatnya dalam bahasa template ("{{1}} adalah kode verifikasi Anda") dan Anda hanya perlu memberikan kodenya.
  • Wajib menggunakan tombol OTP. Tombol salin kode atau isi otomatis dengan sekali ketuk wajib digunakan, atau Anda dapat memilih tanpa ketuk, yang tidak menampilkan tombol. Jenis tombol ini hanya tersedia dalam kategori ini.
  • Teks masa berlaku bersifat opsional. Anda dapat menambahkan footer seperti "Kode ini kedaluwarsa dalam 5 menit."
  • Persetujuan biasanya diberikan seketika, karena kontennya sudah ditetapkan dan tidak bersifat promosi. Meta juga menyebutkan bahwa template autentikasi dengan tombol OTP memiliki risiko dijeda yang jauh lebih rendah dibandingkan kategori lain.

Anatomi Template Autentikasi

KomponenWajib?Detail
HeaderTidak didukungTemplate autentikasi tidak dapat menyertakan header atau media apa pun.
Isi pesanWajib (dibuat otomatis)"{{1}} adalah kode verifikasi Anda." Anda dapat menambahkan "Demi keamanan Anda, jangan bagikan kode ini." Teks ini tidak dapat diedit.
FooterOpsionalMenampilkan "Kode ini kedaluwarsa dalam X menit" jika Anda menetapkan masa berlaku kode.
TombolWajibSatu tombol OTP: salin kode, isi otomatis dengan sekali ketuk, atau tanpa ketuk.

Yang dilihat pengguna:

482913 adalah kode verifikasi Anda. Demi keamanan Anda, jangan bagikan kode ini.

Kode ini kedaluwarsa dalam 5 menit.

[ Salin kode ]

Jenis Tombol: Salin Kode vs. Isi Otomatis dengan Sekali Ketuk vs. Tanpa Ketuk

Salin KodeIsi Otomatis dengan Sekali KetukTanpa Ketuk
Cara kerjaPengguna mengetuk tombol, kode disalin, lalu pengguna menempelkannya ke aplikasi AndaPengguna mengetuk tombol, lalu kode langsung dikirim ke aplikasi Android AndaTanpa mengetuk tombol: kode dikirim ke aplikasi Android Anda saat pesan tiba
PlatformSemua perangkatAndroid sajaAndroid saja
PersyaratanTidak adaNama paket dan hash tanda tangan aplikasi AndaSama seperti sekali ketuk, ditambah persetujuan terhadap ketentuan tanpa ketuk Meta
Paling cocok untukOpsi dasar yang berlaku universalAplikasi Android yang menginginkan alur standar semulus mungkinAplikasi dengan integrasi Android yang mendalam

Perilaku fallback penting. Template sekali ketuk atau tanpa ketuk tetap mengharuskan Anda memberikan label tombol salin kode. Jika Meta tidak dapat memvalidasi proses isi otomatis (misalnya, aplikasinya tidak terpasang), pesan akan menampilkan tombol salin kode. Jadi, Anda tidak perlu membuat "isi otomatis plus salin kode" sebagai dua tombol: sebuah template hanya memiliki satu tombol OTP, dan fallback salin kode sudah tersedia di dalamnya.

Catatan tentang iPhone. Sekali ketuk dan tanpa ketuk adalah fitur Android. Secara terpisah, dokumentasi Meta menyatakan bahwa mulai 15 Juni 2026, di iOS 26 dan versi lebih baru, saran papan ketik menyediakan fitur isi otomatis OTP bawaan dari notifikasi push, tanpa perlu integrasi dari pihak Anda.

Tentang hash tanda tangan. Untuk fitur sekali ketuk dan tanpa ketuk, Anda memberikan nama paket aplikasi Android serta hash tanda tangan sepanjang 11 karakter yang berasal dari sertifikat penandatanganan aplikasi Anda. Ketidakcocokan adalah alasan paling umum fitur isi otomatis diam-diam beralih ke salin kode, jadi lakukan pengujian di perangkat sungguhan sebelum meluncurkannya. OTP Android SDK dari Meta menyederhanakan proses ini dan layak digunakan.

Kapan Menggunakan Template Autentikasi

Gunakan hanya untuk kode verifikasi:

  • Login dan pendaftaran (memverifikasi nomor telepon)
  • Autentikasi dua faktor
  • Pemulihan akun dan pengaturan ulang kata sandi
  • Mengonfirmasi identitas sebelum perubahan akun yang sensitif
  • Verifikasi ulang di perangkat baru atau setelah periode tidak aktif

Kapan Tidak Menggunakannya

Templat autentikasi hanya untuk kode. Menggunakannya untuk hal lain dapat menyebabkan templat ditolak atau dikategorikan ulang:

  • Pembaruan pesanan dan notifikasi pengiriman termasuk dalam kategori Utilitas.
  • Promosi, penawaran, dan interaksi ulang termasuk dalam kategori Pemasaran.
  • Konten apa pun yang bukan kode verifikasi tidak termasuk di sini.

Kesalahan sebaliknya juga sering terjadi: jangan masukkan OTP ke dalam templat Utilitas untuk menghindari format yang sudah ditentukan. Meta dapat mendeteksi konten OTP dan akan mengategorikan ulang atau menolaknya. Jika pesan Anda berisi kode, pesan tersebut harus menggunakan templat Autentikasi, dan ini juga menentukan cara penagihannya.

Persyaratan dan Batasan

Untuk bisnis

  • Akun WhatsApp Business yang aktif di WhatsApp Business Platform, tersedia melalui penyedia seperti Chakra.
  • Salin kode dan sekali ketuk tidak memerlukan persetujuan khusus. Untuk tanpa ketuk, Anda harus menyetujui ketentuan tanpa ketuk Meta saat membuat templat.

Untuk templat

  • Teks isi sudah ditentukan. Tidak ada teks khusus dan tidak ada variabel tambahan selain kode.
  • Tepat satu tombol OTP.
  • Teks label tombol: maksimal 25 karakter.
  • Hash tanda tangan (sekali ketuk dan tanpa ketuk): tepat 11 karakter.
  • Masa berlaku kode (opsional): 1 hingga 90 menit.
  • Gunakan kode dengan panjang seperti biasanya, yaitu 4 hingga 8 digit, sesuai dengan rancangan alur pengisian otomatis.

Untuk penerima

  • Nomor tersebut harus memiliki akun WhatsApp yang aktif. Jika tidak, pengiriman akan gagal (Anda akan melihat error 131026), jadi SMS sebagai opsi cadangan merupakan langkah pengamanan yang masuk akal untuk alur penting.
  • Menurut dokumentasi Meta, pesan autentikasi hanya dikirim ke perangkat WhatsApp utama pengguna.
  • Pengisian otomatis sekali ketuk juga mengharuskan aplikasi Anda terpasang di perangkat Android.

Cara Membuat Templat Autentikasi

Opsi 1: Dari Dasbor Chakra

Fitur manajemen templat Chakra memungkinkan Anda membuat templat dalam setiap kategori, termasuk Autentikasi. Pengajuan ke Meta dan sinkronisasi status persetujuan akan ditangani untuk Anda.

  1. Buka manajemen templat dan buat templat baru.
  2. Pilih kategori Autentikasi .
  3. Beri nama templat (huruf kecil, angka, dan garis bawah), lalu pilih bahasanya.
  4. Pilih jenis tombol: salin kode atau pengisian otomatis sekali ketuk.
  5. Untuk sekali ketuk, masukkan nama paket Android dan hash tanda tangan Anda.
  6. Aktifkan atau nonaktifkan rekomendasi keamanan ("Demi keamanan Anda, jangan bagikan kode ini").
  7. Tetapkan masa berlaku kode (5 hingga 10 menit biasanya digunakan untuk alur login).
  8. Kirim. Persetujuan biasanya diberikan seketika.
Tangkapan layar 2026-10-14 at 3.14.40 PM.png

Opsi 2: Melalui API

Buat templat salin kode:

json

POST https://graph.facebook.com/v{version}/{WABA_ID}/message_templates

{
"name": "login_otp_copy_code",
"language": "en_US",
"category": "AUTHENTICATION",
"message_send_ttl_seconds": 300,
"components": [
{ "type": "BODY", "add_security_recommendation": true },
{ "type": "FOOTER", "code_expiration_minutes": 5 },
{
"type": "BUTTONS",
"buttons": [
{ "type": "OTP", "otp_type": "COPY_CODE", "text": "Copy Code" }
]
}
]
}

Buat templat pengisian otomatis sekali ketuk (label salin kode merupakan opsi cadangan bawaan):

json

{
"name": "login_otp_autofill",
"language": "en_US",
"category": "AUTHENTICATION",
"message_send_ttl_seconds": 300,
"components": [
{ "type": "BODY", "add_security_recommendation": true },
{ "type": "FOOTER", "code_expiration_minutes": 5 },
{
"type": "BUTTONS",
"buttons": [
{
"type": "OTP",
"otp_type": "ONE_TAP",
"text": "Copy Code",
"autofill_text": "Autofill",
"package_name": "com.yourcompany.app",
"signature_hash": "K8a/AINcGX7"
}
]
}
]
}

Referensi kolom

KolomWajibCatatan
nameYaHuruf kecil, angka, dan garis bawah.
languageYaKode lokal seperti en_US. Teks isi dilokalkan secara otomatis.
categoryYaHarus berupa AUTHENTICATION.
message_send_ttl_secondsTidakBerapa lama Meta akan terus mencoba mengirimkan pesan. Default-nya 10 menit.
BODY.add_security_recommendationTidakMenambahkan baris "jangan bagikan kode ini".
FOOTER.code_expiration_minutesTidakMenambahkan baris masa berlaku. 1 hingga 90 menit.
BUTTONSYaSatu tombol OTP . otp_type adalah COPY_CODE, ONE_TAP, atau ZERO_TAP.
textYaLabel salin kode, maksimal 25 karakter. Wajib diisi, bahkan untuk sekali ketuk, sebagai opsi cadangan.
autofill_textKhusus sekali ketukLabel pengisian otomatis, maksimal 25 karakter.
package_name, signature_hashSekali ketuk dan tanpa ketukNama paket aplikasi Android Anda dan hash tanda tangan 11 karakter.

Berbagai bahasa. Nama templat yang sama dapat digunakan dalam beberapa bahasa. Endpoint upsert Meta memungkinkan Anda membuat templat autentikasi untuk beberapa bahasa sekaligus dalam satu panggilan, tanpa perlu mengulangi permintaan untuk setiap bahasa.

Mengirim Kode

Dengan SDK Chakra

SDK TypeScript Chakra memiliki parameter OTP, jadi Anda tidak perlu menyusun komponen secara manual:

javascript

await client.whatsapp.templateMessages.send({
pluginId: "YOUR_PLUGIN_ID",
toPhoneNumber: "919999999999",
whatsappPhoneNumberId: "YOUR_PHONE_NUMBER_ID",
templateName: "login_otp",
otpCode: "496093",
});

Nomor telepon harus mencantumkan kode negara tanpa + atau karakter pemformatan.

Dengan endpoint berformat Meta

Jika Anda lebih memilih payload Meta mentah melalui endpoint pass-through Chakra, ada satu detail yang sering terlewat: code harus dicantumkan dua kali, sekali di body dan sekali di komponen tombol.

bash

curl --request POST \
'https://api.chakrahq.com/v1/ext/plugin/whatsapp/{pluginId}/api/v19.0/{whatsappPhoneNumberId}/messages' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"messaging_product": "whatsapp",
"recipient_type": "individual",
"to": "919999999999",
"type": "template",
"template": {
"name": "login_otp",
"language": { "code": "en_US" },
"components": [
{
"type": "body",
"parameters": [ { "type": "text", "text": "482913" } ]
},
{
"type": "button",
"sub_type": "url",
"index": "0",
"parameters": [ { "type": "text", "text": "482913" } ]
}
]
}
}'

Tidak menyertakan parameter tombol adalah penyebab umum pengiriman OTP gagal. Gunakan versi Graph API terbaru di URL, dan lihat referensi API Chakra untuk detail autentikasi dan permintaan.

Masa Berlaku Code dan TTL Pesan Adalah Pengaturan yang Berbeda

Keduanya mudah tertukar:

  • code_expiration_minutes mengatur teks yang ditampilkan kepada pengguna ("Code ini kedaluwarsa dalam X menit"). Pengaturan ini memberi tahu berapa lama code berlaku.
  • message_send_ttl_seconds mengatur berapa lama Meta terus mencoba mengirimkan pesan. Untuk template autentikasi, nilai default-nya adalah 10 menit dan Anda dapat mempersingkatnya. Jika pesan tidak terkirim dalam rentang waktu tersebut, Meta akan menghapusnya, dan pesan yang tidak terkirim tidak dikenakan biaya.

Atur keduanya dengan saksama dan sesuaikan dengan rentang waktu validitas di sisi server Anda. Jika TTL berakhir dan Anda belum menerima webhook pengiriman, anggap pesan tersebut tidak terkirim. Inilah saat yang tepat untuk beralih ke SMS sebagai cadangan.

Alur OTP dari Awal hingga Akhir

  1. Pengguna memasukkan nomor teleponnya di aplikasi atau situs Anda.
  2. Backend Anda membuat code dan memanggil API pengiriman.
  3. WhatsApp mengirimkan template autentikasi.
  4. Pengguna mengetuk isi otomatis (Android) atau menyalin lalu menempelkan code.
  5. Backend Anda memverifikasi code dan memasukkan pengguna ke akun.
  6. Webhook Anda menerima status pengiriman, sehingga Anda dapat memicu metode cadangan jika pesan tidak pernah sampai.

Harga

  • Pesan autentikasi ditagih per pesan yang berhasil dikirim, dengan tarif autentikasi sesuai negara penerima (lihat harga per negara). Beberapa pasar juga memiliki tarif autentikasi internasional terpisah untuk bisnis yang memenuhi syarat.
  • Pesan yang tidak terkirim, termasuk yang dihapus setelah TTL berakhir, tidak dikenakan biaya.
  • Tarif berbeda-beda di setiap negara dan berubah dari waktu ke waktu, jadi periksa daftar tarif Meta terbaru sebelum membuat proyeksi.
  • Chakra tidak mengenakan markup untuk pesan template: Anda membayar tarif Meta yang berlaku untuk pesan yang berhasil dikirim.

Praktik Terbaik

  • Mulai dengan fitur salin code. Fitur ini berfungsi untuk semua pengguna. Tambahkan fitur sekali ketuk hanya jika Anda memiliki aplikasi Android dan dapat mengelola hash tanda tangan.
  • Buat masa berlaku singkat, biasanya 5 hingga 10 menit, dan sesuaikan TTL dengannya.
  • Siapkan SMS sebagai metode cadangan bagi penerima yang tidak dapat menerima WhatsApp (131026), serta untuk pesan yang tidak mendapat konfirmasi pengiriman sebelum TTL berakhir.
  • Batasi frekuensi permintaan OTP di server Anda, dengan jeda sebelum pengiriman ulang, untuk mencegah penyalahgunaan dan spam yang tidak disengaja. Perhitungkan juga batas frekuensi API saat trafik memuncak (Chakra membatasi 200 panggilan per menit).
  • Buat template untuk setiap bahasa yang Anda gunakan, sebisa mungkin dengan nama template yang sama.
  • Pantau webhook status (terkirim, sampai, dibaca, gagal) agar masalah keterkiriman dapat diketahui lebih awal.
  • Jangan pernah menggunakan template autentikasi untuk konten selain OTP. Ini cara tercepat agar kategorinya diubah.
  • Uji fitur isi otomatis di perangkat Android sungguhan sebelum peluncuran. Masalah hash tanda tangan hanya akan terlihat di sana.

FAQ

Bisakah saya menyesuaikan teks body template autentikasi? Tidak. Body-nya sudah distandardisasi. Anda hanya dapat mengatur pernyataan keamanan, baris masa berlaku, dan label tombol.

Apakah template autentikasi perlu mendapat persetujuan? Template ini tetap melalui proses pengajuan normal, tetapi karena kontennya sudah ditetapkan, biasanya persetujuan diberikan hampir seketika.

Apa yang terjadi jika saya mengirim OTP menggunakan template Utility? Meta akan mendeteksi konten OTP dan mengubah kategorinya menjadi autentikasi atau menolaknya. Gunakan kategori yang tepat sejak awal.

Apakah fitur isi otomatis sekali ketuk berfungsi di iPhone? Tidak. Fitur sekali ketuk dan tanpa ketuk hanya tersedia di Android. Pengguna iPhone menggunakan alur salin code, dan di iOS 26 ke atas, Meta menyebutkan bahwa saran keyboard dapat mengisi code secara otomatis langsung dari notifikasi.

Bisakah saya mengirim template yang sama dalam beberapa bahasa? Bisa. Satu nama template dapat memiliki versi terpisah yang disetujui untuk setiap bahasa, dan Anda memilih kode bahasa saat mengirim.

Berapa panjang code yang diperbolehkan? Gunakan 4 hingga 8 digit, sesuai standar yang digunakan dalam alur isi otomatis.

Kesimpulan

Template autentikasi adalah salah satu kategori yang paling mudah diterapkan dengan benar: konten tetap, persetujuan instan, dan tombol OTP yang sesuai dengan platform Anda. Jika Anda sedang membuat alur login, pendaftaran, atau autentikasi dua faktor, template ini layak digunakan bersama SMS atau sebagai saluran OTP utama jika pengguna Anda sudah terbiasa berkomunikasi melalui WhatsApp. Untuk referensi lengkap tentang template dan pengiriman, lihat dokumentasi template autentikasi Meta dan dokumentasi API Chakra.