← Blog  •  12 Jun 2026  •  Tim LoginWA

OTP WhatsApp vs SMS, Mana Lebih Murah? Simulasi Biaya 2026

Kalau aplikasi kamu pakai OTP SMS untuk login atau verifikasi, coba buka invoice bulanan dari aggregator SMS-mu. Besar kemungkinan biaya OTP adalah salah satu pos pengeluaran infrastruktur paling boros, padahal fungsinya cuma mengantarkan 6 digit angka.

Di artikel ini kita bedah perbandingan OTP WhatsApp vs SMS dari sisi biaya dan delivery, lengkap dengan tabel simulasi 1.000 sampai 50.000 OTP per bulan, contoh kode yang bisa langsung dijalankan, plus strategi fallback supaya user tetap bisa login walau tidak punya WhatsApp.

Berapa Sebenarnya Biaya OTP SMS di Indonesia?

Tarif SMS OTP di Indonesia umumnya berada di kisaran Rp350–600 per pesan lewat aggregator SMS. Kenapa semahal itu? Beberapa alasannya:

  • Rute premium. SMS OTP biasanya dikirim lewat jalur transaksional/premium operator supaya prioritas pengirimannya tinggi, dan jalur ini dihargai lebih mahal daripada SMS biasa.
  • Biaya interkoneksi operator. Aggregator harus membayar Telkomsel, Indosat, XL, dan kawan-kawan untuk setiap pesan yang masuk ke jaringan mereka.
  • Margin berlapis. Dari operator, ke aggregator, kadang masih lewat reseller lagi sebelum sampai ke kamu.

Yang bikin tambah berat: kamu tetap bayar untuk OTP yang tidak pernah dipakai. User salah ketik nomor, user iseng, bot yang menyalahgunakan form registrasi, semuanya tetap dihitung per pesan terkirim.

Hitungan kasarnya: aplikasi dengan 10.000 request OTP per bulan di tarif Rp450/SMS sudah menghabiskan Rp4,5 juta per bulan hanya untuk kirim angka verifikasi.

OTP via WhatsApp: Cara Kerja dan Biayanya

WhatsApp adalah aplikasi chat paling banyak dipakai di Indonesia, jadi secara jangkauan dia hampir setara SMS untuk mayoritas user. Ada dua jalur untuk mengirim OTP via WhatsApp:

  1. WhatsApp Business API resmi (via Meta/BSP), andal dan resmi, tapi tarifnya per percakapan, ada proses approval, dan untuk volume kecil-menengah biayanya masih terasa berat untuk startup atau aplikasi internal.
  2. Gateway unofficial, memakai nomor WhatsApp biasa yang dihubungkan ke API lewat scan QR. Tanpa approval Meta, tanpa biaya per percakapan, dan kamu hanya membayar paket kuota pesan ke penyedia gateway.

Jalur kedua inilah yang membuat biaya OTP bisa turun drastis.

Hitung-hitungan per pesan

Di LoginWA, 1 OTP = 1 pesan kuota. Kalau dihitung dari harga paketnya:

  • Lite, Rp25.000 / 3.000 pesan = sekitar Rp8,3 per OTP
  • Regular, Rp65.000 / 15.000 pesan = sekitar Rp4,3 per OTP
  • Business, Rp149.000 / 60.000 pesan = sekitar Rp2,5 per OTP

Bandingkan dengan SMS di Rp350–600 per pesan: selisihnya bukan lagi puluhan persen, tapi 40 sampai 200 kali lipat lebih murah.

Tabel Simulasi: 1.000 sampai 50.000 OTP per Bulan

Biar gampang dibayangkan, ini simulasi biaya bulanan. Kolom SMS memakai rentang tarif Rp350–600/pesan, kolom WhatsApp memakai paket LoginWA terkecil yang kuotanya cukup.

Volume OTP/bulan Biaya via SMS (Rp350–600/OTP) Paket LoginWA yang cukup Biaya via WhatsApp Penghematan
1.000 Rp350.000 – Rp600.000 Lite (3.000 pesan) Rp25.000 ± 93–96%
3.000 Rp1.050.000 – Rp1.800.000 Lite (3.000 pesan) Rp25.000 ± 98%
5.000 Rp1.750.000 – Rp3.000.000 Regular (15.000 pesan) Rp65.000 ± 96–98%
15.000 Rp5.250.000 – Rp9.000.000 Regular (15.000 pesan) Rp65.000 ± 99%
30.000 Rp10.500.000 – Rp18.000.000 Business (60.000 pesan) Rp149.000 ± 99%
50.000 Rp17.500.000 – Rp30.000.000 Business (60.000 pesan) Rp149.000 ± 99%

Di volume 50.000 OTP/bulan, selisihnya bisa di atas Rp17 juta per bulan. Detail semua paket (termasuk Free dengan 500 pesan/bulan untuk eksperimen) ada di halaman pricing.

Perbandingan Delivery: Mana yang Lebih Sampai?

Biaya bukan satu-satunya pertimbangan. Dari sisi pengiriman:

Keunggulan SMS:

  • Tidak butuh internet, sinyal seluler saja cukup.
  • Tidak butuh aplikasi apa pun terpasang.
  • Bekerja di feature phone sekalipun.

Keunggulan OTP WhatsApp:

  • Pesan masuk ke aplikasi yang paling sering dibuka orang Indonesia, jadi cenderung lebih cepat dilihat.
  • Tidak terkena filter SMS spam operator yang kadang menahan atau menunda SMS OTP.
  • Bisa kirim lebih dari teks, misalnya logo brand sebagai gambar pendamping, sesuatu yang mustahil di SMS.
  • Panjang pesan bebas, tanpa hitungan 160 karakter.

Catatan jujur: di jalur unofficial tidak ada SLA resmi dari Meta. Kalau device kamu offline atau nomor pengirim bermasalah, pesan tidak terkirim. Karena itu strategi fallback (dibahas di bawah) tetap penting.

Cara Implementasi OTP WhatsApp (Contoh Kode)

LoginWA punya endpoint OTP siap pakai, jadi kamu tidak perlu membuat generator dan penyimpanan kode OTP sendiri.

1. Kirim OTP

curl -X POST https://api.loginwa.com/api/v1/auth/start \
  -H "Authorization: Bearer API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"phone": "628123456789"}'

Respons akan berisi session_id yang kamu simpan untuk tahap verifikasi.

2. Verifikasi OTP

Setelah user memasukkan kode yang diterima di WhatsApp-nya:

curl -X POST https://api.loginwa.com/api/v1/auth/verify \
  -H "Authorization: Bearer API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"session_id": "SESSION_ID_DARI_LANGKAH_1", "otp_code": "123456"}'

Kalau kode benar, verifikasi sukses dan kamu tinggal membuat sesi login di aplikasimu. Ada juga SDK JavaScript dan PHP kalau tidak mau menulis HTTP request manual, lengkapnya di dokumentasi.

Kelemahan OTP WhatsApp yang Harus Kamu Tahu

Supaya adil, ini daftar kelemahan yang nyata, bukan untuk ditakuti, tapi untuk dimitigasi:

  • User harus punya WhatsApp. Mayoritas pengguna smartphone di Indonesia punya, tapi "mayoritas" bukan "semua". Nomor kantor, nomor baru, atau pengguna feature phone tidak akan menerima OTP-mu.
  • Risiko pemblokiran nomor pengirim. Ini risiko bawaan semua gateway unofficial, di penyedia mana pun. Nomor yang mengirim pesan terlalu cepat dan terlalu banyak ke nomor-nomor asing bisa ditandai oleh sistem WhatsApp. LoginWA memakai typing indicator dan delay acak menyerupai perilaku manusia untuk meminimalkan risiko ini, tapi jujur saja, tidak ada satu pun penyedia unofficial yang bisa menjamin 100% bebas banned. Praktik terbaiknya: pakai nomor khusus untuk OTP (bukan nomor pribadi), dan jangan campur dengan blast promosi di nomor yang sama.
  • Butuh internet di sisi penerima. User di area tanpa data seluler tidak menerima pesan sampai online lagi.
  • Bukan jalur resmi Meta. Kalau kebutuhanmu adalah compliance ketat (misalnya perbankan), jalur resmi WhatsApp Business API lebih tepat meski jauh lebih mahal.

Strategi Fallback: WhatsApp Dulu, SMS Cadangan

Pola yang paling masuk akal untuk produksi bukan "WA menggantikan SMS total", melainkan WA-first dengan SMS sebagai cadangan. Logikanya:

  1. Cek dulu apakah nomor terdaftar di WhatsApp memakai endpoint pengecekan nomor. Kalau tidak terdaftar, langsung kirim via SMS, tidak buang kuota.
  2. Kirim OTP via WhatsApp untuk nomor yang terdaftar.
  3. Sediakan tombol "Kirim via SMS" yang aktif setelah 30–60 detik, untuk user yang WhatsApp-nya offline.

Contoh kerangka implementasinya di Node.js:

const BASE = "https://api.loginwa.com/api/v1";
const HEADERS = {
  "Authorization": `Bearer ${process.env.LOGINWA_API_KEY}`,
  "Content-Type": "application/json",
};

async function kirimOTP(phone) {
  // 1. Cek apakah nomor terdaftar di WhatsApp
  const cek = await fetch(`${BASE}/numbers/check`, {
    method: "POST",
    headers: HEADERS,
    body: JSON.stringify({ phone }),
  }).then((r) => r.json());
  // struktur respons lengkap ada di loginwa.com/docs

  if (!cek.registered) {
    return kirimOtpViaSms(phone); // fallback ke aggregator SMS-mu
  }

  // 2. Kirim OTP via WhatsApp
  const otp = await fetch(`${BASE}/auth/start`, {
    method: "POST",
    headers: HEADERS,
    body: JSON.stringify({ phone }),
  }).then((r) => r.json());

  return { channel: "whatsapp", sessionId: otp.session_id };
}

Dengan pola ini, andaikan 90% user-mu menerima OTP via WhatsApp dan hanya 10% jatuh ke SMS, biaya tetap turun drastis dibanding 100% SMS. Kamu juga bisa memantau status pengiriman lewat webhook LoginWA (ditandatangani HMAC-SHA256, dengan retry otomatis) untuk memicu fallback secara terprogram, bukan hanya lewat tombol manual.

Bagaimana dengan Gateway Lain?

LoginWA bukan satu-satunya pemain di kategori ini, dan kamu sebaiknya membandingkan sendiri:

  • Fonnte, pemain terbesar dengan fitur sangat lengkap dan dokumentasi bagus. Lite Rp25.000/1.000 pesan (≈Rp25/pesan), Regular Rp66.000/10.000 pesan (≈Rp6,6/pesan), Master Rp175.000 unlimited. Untuk volume sangat besar, paket unlimited-nya menarik.
  • Wablas, Rp22.000–139.000/bulan dengan trial 15 hari dan ekosistem plugin yang luas.
  • Watzap.id, Rp449.000–649.000 per tahun, unlimited.

Sebagai pembanding langsung di kelas harga yang sama: LoginWA Lite Rp25.000 memberi 3.000 pesan (vs 1.000 di Fonnte Lite), dan Regular Rp65.000 memberi 15.000 pesan (vs 10.000 di Fonnte Regular Rp66.000). LoginWA memang pemain baru, jadi rekam jejaknya belum sepanjang Fonnte, tapi dari sisi rupiah per pesan untuk use case OTP, angkanya kompetitif. Silakan hitung sendiri sesuai volume kamu.

Kesimpulan

  • SMS OTP di Indonesia memakan Rp350–600 per pesan; via gateway WhatsApp unofficial bisa turun ke Rp2,5–8,3 per pesan.
  • Di volume 15.000 OTP/bulan, selisihnya bisa Rp5–9 juta per bulan.
  • Kelemahan OTP WhatsApp (butuh WA terpasang, risiko ban nomor pengirim) nyata, tapi bisa dimitigasi dengan nomor khusus, delay menyerupai manusia, dan strategi fallback ke SMS.
  • Pola produksi terbaik: cek nomor → kirim via WA → fallback SMS setelah timeout.

Mau coba hitung sendiri di aplikasimu? Daftar gratis di LoginWA, cukup pakai nomor WhatsApp (verifikasi OTP, tanpa kartu kredit), dapat 500 pesan per bulan untuk eksperimen. Scan QR, panggil endpoint auth/start, dan bandingkan invoice-nya dengan tagihan SMS-mu bulan ini.

Ready to try? Free 500 messages/month, no credit card.
Start free See pricing