Nabda OTPNabda OTP

Language

تسجيل الدخول
دليل 25 مارس 2026 8 دقائق قراءة

دليل كامل 2026: كيفية إرسال كود التحقق (OTP) عبر واتساب API

دليل عملي جاهز للإنتاج للمطورين باستخدام Nabda OTP – أسرع حل لإرسال كود التحقق عبر واتساب في العراق (+964) وسوريا (+963) وباقي الدول.

لماذا يُعد Nabda OTP الخيار الأفضل للعراق وسوريا

يمنحك Nabda OTP وصولاً مباشراً إلى واتساب دون الحاجة إلى قوالب Business API الرسمية أو تأخيرات موافقة ميتا. فقط أنشئ مثيل وابدأ في إرسال أكواد التحقق فوراً.

ما تحتاجه للبدء

  • حساب Nabda OTP
  • مثيل واحد أو أكثر نشط (كل مثيل = رقم واتساب مخصص)
  • توكن خاص بالمثيل (Bearer token)
  • منطق توليد OTP على جانب السيرفر

خطوة بخطوة: إرسال OTP باستخدام API Nabda OTP

1

إنشاء واختيار المثيل

بعد إنشاء المثيل من لوحة التحكم، يجب عليك اختياره للحصول على توكن المثيل:

api/v1/auth/select-instance
const res = await fetch("https://api.nabdaotp.com/api/v1/auth/select-instance", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ instanceId: "your-instance-id" })
});

const { accessToken } = await res.json();
// Store securely on your backend — never expose to the client
2

توليد OTP على الباك إند

backend (Node.js)
function generateOTP(length = 6) {
  return Math.floor(
    Math.pow(10, length - 1) +
    Math.random() * (Math.pow(10, length) - Math.pow(10, length - 1))
  ).toString();
}

// Store hash (never store plain OTP)
const crypto = require('crypto');
const otp = generateOTP();
const hash = crypto.createHash('sha256').update(otp + secret).digest('hex');
3

إرسال OTP عبر واتساب (الإند بوينت الصحيح)

api/v1/messages/send
const payload = {
  phone: "+9647701234567",    // Iraq  (+964)
  // phone: "+9639XXXXXXXX", // Syria (+963)
  message: `Your Nabda verification code is ${otp}. Valid for 5 minutes. Do not share it.`
};

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(payload)
});

const result = await response.json();
if (result.success) {
  console.log("✓ OTP sent via WhatsApp");
}
4

التحقق من OTP على السيرفر

يجب دائماً التحقق من كود التحقق على الباك إند (لا تعتمد أبداً على العميل).

verify OTP
// On form submission — verify on the BACKEND, never the client
function verifyOTP(userInput, storedHash, secret) {
  const inputHash = crypto
    .createHash('sha256')
    .update(userInput + secret)
    .digest('hex');
  return inputHash === storedHash;
}

اختياري: إعداد Webhook لمعرفة حالة التوصيل

api/v1/instances/webhook
await fetch("https://api.nabdaotp.com/api/v1/instances/webhook", {
  method: "PATCH",
  headers: {
    "Content-Type": "application/json",
    "Authorization": `Bearer ${instanceToken}`
  },
  body: JSON.stringify({
    webhookUrl: "https://yourdomain.com/webhook/nabda",
    webhookEnabled: true
  })
});

// Your webhook handler receives events like:
// { event: "message.sent", phone: "+964...", status: "delivered" }

أفضل الممارسات في العراق وسوريا

  • استخدم صيغة E.164: +96477xxxxxxxx أو +9639xxxxxxxx
  • اجعل صلاحية OTP بين 3-8 دقائق
  • أرسل رسائل ثنائية اللغة عند الإمكان (العربية + الإنجليزية)
  • أدرج اسم علامتك التجارية دائماً في الرسالة
  • راقب أحداث الـ webhook لمعرفة sent و delivered والفشل

استكشاف الأخطاء وإصلاحها

401 Unauthorized → تأكد من اختيار المثيل واستخدام توكن المثيل

رقم الهاتف غير صالح → يجب أن يبدأ بـ +964 أو +963 أو أي رمز دولة مدعوم آخر.

لم يتم استلام الرسالة → تأكد من أن المثيل متصل (تم مسح رمز QR)

هل أنت جاهز للبدء؟

أنشئ أول مثيل لك في ثوانٍ وابدأ في إرسال أكواد التحقق عبر واتساب اليوم.

مرحباً، كيف يمكننا مساعدتك؟