Panduan integrasi B2B Inbound WhatsApp & Telegram Authentication: kelola App, API key, webhook, top-up, dan log verifikasi.
Panduan integrasi B2B Inbound WhatsApp & Telegram Authentication: buat App, ambil API key, atur webhook, dan jalankan verifikasi lintas channel.
Jawaban singkat untuk pertanyaan yang paling sering muncul.
LessOTP.com adalah layanan infrastruktur B2B Inbound Phone Authentication via WhatsApp dan Telegram. Customer cukup mengirim satu pesan berisi kode unik untuk terverifikasi, tanpa mengetik OTP.
Credit adalah satuan saldo di level Account. Nilainya tetap: 1 credit = 1 rupiah. Saldo dipakai bersama oleh semua App dalam Account.
Saldo hanya dipotong saat verifikasi berhasil (Pay Per Success), untuk channel WhatsApp maupun Telegram. Jika unique_code kedaluwarsa, nomor tidak cocok, atau customer tidak membalas, saldo tidak berkurang.
Strict: Anda mengirim phone_number saat request, dan nomor dari channel harus cocok. Frictionless: Anda tidak mengirim phone_number, dan nomor diselesaikan dari pesan inbound. WhatsApp memakai nomor pengirim, Telegram memakai nomor yang dibagikan user melalui tombol resmi Share phone number.
Secara default, LessOTP membalas pesan WhatsApp Customer dengan emoji saja sebagai contextual reply (✅ untuk verifikasi berhasil, ❌ jika kode kedaluwarsa atau tidak valid) yang mengutip pesan Customer. Chat Customer tetap rapi dan tenang tanpa pesan teks panjang sementara Customer kembali ke aplikasi Anda. Admin platform juga dapat mengubah mode balasan ke pesan teks lengkap melalui pengaturan sistem jika dibutuhkan.
Telegram tidak memberikan nomor secara otomatis. Bot LessOTP meminta user menekan tombol resmi Share phone number (KeyboardButton request_contact). Nomor hanya diterima jika payload contact benar-benar milik pengirim pesan.
Telegram memungkinkan user menempel contact orang lain. Sistem memverifikasi contact.user_id === message.from.id agar nomor yang diverifikasi pasti adalah nomor milik user Telegram yang sedang berinteraksi, bukan nomor orang lain. Jika tidak cocok, verifikasi ditolak dan saldo tidak dipotong.
Tidak. Demi keamanan, Telegram hanya menerima nomor lewat tombol resmi Share phone number. Username Telegram juga tidak dipakai sebagai identity utama karena opsional dan bisa berubah.
Ya. Frictionless Telegram tetap meminta Share phone number, lalu nomor hasil contact dikirim ke webhook Anda sebagai phone_number terverifikasi. Staging Telegram memakai Simulator (Simulate Telegram Contact Share): tidak ada pesan Telegram asli, tidak ada debit saldo, namun webhook client tetap dikirim seperti production.
Hasil dikirim sebagai webhook event verification.success ke Webhook URL milik App Anda, ditandatangani dengan header X-Signature (HMAC SHA256). Payload menyertakan channel, mode, phone_number, dan identitas channel-specific (mis. telegram_user_id untuk Telegram).
Buat App mode staging, API key staging, dan Webhook URL dengan handler yang sama seperti production. Real provider dapat memproses maksimal 5 chat user unik per App dalam rolling 60 menit; chat baru setelah limit tidak mendapat respons. Untuk testing lanjutan, buka Dashboard → Simulator dan jalankan Simulate Inbound (WhatsApp) atau Simulate Telegram Contact Share (Telegram) tanpa batas. Simulator tidak mengirim pesan asli atau mendebit saldo, tetapi tetap mengirim webhook verification.success asli dengan X-Signature dan Idempotency-Key.
Pembayaran diproses melalui payment gateway aktif (Midtrans atau Pakasir QRIS), termasuk QRIS, e-wallet, dan virtual account sesuai metode yang tersedia di pop-up pembayaran.
Harga standar adalah 100 credit per verifikasi sukses (1 credit = 1 rupiah) lintas channel WhatsApp dan Telegram. Untuk kebutuhan volume besar atau kontrak khusus, diskon kustom dan harga enterprise dapat dikonfigurasi per akun oleh tim sales. Hubungi kami untuk penawaran khusus.
Baca petunjuk sesuai halaman yang sedang Anda gunakan.
Buat dan kelola App. Setiap App mewakili satu aplikasi yang Anda integrasikan dengan LessOTP.com.
Mengapa perlu banyak App?
Memisahkan App per aplikasi/lingkungan memudahkan rotasi API key, webhook terpisah, dan pelacakan verifikasi per aplikasi.
Apakah menghapus App menghapus saldo?
Tidak. Saldo berada di level Account. Menghapus App hanya menghapus API key dan konfigurasi webhook App tersebut.
Buat, lihat sekali, rotasi, dan cabut API key per App untuk mengakses API lessotp.com.
Saya kehilangan API key, bisakah ditampilkan lagi?
Tidak. Key disimpan dalam bentuk hash dan tidak dapat ditampilkan ulang. Buat key baru lalu cabut key lama.
Apa yang terjadi jika key dicabut?
Request yang memakai key tersebut akan ditolak dengan error api_key_revoked. Aplikasi yang masih memakainya harus diperbarui.
Atur Webhook URL dan signing secret per App agar hasil verifikasi terkirim secara real-time.
Bagaimana menghindari pemrosesan ganda?
Setiap delivery membawa header Idempotency-Key. Simpan key tersebut dan abaikan delivery yang sudah pernah diproses.
Apa yang terjadi jika server saya down?
Sistem akan melakukan retry dengan backoff sesuai konfigurasi App. Pastikan endpoint stabil agar webhook tidak gagal permanen.
Pantau verification request: request id, mode, status, nomor, timestamp, dan status delivery webhook.
Mengapa verifikasi tidak masuk?
Pastikan customer mengirim pesan persis /start {unique_code} ke nomor WhatsApp platform atau /start {unique_code} ke bot Telegram sebelum kode kedaluwarsa, dan pada mode strict nomor pengirim cocok dengan phone_number request.
Mengapa status mismatch?
Pada mode strict, nomor pengirim pesan WhatsApp berbeda dengan phone_number yang Anda kirim saat request. Saldo tidak dipotong untuk kasus ini.
Tambahkan credit ke Account melalui Midtrans untuk menjalankan verifikasi.
Berapa nilai konversi credit?
Nilai credit sepenuhnya disamakan dengan Rupiah Indonesia: 1 credit = 1 IDR.
Mengapa credit belum masuk?
Beberapa metode pembayaran membutuhkan waktu konfirmasi. Pastikan pembayaran selesai, lalu cek Riwayat Top-up.
Lihat status pembayaran dan pastikan credit sudah ditambahkan ke Account.
Berapa nilai credit pada riwayat top-up?
Jumlah transaksi ditampilkan dalam credit dengan nilai tetap 1 credit = 1 IDR.
Apa arti pending?
Pending berarti pembayaran belum dikonfirmasi sukses oleh Midtrans. Selesaikan instruksi pembayaran atau tunggu konfirmasi bank/e-wallet.
Kelola password dan tindakan sensitif akun dengan aman.
Mengapa harus mengetik DELETE?
Konfirmasi manual membantu mencegah penghapusan akun secara tidak sengaja.