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.
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, buat API key staging, pasang Webhook URL yang memakai handler sama dengan production, lalu panggil POST /api/v1/staging/auth/request. Setelah request pending muncul, buka Dashboard → Simulator dan klik Simulate Inbound (WhatsApp) atau Simulate Telegram Contact Share (Telegram). Sistem tidak mengirim pesan asli dan tidak mendebit saldo, tetapi tetap mengirim webhook verification.success asli dengan X-Signature dan Idempotency-Key untuk menguji signature, idempotency, mapping request_id, dan flow login/onboarding.
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 saat ini adalah 180 credit per verifikasi sukses, dengan nilai 1 credit = 1 rupiah. Harga berlaku sama untuk WhatsApp dan Telegram pada MVP, hanya dipotong untuk App production saat verifikasi sukses, dan mengikuti pengaturan harga terbaru dari admin. App staging gratis: tidak mengirim pesan asli dan tidak mendebit saldo.
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.