• إرسال رمز تحقق عبر واتساب

إرسال رمز تحقق عبر واتساب

POST https://app.alaaqat.com/api/broadcasts/{id}/send-otp

حيث id هو معرّف قالب المصادقة المعتمد الذي تريد إرساله. القوالب من أي فئة أخرى تُرفض هنا، واستخدم إرسال قالب لها. وبالمقابل، لا يمكن إرسال قالب مصادقة إلا عبر هذه الواجهة، فالمسار /send وشاشات الإرسال في التطبيق ترفضه.

يجب أن يحمل المفتاح صلاحية broadcast-send-otp، وهذه الواجهة غير متاحة من جلسة المستخدم (الطرف الأول).

الوضعان

إرسالك للحقل code من عدمه هو ما يحدد من يملك رمز التحقق.

وضع التمرير (مع code) الوضع المُدار (بدون code)
من يولّد الرمز أنت نحن — ٦ أرقام
ما الذي نخزّنه لا شيء الرمز مُجزّأً (hash) مع مدة صلاحيته وعدّاد المحاولات
الاستجابة { data: Message } { data: Message, verification_id, expires_at }
التحقق مسؤوليتك التحقق من رمز واتساب

الرمز الصريح لا يُعاد في أي من الوضعين. في وضع التمرير أنت تملكه أصلاً، وفي الوضع المُدار لا يوجد إلا داخل رسالة واتساب المُرسَلة وكقيمة مُجزّأة في قاعدة بياناتنا. لا توجد أي طريقة لقراءة رمز مُدار، فإن أردت التحقق منه فاستخدم واجهة التحقق.

وضع التمرير لا يمكننا التحقق منه: لا يصدر له verification_id إطلاقاً، لذلك استدعاء /verifications/{id}/verify بعد إرسال بوضع التمرير لن يجد ما يتحقق منه.

الترويسة

{
    "Accept": "application/json"
}

محتوى الطلب

{
    contact_id?: string,
    to?: string,
    code?: string,
}
الحقل الإلزامية التحقق الوصف
contact_id مطلوب إذا لم يُرسل to نص، ويجب أن يعود لحسابك جهة الاتصال التي ستستلم الرمز. لا يُجمع مع to.
to مطلوب إذا لم يُرسل contact_id من ٦ إلى ٢٠ رقماً، مع + اختيارية في البداية رقم واتساب مباشر. نبحث عن جهة الاتصال برقم الواتساب، ونُنشئها إن لم تكن موجودة.
code اختياري من ٤ إلى ١٥ خانة، حروف وأرقام فقط رمزك أنت. أرسله لنمرّره كما هو، أو اتركه لنولّد الرمز ونرسله ونخزّنه.

الحقلان contact_id و to متنافيان، وإرسالهما معاً خطأ تحقق لا أن يفوز أحدهما بصمت.

سلوك يجدر الانتباه له

  • الرسالة في صندوق الوارد مُقنّعة عمداً. نص الرسالة المخزّن يظهر بالشكل •••••• is your verification code. فلا يمكن قراءة الرمز من صندوق الوارد، لا من قِبلك ولا من قِبل الدعم لدينا. هذا مقصود.
  • إعادة الإرسال تُلغي الرمز السابق. في الوضع المُدار يُعلَّم أي تحقق قائم لنفس القالب ونفس المستلم بأنه failed، فلا يبقى أكثر من رمز واحد فعّال لكل مستلم لكل قالب.
  • الإرسال محدود المعدل لكل مستلم. أي إرسال ثانٍ لنفس المستلم على نفس القالب خلال ٦٠ ثانية يُرفض بالرمز 429.
  • الحقل to يكتب بيانات. الرقم الذي لا تقابله جهة اتصال يُنشئ واحدة في حسابك مصدرها whatsapp / api، لذلك أي خطأ طباعي ينشئ جهة اتصال غير صحيحة ثم يفشل الإرسال عند واتساب.

الاستجابة

تُعيد كائن Message داخل data، وفي الوضع المُدار يظهر verification_id و expires_at بجانبه في المستوى الأعلى.

{
    "data": {
        "id": "wamidf91071ec-29ef-353c-9f34-dc2c47452e6f",
        "contact_channel_id": "962790000000",
        "platform_type": "Modules\Conversations\Inbox\Models\WabaNumber",
        "platform_third_party_id": "651663395",
        "sender_third_party_id": "651663395",
        "receiver_third_party_id": "962790000000",
        "status": "sent",
        "broadcast_id": 53,
        "attachments": [],
        "updated_at": "2026-08-15T18:35:46.668000Z",
        "created_at": "2026-08-15T18:35:46.668000Z",
        "_id": "66faef8227545300c4059c84",
        "is_sent_by_the_business": true
    },
    "verification_id": "66faef8227545300c4059c85",
    "expires_at": "2026-08-15T18:40:46+00:00"
}

القيمة expires_at تتبع الحقل code_expiration_minutes الخاص بالقالب نفسه، لأن العميل يُقال له حرفياً "ينتهي هذا الرمز خلال N دقائق"، فأي مدة أخرى تناقض الرسالة المُرسَلة. والقوالب بلا تذييل مدة الصلاحية ترجع إلى ٥ دقائق.

الأخطاء

الحالة المعنى
402 تجاوز الحساب حدّ الرسائل الشهري.
403 القالب ليس قالب مصادقة معتمداً، أو المفتاح لا يحمل broadcast-send-otp، أو الطلب ليس من مفتاح واجهة برمجية.
404 القالب غير موجود في حسابك.
422 خطأ تحقق: لا مستلم، أو مستلمان معاً، أو contact_id ليس من جهات اتصال حسابك، أو to بصيغة خاطئة، أو رمز يحتوي على رموز ترقيم.
429 أُرسل رمز لهذا المستلم بالفعل خلال مدة الانتظار.