Rasel / Docs
AR
POST/api/v2/messages/send

إرسال رسالة موحّدة

مسار الإرسال الوحيد لكل القنوات: SMS المحلي والدولي، واتساب الرسمي، واتساب ويب (بما فيه المجموعات الأصلية والصور)، بوت تلغرام، والبريد. `to` نص لمستلم واحد أو مصفوفة حتى 100 مستلم (دفعة رسمية). هيدر قوالب واتساب الرسمي يقبل الملف أو الرابط في نفس الطلب. HTTP 200 عند نجاح كل العناصر، و207 عند فشل جزئي في الدفعة. استخدم Idempotency-Key لإعادة المحاولة الآمنة.

متى تستخدمه. أي إرسال تشغيلي من نظامك. لدورات OTP ذات إرسال/إعادة إرسال/تحقق استخدم /api/v2/verification/*.

مثال الطلب

مثال صحيح: SMS محلي صحيح

curl --location 'https://raselsms.com/api/v2/messages/send' \--header 'X-API-Key: YOUR_API_KEY' \--header 'Content-Type: application/json' \--data '{"to":"+963912345678","channel":"local_sms","messageType":"free_text","content":{"text":"Hello, this is a test message from Rasel."}}'

مثال صحيح: OTP مع اختيار قناة تلقائي

curl --location 'https://raselsms.com/api/v2/messages/send' \--header 'X-API-Key: YOUR_API_KEY' \--header 'Content-Type: application/json' \--header 'Idempotency-Key: otp-login-user-42-attempt-1' \--data '{"to":"+963912345678","channel":"auto","messageType":"otp","content":{"otpCode":"482193"}}'

مثال صحيح: قالب واتساب رسمي مع متغيرات وزر رابط

curl --location 'https://raselsms.com/api/v2/messages/send' \--header 'X-API-Key: YOUR_API_KEY' \--header 'Content-Type: application/json' \--data '{"to":"+963911111111","messageType":"utility","channel":"official_whatsapp","template":{"key":"order_ready_notice","variablesIndexed":["أحمد","A-1042","25000"],"buttonVariables":[{"index":0,"subType":"url","text":"A-1042"}],"headerMediaUrl":"https://cdn.example.com/order-ready.jpg","headerMediaType":"image"}}'

مثال صحيح: قالب واتساب رسمي مع ملف هيدر في نفس الطلب

curl --location 'https://raselsms.com/api/v2/messages/send' \--header 'X-API-Key: YOUR_API_KEY' \--header 'Content-Type: multipart/form-data' \--data '{"to":"+963912345678","channel":"official_whatsapp","messageType":"marketing","template":"{\"key\":\"bookingconfirmation6\",\"language\":\"ar\",\"variablesIndexed\":[\"أحمد\"]}","mediaType":"document","headerMedia":"<multipart binary PDF>","note":"Content-Type: multipart/form-data"}'

مثال صحيح: صورة واتساب ويب

curl --location 'https://raselsms.com/api/v2/messages/send' \--header 'X-API-Key: YOUR_API_KEY' \--header 'Content-Type: application/json' \--data '{"to":"+963912345678","channel":"user_whatsapp_session","messageType":"free_text","content":{"text":"Product photo"},"attachment":{"type":"image","publicUrl":"https://cdn.example.com/catalog/sku-100.png","mimetype":"image/png","fileName":"sku-100.png"}}'

مثال صحيح: مجموعة واتساب ويب أصلية

curl --location 'https://raselsms.com/api/v2/messages/send' \--header 'X-API-Key: YOUR_API_KEY' \--header 'Content-Type: application/json' \--data '{"to":"120363012345678901@g.us","channel":"user_whatsapp_session","messageType":"free_text","content":{"text":"Hello group"},"conversationContext":{"moduleType":"whatsapp_web","accountId":"session-user-whatsapp-1","chatId":"120363012345678901@g.us"}}'

مثال صحيح: مشترك بوت تلغرام

curl --location 'https://raselsms.com/api/v2/messages/send' \--header 'X-API-Key: YOUR_API_KEY' \--header 'Content-Type: application/json' \--data '{"to":"123456789","channel":"telegram_bot","messageType":"free_text","content":{"text":"Hello from the bot"},"conversationContext":{"moduleType":"telegram_bot","accountId":"6800abc123def4567890fedc","chatId":"123456789"}}'

مثال صحيح: دفعة رسمية لمستلمين

curl --location 'https://raselsms.com/api/v2/messages/send' \--header 'X-API-Key: YOUR_API_KEY' \--header 'Content-Type: application/json' \--data '{"to":["+963912345678","+963987654321"],"channel":"local_sms","messageType":"free_text","content":{"text":"Batch notice from Rasel."}}'

مثال خاطئ: خطأ: بدون حقل to

curl --location 'https://raselsms.com/api/v2/messages/send' \--header 'X-API-Key: YOUR_API_KEY' \--header 'Content-Type: application/json' \--data '{"channel":"local_sms","content":{"text":"hi"}}'

to إلزامي سواء كان نصاً أو مصفوفة.

مثال خاطئ: خطأ: بدون مفتاح API

curl --location 'https://raselsms.com/api/v2/messages/send' \--header 'Content-Type: application/json' \--data '{"to":"+963912345678","channel":"local_sms","messageType":"free_text","content":{"text":"Hello, this is a test message from Rasel."}}'

المسار يرفض الطلب فوراً بدون X-API-Key.

مثال خاطئ: خطأ: تلغرام بلا conversationContext

curl --location 'https://raselsms.com/api/v2/messages/send' \--header 'X-API-Key: YOUR_API_KEY' \--header 'Content-Type: application/json' \--data '{"to":"123456789","channel":"telegram_bot","messageType":"free_text","content":{"text":"hi"}}'

telegram_bot يتطلب moduleType وaccountId وchatId لمشترك ضغط /start.

مثال خاطئ: خطأ: رقم غير مسجّل في واتساب

curl --location 'https://raselsms.com/api/v2/messages/send' \--header 'X-API-Key: YOUR_API_KEY' \--header 'Content-Type: application/json' \--data '{"to":"+963900000000","channel":"official_whatsapp","messageType":"utility","template":{"key":"order_ready_notice","variablesIndexed":["أحمد"]}}'

التحقق قبل الإرسال يمنع الفوترة على رقم غير مسجّل.

صورة واتساب ويب

curl --location 'https://raselsms.com/api/v2/messages/send' \--header 'X-API-Key: YOUR_API_KEY' \--header 'Content-Type: application/json' \--data '{"to":"+963912345678","channel":"user_whatsapp_session","messageType":"free_text","content":{"text":"Product photo"},"attachment":{"type":"image","publicUrl":"https://cdn.example.com/catalog/sku-100.png","mimetype":"image/png","fileName":"sku-100.png"}}'

مجموعة واتساب ويب الأصلية

curl --location 'https://raselsms.com/api/v2/messages/send' \--header 'X-API-Key: YOUR_API_KEY' \--header 'Content-Type: application/json' \--data '{"to":"120363012345678901@g.us","channel":"user_whatsapp_session","messageType":"free_text","content":{"text":"Hello group"},"conversationContext":{"moduleType":"whatsapp_web","accountId":"session-user-whatsapp-1","chatId":"120363012345678901@g.us"}}'

مجموعة واتساب ويب مع صورة

curl --location 'https://raselsms.com/api/v2/messages/send' \--header 'X-API-Key: YOUR_API_KEY' \--header 'Content-Type: application/json' \--data '{"to":"120363012345678901@g.us","channel":"user_whatsapp_session","messageType":"free_text","content":{"text":"Catalog image"},"attachment":{"type":"image","publicUrl":"https://cdn.example.com/catalog/sku-100.png","mimetype":"image/png","fileName":"sku-100.png"},"conversationContext":{"moduleType":"whatsapp_web","accountId":"session-user-whatsapp-1","chatId":"120363012345678901@g.us"}}'

مشترك بوت تلغرام

curl --location 'https://raselsms.com/api/v2/messages/send' \--header 'X-API-Key: YOUR_API_KEY' \--header 'Content-Type: application/json' \--data '{"to":"123456789","channel":"telegram_bot","messageType":"free_text","content":{"text":"Hello from the bot"},"conversationContext":{"moduleType":"telegram_bot","accountId":"6800abc123def4567890fedc","chatId":"123456789"}}'

مشترك بوت تلغرام مع صورة

curl --location 'https://raselsms.com/api/v2/messages/send' \--header 'X-API-Key: YOUR_API_KEY' \--header 'Content-Type: application/json' \--data '{"to":"123456789","channel":"telegram_bot","messageType":"free_text","content":{"text":"Offer image"},"attachment":{"type":"image","publicUrl":"https://cdn.example.com/offers/banner.jpg","mimetype":"image/jpeg","fileName":"banner.jpg"},"conversationContext":{"moduleType":"telegram_bot","accountId":"6800abc123def4567890fedc","chatId":"123456789"}}'

قالب واتساب تشغيلي مع هيدر ومتغيرات وزر رابط

curl --location 'https://raselsms.com/api/v2/messages/send' \--header 'X-API-Key: YOUR_API_KEY' \--header 'Content-Type: application/json' \--data '{"to":"+963911111111","messageType":"utility","channel":"official_whatsapp","template":{"key":"order_ready_notice","variablesIndexed":["أحمد","A-1042","25000"],"buttonVariables":[{"index":0,"subType":"url","text":"A-1042"}],"headerMediaUrl":"https://cdn.example.com/order-ready.jpg","headerMediaType":"image"}}'

Matches POST /api/v2/templates order_ready_notice. variablesIndexed fills body {{1}} {{2}} {{3}}. buttonVariables[0].text is the URL-button suffix only.

إرسال SMS محلي سريع

curl --location 'https://raselsms.com/api/v2/messages/send' \--header 'X-API-Key: YOUR_API_KEY' \--header 'Content-Type: application/json' \--data '{"to":"+963912345678","channel":"local_sms","messageType":"free_text","content":{"text":"Hello, this is a test message from Rasel."}}'

قالب واتساب رسمي مع رابط الهيدر

curl --location 'https://raselsms.com/api/v2/messages/send' \--header 'X-API-Key: YOUR_API_KEY' \--header 'Content-Type: application/json' \--data '{"to":"+963912345678","channel":"official_whatsapp","messageType":"marketing","template":{"key":"bookingconfirmation6","language":"ar","variablesIndexed":["أحمد"],"headerMediaUrl":"https://cdn.example.com/booking.pdf","headerMediaType":"document"}}'

رمز OTP مع اختيار القناة تلقائياً

curl --location 'https://raselsms.com/api/v2/messages/send' \--header 'X-API-Key: YOUR_API_KEY' \--header 'Content-Type: application/json' \--data '{"to":"+963912345678","messageType":"otp","channel":"auto","content":{"otpCode":"123456"},"sender":{"id":"6800abc123def4567890fedc"}}'

رمز OTP من قالب

curl --location 'https://raselsms.com/api/v2/messages/send' \--header 'X-API-Key: YOUR_API_KEY' \--header 'Content-Type: application/json' \--data '{"to":"+963912345678","messageType":"otp","template":{"key":"verification_code","variablesIndexed":["123456"]}}'

إرسال نص مختصر

curl --location 'https://raselsms.com/api/v2/messages/send' \--header 'X-API-Key: YOUR_API_KEY' \--header 'Content-Type: application/json' \--data '{"to":"+963912345678","text":"Hello"}'

رسالة SMS محلية نص حر

curl --location 'https://raselsms.com/api/v2/messages/send' \--header 'X-API-Key: YOUR_API_KEY' \--header 'Content-Type: application/json' \--data '{"to":"+963912345678","messageType":"free_text","channel":"local_sms","content":{"text":"Hello, this is a sample API message"}}'

قالب تشغيلي بمتغيرات مسماة

curl --location 'https://raselsms.com/api/v2/messages/send' \--header 'X-API-Key: YOUR_API_KEY' \--header 'Content-Type: application/json' \--data '{"to":"+963912345678","messageType":"utility","template":{"id":"64abc123...","variablesNamed":{"1":"Ahmed","2":"Order #456"}}}'

قالب تسويقي على واتساب الرسمي

curl --location 'https://raselsms.com/api/v2/messages/send' \--header 'X-API-Key: YOUR_API_KEY' \--header 'Content-Type: application/json' \--data '{"to":"+963912345678","messageType":"marketing","channel":"official_whatsapp","template":{"key":"promo_offer","variablesIndexed":["50%","End of month"]}}'

مشترك بوت تلغرام

curl --location 'https://raselsms.com/api/v2/messages/send' \--header 'X-API-Key: YOUR_API_KEY' \--header 'Content-Type: application/json' \--data '{"to":"123456789","channel":"telegram_bot","messageType":"free_text","content":{"text":"Hello from the bot"},"conversationContext":{"moduleType":"telegram_bot","accountId":"6800abc123def4567890fedc","chatId":"123456789"}}'

مشترك بوت تلغرام مع صورة

curl --location 'https://raselsms.com/api/v2/messages/send' \--header 'X-API-Key: YOUR_API_KEY' \--header 'Content-Type: application/json' \--data '{"to":"123456789","channel":"telegram_bot","messageType":"free_text","content":{"text":"Offer image"},"attachment":{"type":"image","publicUrl":"https://cdn.example.com/offers/banner.jpg","mimetype":"image/jpeg","fileName":"banner.jpg"},"conversationContext":{"moduleType":"telegram_bot","accountId":"6800abc123def4567890fedc","chatId":"123456789"}}'

قالب واتساب رسمي تشغيلي مع وسائط الهيدر

curl --location 'https://raselsms.com/api/v2/messages/send' \--header 'X-API-Key: YOUR_API_KEY' \--header 'Content-Type: application/json' \--data '{"to":"+963911111111","messageType":"utility","channel":"official_whatsapp","template":{"key":"order_ready_notice","variablesIndexed":["أحمد","A-1042","25000"],"buttonVariables":[{"index":0,"subType":"url","text":"A-1042"}],"headerMediaUrl":"https://cdn.example.com/order-ready.jpg","headerMediaType":"image"}}'

مثال الاستجابة

200 — SMS محلي صحيح

{  "success": true,  "requestId": "msgreq_1739012345678_abc123",  "status": "sent",  "resolved": {    "channel": "local_sms",    "provider": "sms_mtn",    "senderSource": "account_default"  },  "billing": {    "estimatedCost": 0.02,    "currency": "USD"  },  "tracking": {    "messageId": "6800msg123def4567890aaaa",    "usageId": "6800use123def4567890bbbb",    "queueId": null  }}

200 — OTP مع اختيار قناة تلقائي

{  "success": true,  "requestId": "msgreq_1739012345678_abc123",  "status": "sent",  "resolved": {    "channel": "int_sms",    "provider": "sms_taqnyat",    "senderSource": "account_default"  },  "billing": {    "estimatedCost": 0.02,    "currency": "USD"  },  "tracking": {    "messageId": "6800msg123def4567890aaaa",    "usageId": "6800use123def4567890bbbb",    "queueId": null  }}

200 — قالب واتساب رسمي مع متغيرات وزر رابط

{  "success": true,  "requestId": "msgreq_1739012345678_abc123",  "status": "sent",  "resolved": {    "channel": "official_whatsapp",    "provider": "meta",    "senderSource": "official_default"  },  "billing": {    "estimatedCost": 0.02,    "currency": "USD"  },  "tracking": {    "messageId": "6800msg123def4567890aaaa",    "usageId": "6800use123def4567890bbbb",    "queueId": null  }}

200 — صورة واتساب ويب

{  "success": true,  "requestId": "msgreq_1739012345678_abc123",  "status": "sent",  "resolved": {    "channel": "user_whatsapp_session",    "provider": "user_whatsapp_session",    "senderSource": "session"  },  "billing": {    "estimatedCost": 0.02,    "currency": "USD"  },  "tracking": {    "messageId": "6800msg123def4567890aaaa",    "usageId": "6800use123def4567890bbbb",    "queueId": null  }}

200 — مشترك بوت تلغرام

{  "success": true,  "requestId": "msgreq_1739012345678_abc123",  "status": "sent",  "resolved": {    "channel": "telegram_bot",    "provider": "telegram_bot",    "senderSource": "bot"  },  "billing": {    "estimatedCost": 0.02,    "currency": "USD"  },  "tracking": {    "messageId": "6800msg123def4567890aaaa",    "usageId": "6800use123def4567890bbbb",    "queueId": null  }}

200 — دفعة رسمية لمستلمين

{  "success": true,  "batch": true,  "summary": {    "total": 2,    "sent": 2,    "queued": 0,    "failed": 0  },  "results": [    {      "to": "+963912345678",      "success": true,      "requestId": "msgreq_1739012345678_abc123",      "status": "sent"    },    {      "to": "+963987654321",      "success": true,      "requestId": "msgreq_1739012345678_def456",      "status": "sent"    }  ]}

400 — خطأ: بدون حقل to

{  "success": false,  "requestId": "msgreq_1739012345678_abc123",  "code": "VALIDATION_ERROR",  "error": "to is required"}

to إلزامي سواء كان نصاً أو مصفوفة.

401 — خطأ: بدون مفتاح API

{  "success": false,  "requestId": "msgreq_1739012345678_abc123",  "code": "UNAUTHORIZED",  "error": "Missing or invalid API key"}

المسار يرفض الطلب فوراً بدون X-API-Key.

400 — خطأ: تلغرام بلا conversationContext

{  "success": false,  "code": "VALIDATION_ERROR",  "error": "conversationContext is required for telegram_bot"}

telegram_bot يتطلب moduleType وaccountId وchatId لمشترك ضغط /start.

400 — خطأ: رقم غير مسجّل في واتساب

{  "success": false,  "requestId": "msgreq_1739012345678_abc123",  "code": "WHATSAPP_NOT_REGISTERED",  "error": "الرقم غير مسجل في واتساب"}

التحقق قبل الإرسال يمنع الفوترة على رقم غير مسجّل.

402 — الرصيد أو حصة الباقة لا تكفي.

{  "success": false,  "requestId": "msgreq_1739012345678_abc123",  "code": "INSUFFICIENT_BALANCE",  "error": "Insufficient wallet or pool balance"}

409 — تعارض Idempotency-Key أو المفتاح ما زال قيد المعالجة.

{  "success": false,  "requestId": "msgreq_1739012345678_abc123",  "code": "IDEMPOTENCY_KEY_CONFLICT",  "error": "The same Idempotency-Key was reused with a different body"}

403 — الهاتف غير موثّق أو الصلاحية غير كافية (غالباً messages:create أو api_keys:read).

{  "success": false,  "requestId": "msgreq_1739012345678_abc123",  "code": "FORBIDDEN",  "error": "Phone not verified or missing permission"}

429 — تم تجاوز حد الطلبات. انتظر Retry-After إن وُجد.

{  "success": false,  "requestId": "msgreq_1739012345678_abc123",  "code": "RATE_LIMITED",  "error": "Rate limit exceeded",  "retryAfterSeconds": 30}

طلب HTTP

POST /api/v2/messages/send

ترويسات الطلب

الترويسةالنوعالوصف
X-API-Keystringمفتاح Rasel API. أرسله في كل طلب موثّق ما عدا الويب هوك الوارد. *
Idempotency-Keystringمفتاح اختياري فريد لإعادة المحاولة الآمنة. يتقدّم على idempotencyKey في الجسم. يمكن إعادة نفس الاستجابة لمدة 24 ساعة عند تفعيل خاصية Idempotency.

جسم الطلب

الحقلالنوعالوصفمثال
tostringالمستلم: رقم دولي E.164، أو بريد عندما تكون القناة email، أو معرّف مجموعة واتساب، أو معرّف محادثة تلغرام، أو مصفوفة نصوص حتى 100 مستلم للدفعة الرسمية. *
textstringاختصار يحوَّل إلى free_text مع اختيار القناة تلقائياً عندما لا يُرسل content.text.
channelenumقناة التسليم. في الإرسال الموحّد فضّل auto أو local_sms أو int_sms أو official_whatsapp أو جلسات واتساب ويب أو telegram_bot أو email_user. في التحقق احذف الحقل للاختيار التلقائي، ولا ترسل sms أو whatsapp أو auto وحدها.
messageTypeenumتصنيف الرسالة: otp أو utility أو marketing أو free_text.
contentobjectفي الإرسال الموحّد: كائن المحتوى (نص أو رمز OTP أو موضوع البريد). في القوالب: متن SMS أو الرسالة، أو HTML/نص البريد.
content.textstringنص الرسالة. مع وسائط واتساب يكون هذا النص التعليق.
content.otpCodestringرمز التحقق عندما يكون نوع الرسالة otp ولا ترسل قالباً.
content.subjectstringموضوع البريد عندما تكون القناة بريداً.
attachmentobjectملف مرفق مع واتساب ويب أو بوت تلغرام. تلغرام يحتاج رابط HTTPS يمكن فتحه من الإنترنت في publicUrl.
attachment.typeenumنوع الوسيط: image أو video أو audio أو document. *
attachment.publicUrlstringرابط HTTPS عام يستطيع المزوّد تنزيله. مطلوب لوسائط بوت تلغرام.
attachment.base64stringBase64 خام بلا بادئة data:. لواتساب ويب فقط. تلغرام يتجاهله.
attachment.mimetypestringنوع الملف، مثل image/png.
attachment.fileNamestringاسم الملف الذي يراه المستلم، مثل sku-100.png.
attachment.assetIdstringمعرّف ملف وسائط مرفوع مسبقاً لهذا الحساب.
conversationContextobjectمطلوب لـ telegram_bot. لمجموعات واتساب ويب ضع chatId على JID المجموعة الأصلية. accountId هو اسم الجلسة أو معرّف بوت تلغرام.
conversationContext.moduleTypeenumwhatsapp_web أو whatsapp_official أو telegram_bot. *
conversationContext.accountIdstringاسم جلسة واتساب ويب، أو معرّف بوت تلغرام. *
conversationContext.chatIdstringمعرّف واتساب JID بما فيه groupId@g.us، أو معرّف محادثة تلغرام لمستخدم بدأ البوت. *
conversationContext.contactIdstringمعرّف جهة اتصال اختياري في راسل.
conversationContext.conversationKeystringمفتاح محادثة اختياري إذا كان لديك واحد.
templateobjectمرجع القالب (id أو key) واللغة والمتغيرات وهيدر اختياري لهذا الإرسال.
template.idstringمعرّف القالب الداخلي من قائمة القوالب.
template.keystringاسم القالب أو مفتاحه، مثل order_ready_notice.
template.languagestringلغة قالب ميتا مثل ar أو en. لا تُستخدم للـ SMS.
template.variablesIndexedstring-listمتغيرات المتن بالترتيب: أول قيمة تملأ {{1}}.
template.buttonVariablesjsonلواحق أزرار الرابط، منفصلة عن متغيرات المتن. index هو ترتيب الزر بدءاً من 0.
template.variablesNamedjsonمتغيرات بأسمائها ككائن من نصوص.
template.headerAssetIdstringمعرّف وسائط هيدر مرفوعة مسبقاً. فضّل headerMediaUrl في نفس الطلب.
template.headerMediaUrlstringرابط عام لصورة أو فيديو أو مستند الهيدر لهذا الإرسال فقط.
template.headerMediaTypeenumimage أو video أو document. أرسله مع headerMediaUrl عندما لا يُستنتج النوع.
template.headerstringرابط نصي مرادف لـ headerMediaUrl. لا ترسل كائناً.
optionsobjectخيارات إرسال اختيارية مثل scheduleAt وidempotencyKey وبيانات العميل.
options.priorityenumمهمل ولا يُؤخذ به. الإرسال أصلاً بأولوية عالية.
options.idempotencyKeystringمفتاح إعادة محاولة اختياري. فضّل ترويسة Idempotency-Key.
options.scheduleAtstringوقت مستقبلي بصيغة ISO 8601. يتطلب خطة تسمح بالرسائل المجدولة.
options.metadatajsonبياناتك الخاصة تُحفظ مع الرسالة.
senderobjectتجاوز اختياري للمرسل. إن حُذف يستخدم راسل المرسل المعتمد الافتراضي ثم مرسل المنصة.
sender.idstringمعرّف مرسل SMS المعتمد. احذفه لاستخدام المرسل الافتراضي.
sender.namestringاسم مرسل SMS المعتمد. بديل عن sender.id.
sender.officialIdstringمعرّف مرسل واتساب الرسمي. نفس officialSenderId.
officialSenderIdstringمعرّف مرسل واتساب الرسمي من /api/v2/official-senders. مرادف sender.officialId. استخدم platform لرقم ميتا الافتراضي عند قائمة القوالب.

حقول الاستجابة

الحقلالنوعالوصفمثال
successenumصحيح عندما ينجح الإجراء، أو عندما ينجح مستلم واحد على الأقل في الدفعة.
requestIdstringمعرّف طلب يولّده الخادم للتتبع والدعم.
statusenumحالة التسليم أو السجل. في الإرسال: sent أو queued أو scheduled. في الموارد الأخرى هي فلتر الحالة أو قيمتها.
scheduledAtstringيظهر عندما تكون الحالة scheduled؛ وقت التسليم المؤجّل.
resolvedobjectالقناة والمزوّد ومصدر المرسل بعد التوجيه.
resolved.channelstringقناة التسليم. في الإرسال الموحّد فضّل auto أو local_sms أو int_sms أو official_whatsapp أو جلسات واتساب ويب أو telegram_bot أو email_user. في التحقق احذف الحقل للاختيار التلقائي، ولا ترسل sms أو whatsapp أو auto وحدها.
resolved.providerstringفلتر أو قيمة مزوّد القالب: user_session أو meta أو internal.
resolved.senderSourcestringكيف اختير المرسل: المعرّف الذي أرسلته، أو الافتراضي في الحساب، أو مرسل المنصة.
resolved.channelsstring-listأسماء القنوات العامة عندما ينجح التوزيع على أكثر من قناة متوافقة.
billingobjectالتكلفة التقديرية والعملة لهذا الإرسال.
billing.estimatedCostnumberالسعر التقديري لهذا الإرسال قبل التسوية النهائية.
billing.currencystringرمز عملة estimatedCost حسب ISO، مثل USD.
trackingobjectمعرّفات التتبع لدى المزوّد والداخلية، بما فيها التسليم لكل قناة عند التوزيع.
tracking.messageIdstringمعرّف الرسالة في راسل لهذا الإرسال.
tracking.usageIdstringمعرّف سجل الاستهلاك لهذه الحركة.
tracking.queueIdstringمعرّف مهمة الطابور عندما يكون الإرسال في الانتظار أو مجدولاً.
tracking.deliveriesjsonتتبع لكل قناة عند تفعيل التوزيع.

رموز الحالة

الحالةالوصف
200نجاح.
202قُبل الطلب وأُضيف إلى الطابور.
207جزء من المستلمين وصلته الرسالة، وجزء فشل.
400طلب غير صالح، أو خطأ تحقق، أو المورد لا يمكن استخدامه في هذه الحالة.
401مفتاح API مفقود أو غير صالح.
402رصيد المحفظة أو حصة الباقة لا يكفي.
403الهاتف غير موثّق، أو الصلاحية ناقصة، أو الحساب لا يستطيع تنفيذ هذا الإجراء.
409تعارض، مثل إعادة استخدام مفتاح Idempotency بجسم مختلف، أو جلسة غير جاهزة.
429تم تجاوز حد المعدل، أو وصل عدد محاولات التحقق إلى الحد الأقصى.
502فشل المزوّد الخارجي في معالجة الطلب.
503المزوّد غير متاح أو انتهت مهلة الاتصال.

حالات يجب أن تعرفها

  • الحد الأقصى للدفعة 100 مستلم. الحقول المشتركة (القناة، النوع، المحتوى/القالب، المرسل) تُطبَّق على الجميع.
  • batchRequests[] ما زال مقبولاً للتوافق لكنه مهمل؛ استخدم to[].
  • اسحب accountId وchatId من واجهات سياق الإرسال قبل إرسال واتساب ويب أو تلغرام.
  • لهيدر قوالب واتساب الرسمي أرسل الملف أو الرابط في نفس طلب /messages/send. إنشاء القالب يقبل headerMedia في نفس POST /api/v2/templates.

جرّب الطلب

قد يخصم هذا الطلب من رصيد المحفظة أو حصة الباقة.

لست مسجلاً، أو رفض الخادم هذه الجلسة. القوائم تبقى فارغة إلى أن تسجّل الدخول أو تكتب مفتاحاً صالحاً، ولن يظهر حساب شخص آخر.

مفتاح اختياري فريد لإعادة المحاولة الآمنة. يتقدّم على idempotencyKey في الجسم. يمكن إعادة نفس الاستجابة لمدة 24 ساعة عند تفعيل خاصية Idempotency.

اختر القناة، ثم الرقم، ثم نص الرسالة أو قالباً من حسابك. أسماء المرسلين والأرقام والقوالب تُؤخذ من حسابك إذا كان حقل المفتاح فارغاً، أو من صاحب المفتاح إذا كتبته.

المستلم بالصيغة الدولية، مثل +963912345678. للبريد أدخل العنوان.

وجهة التسليم. الحقول التالية تتغير حسب القناة.

اسم مرسل SMS المعتمد. اتركه فارغاً لاستخدام المرسل الافتراضي.

النص الحر رسالة عادية. رسائل الخدمة والتسويق تستخدم قالباً. رمز التحقق يمكن إرساله كرمز أو كقالب.

النص الذي يراه المستلم. مع وسائط واتساب يكون هذا النص التعليق.

الطلب

{  "to": "+963912345678",  "channel": "user_whatsapp_session",  "messageType": "free_text",  "content": {    "text": "Product photo"  },  "attachment": {    "type": "image",    "publicUrl": "https://cdn.example.com/catalog/sku-100.png",    "mimetype": "image/png",    "fileName": "sku-100.png"  }}

الاستجابة

نفّذ طلباً لعرض الاستجابة.