OTP Verification

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.

98% Delivery Rate
<3s Average Delivery Time
+20 Countries Supported
$10/mo Unlimited Messages

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

1

Create a نبضة أوتي بي Account

Sign up at dash.nabdaotp.com. Free to start, no credit card required.

2

Create an Instance & Scan QR

Each instance gives you a dedicated WhatsApp number. Scan the QR code once to connect your WhatsApp — done.

3

Get Your Instance Token

Call the select-instance endpoint to receive a Bearer token scoped to your instance. Store it securely on your backend.

4

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.

send-otp.js
// 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

📱 User registration & signup verification
🔐 Two-factor authentication (2FA)
🔑 Password reset & account recovery
💳 Payment & transaction authorization

Start verifying users via WhatsApp today

Create your first نبضة أوتي بي instance in minutes. No contracts, no per-message fees, no Meta approval needed.