API مرسلات v2 · 2026-10
ابني على واتساب من رقمك انت
API واحد للأرقام وكل أنواع الرسايل والحملات الآمنة والردود التلقائية والـ OTP والويب هوك الموقّع — وحماية الرقم على كل رسالة، ومن غير ما نخزن محتوى الرسايل.
- مفاتيح بصلاحيات
- منع تكرار الكتابة
- أخطاء بالعربي والإنجليزي
- صفر احتفاظ بالرسايل
- الرابط الأساسي
https://mursilat.com/api/v2- إصدار الـ API
2026-10
curl -X POST "https://mursilat.com/api/v2/messages" \
-H "Authorization: Bearer $WASLA_API_KEY" \
-H "Idempotency-Key: order-1042-confirm" \
-H "Content-Type: application/json" \
-d '{
"numberId": "cm1abcd2345efgh6789ijkl",
"to": "201001234567",
"type": "text",
"text": "طلبك اتشحن 🚚 *شكرًا*",
"reference": "order-1042"
}'const res = await fetch('https://mursilat.com/api/v2/messages', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.WASLA_API_KEY}`,
'Idempotency-Key': 'order-1042-confirm',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"numberId": "cm1abcd2345efgh6789ijkl",
"to": "201001234567",
"type": "text",
"text": "طلبك اتشحن 🚚 *شكرًا*",
"reference": "order-1042"
}),
});
const data = await res.json();
if (!res.ok) throw new Error(`${data.error.code}: ${data.error.message}`);
console.log(data);import os
import requests
headers = {"Authorization": f"Bearer {os.environ['WASLA_API_KEY']}", "Idempotency-Key": "order-1042-confirm"}
res = requests.post(
"https://mursilat.com/api/v2/messages",
headers=headers,
json={
"numberId": "cm1abcd2345efgh6789ijkl",
"to": "201001234567",
"type": "text",
"text": "طلبك اتشحن 🚚 *شكرًا*",
"reference": "order-1042"
},
timeout=30,
)
data = res.json()
if not res.ok:
raise RuntimeError(f"{data['error']['code']}: {data['error']['message']}")
print(data)<?php
$ch = curl_init('https://mursilat.com/api/v2/messages');
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('WASLA_API_KEY'),
'Idempotency-Key: order-1042-confirm',
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'numberId' => 'cm1abcd2345efgh6789ijkl',
'to' => '201001234567',
'type' => 'text',
'text' => 'طلبك اتشحن 🚚 *شكرًا*',
'reference' => 'order-1042'
], JSON_UNESCAPED_UNICODE),
]);
$data = json_decode(curl_exec($ch), true);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($status >= 400) { throw new Exception($data['error']['code'] . ': ' . $data['error']['message']); }
print_r($data);ابدأ من هنا
من الصفر لرسالة وصلت وويب هوك متحقق منه.
مرجع الـ API
كل endpoint ببارامتراته وأمثلة بأربع لغات وكونسول تجربة مباشر. · 80 endpoint
- الحساب والمفاتيح1اعمل مفاتيح الحساب من الإعدادات ← مفاتيح API: اختار الصلاحيات والأرقام وعناوين الـ IP المسموحة (اختياري). المفتاح بيظهر مرة واحدة بس.
- الأرقام16ضيف أرقام واربطها بـ QR أو بكود ربط، تابع اتصالها واضبط الويب هوك بتاعها. نصيحة: رقم واتساب بيزنس ببروفايل حقيقي (اسم وصورة ووصف) بيبقى موثوق أكتر عند العملاء وعند واتساب.
- الرسايل9endpoint واحد لكل أنواع الرسايل، دلوقتي أو مجدولة. كل رسالة بتعدي على حماية الرقم (حدود التسخين والفواصل والإلغاء وقواعد المحتوى) ورصيد باقتك. الحالة بس: الـ API عمره ما بيرجّع محتوى الرسايل.
- الحملات (إرسال جماعي)9ابعت رسالة واحدة لناس كتير بأمان: حماية الرقم بتنظم السرعة وتحترم ساعات الهدوء وتتخطى الأرقام اللي لغت أو غلط وتوقف لو فيه مؤشرات وحشة. المحتوى والمستلمين بيتمسحوا لوحدهم بعد ما الحملة تخلص (لحد 24 ساعة)؛ الإجماليات بس اللي بتفضل.
- الردود التلقائية11قواعد بالكلمات (تطابق تام، تحتوي، تبدأ بـ، أو تعبير نمطي) وترحيب (أول رسالة) وغياب (برا مواعيد العمل) لكل رقم. كلمات الإلغاء ليها الأولوية دايمًا؛ الردود بتطلع كردود (بفاصل قصير).
- أكواد التحقق (OTP)3مرسلات بتولّد الكود وتبعته من رقمك وبتحتفظ بالـ hash بس — الكود عمره ما بيرجع ولا بيتخزن ولا بيتكتب في اللوج. التحقق بمقارنة آمنة وعدد محاولات محدود. ابعت الكود للي طلبه بس؛ النص ثابت ومترجم وبيتضاف له اسم تطبيقك بس.
- حماية الرقم والإحصائيات8اعرف صحة الرقم، وقّفه، خليه أبطأ من حماية الرقم (عمرها ما تبقى أسرع)، واقرا الإحصائيات اليومية. مفيش أداة تضمن إن الرقم ميتقيدش؛ دي بتقلل الخطر.
- الجروبات2اقرا جروبات الرقم. الإرسال للجروبات مقفول عن قصد من حماية الرقم: البلاغات من الجروبات هي أسرع سبب لحظر الأرقام. ده قرار أمان مش ميزة ناقصة.
- الويب هوك9أحداث لحظية موقعة بـ HMAC-SHA256 (X-Wasla-Signature: t=…,v1=…) وبتتعاد لمدة حوالي ساعة. رابط واحد للحساب كله و/أو رابط لكل رقم. سجل التسليم بيحتفظ بالبيانات الوصفية بس (7 أيام).
- زرار الموقع وروابط واتساب12زرار شات لموقعك (سطر واحد) وروابط wa.me متتبَّعة وأكواد QR للإعلانات والبايو والمطبوعات. كل ضغطة بتاخد كود قصير جوه الرسالة الجاهزة؛ ولما الزائر يكتب، مرسلات بتربط المحادثة بالصفحة أو الإعلان أو الحملة (ويب هوك conversation.attributed). المحادثات اللي العميل بيبدأها هي الأأمن لرقمك. مش بنخزن IP الزائر ولا كوكيز ولا الرابط كامل.
الويب هوك
الويب هوكأحداث لحظية موقّعة: قائمة الأحداث بأمثلة كاملة، والتحقق من التوقيع، والمحاولات، وإعادة الإرسال، والترتيب ومنع التكرار.فاحص الويب هوكالصق body الويب هوك وهيدر X-Wasla-Signature والسر بتاعك: التوقيع والغلاف بيتفحصوا جوه متصفحك.أدلة عملية
طرق عملية وآمنة تستخدم بيها الـ API في الشغل الحقيقي.
- أول حملة بأمانابعت رسالة لناس كتير من غير ما تأذي رقمك: جرّب، نوّع النص، اختار السرعة، وتابع بالويب هوك.
- الأزرار التفاعلية والبديل بالأرقامأزرار الرد وقوائم الاختيار وأزرار الروابط من رقم مربوط — وليه كل عميل يقدر يرد حتى لو الأزرار ما ظهرتش.
- أكواد OTP صحابعت أكواد تحقق من رقمك: مرسلات بتعمل الكود وتعمله hash، وبتستخدم نص ثابت آمن، وبتحدد المحاولات والمستلمين.
- حماية رقمك (Number Shield)حماية الرقم بتتحكم في كل رسالة إزاي — حدود التسخين والفواصل وساعات الهدوء وإلغاء الاشتراك وقواعد المحتوى — والـ API بيرد بإيه لما يأجّل أو يبطّأ أو يرفض.
- الخصوصية: مرسلات بتخزن إيه وما بتخزنش إيهرسايل صندوق الوارد متخزنة مشفّرة لكل حساب للمدة اللي العميل يختارها؛ الـ API بيحتفظ بإيه (بيانات وصفية، ولمدة قد إيه) وإيه اللي عمره ما بيرجع.
- الانتقال من v1 لـ v2انقل من مفاتيح وendpoints v1 لكل رقم لمفاتيح الحساب في v2 وواجهة REST واحدة وويب هوك v2 الموقّع — خطوة خطوة.
- استخدام رقم بيزنس مخصوصليه شغل الـ API بتاعك يكون من رقم واتساب بيزنس مخصوص، وتجهزه إزاي عشان العملاء يثقوا فيه.
التحميلات
استورد الـ API في أدواتك.
- OpenAPI 3.1 (v2)لمولّدات الكود و Swagger UI و Insomnia.
/developers/openapi-v2.json - مجموعة Postman (v2)حط متغير apiKey وابعت.
/developers/postman-v2.json - OpenAPI (v1، القديم)
/developers/openapi.json - Postman (v1، القديم)
/developers/postman.json