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 | أُرسل رمز لهذا المستلم بالفعل خلال مدة الانتظار. |