OTP & User Verification
via WhatsApp
Send instant one-time passwords to Iraq, Syria, and all MENA countries. No templates. No Meta approval. Just create an instance and start verifying users in minutes.
SMS OTP is broken in Iraq & Syria.
WhatsApp just works.
SMS delivery rates in Iraq and Syria are notoriously unreliable — messages get delayed, blocked by carriers, or simply never arrive. WhatsApp penetration in the region exceeds 90%, making it the most reliable channel for OTP delivery. With نبضة أوتي بي, your verification codes land in seconds, not minutes.
Instant Delivery
OTPs delivered via WhatsApp in under 3 seconds on average, even on slow mobile connections.
No Templates Needed
Send any plain text message. No approval process, no waiting, no Meta business verification required.
Iraq & Syria First
Purpose-built for +964 and +963 numbers. Full support for E.164 format across all MENA countries.
Secure by Design
Instance-scoped Bearer tokens. Generate OTPs server-side. Each instance has a dedicated number.
Delivery Webhooks
Real-time callbacks for sent, delivered, and failed events. Know exactly when your OTP arrives.
Flat Pricing
One flat monthly fee per instance. No per-message costs. Send unlimited OTPs without surprises.
Go live in 4 simple steps
Create a نبضة أوتي بي Account
Sign up at dash.nabdaotp.com. Free to start, no credit card required.
Create an Instance & Scan QR
Each instance gives you a dedicated WhatsApp number. Scan the QR code once to connect your WhatsApp — done.
Get Your Instance Token
Call the select-instance endpoint to receive a Bearer token scoped to your instance. Store it securely on your backend.
Send OTP with a Single API Call
POST to /api/v1/messages/send with the phone
number and your message. That's it.
Send your first OTP in under 10 lines
Everything runs server-side. Generate the OTP, send it via نبضة, store the hash — verify on submission.
// 1. Generate OTP on your server (never the client) function generateOTP() { return Math.floor(100000 + Math.random() * 900000).toString(); } // 2. Send via Nabda OTP API const otp = generateOTP(); const response = await fetch("https://api.nabdaotp.com/api/v1/messages/send", { method: "POST", headers: { "Content-Type": "application/json", "Authorization": `Bearer ${instanceToken}` }, body: JSON.stringify({ phone: "+9647701234567", // Iraq (+964) or Syria (+963) message: `Your verification code is ${otp}. Valid for 5 minutes. – YourApp` }) }); // 3. Store hashed OTP in your DB and verify on submission if (response.ok) { await storeOTP(userId, otp, Date.now() + 5 * 60000); }
Built for every verification scenario
Start verifying users via WhatsApp today
Create your first نبضة أوتي بي instance in minutes. No contracts, no per-message fees, no Meta approval needed.