POST/api/v2/templates
إنشاء قالب
ينشئ قالباً من أي نوع مدعوم. قوالب واتساب الرسمية تُرسل إلى ميتا حسب المرسل المعتمد. الاسم إنجليزي صغير مع _. أرفق وسائط الهيدر في نفس طلب multipart، أو ارفع أولاً عبر /api/v2/templates/media ثم مرّر headerAssetId.
مثال الطلب
قالب واتساب رسمي تشغيلي مع وسائط الهيدر
curl --location 'https://raselsms.com/api/v2/templates' \
--header 'X-API-Key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{"name":"order_ready_notice","category":"whatsapp","subType":"utility","language":"ar","headerType":"image","headerAssetId":"ASSET_ID_FROM_MEDIA_UPLOAD","body":"مرحباً {{1}}، طلبك رقم {{2}} جاهز للاستلام. الإجمالي {{3}} ل.س.","bodyParameters":[{"index":1,"label":"أحمد"},{"index":2,"label":"A-1042"},{"index":3,"label":"25000"}],"footer":"راسل","buttons":[{"type":"url","text":"تتبع الطلب","url":"https://example.com/orders/{{1}}","urlExample":"https://example.com/orders/A-1042"},{"type":"phone","text":"اتصل بنا","url":"+963911111111"}]}'قالب واتساب تشغيلي (المتن فقط)
curl --location 'https://raselsms.com/api/v2/templates' \
--header 'X-API-Key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{"name":"order_confirmation","category":"whatsapp","subType":"utility","language":"ar","body":"مرحباً {{1}}، طلبك رقم {{2}} تم تأكيده.","bodyParameters":[{"index":1,"label":"أحمد"},{"index":2,"label":"12345"}]}'قالب واتساب OTP لنسخ الرمز
curl --location 'https://raselsms.com/api/v2/templates' \
--header 'X-API-Key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{"name":"login_otp","category":"whatsapp","subType":"otp","language":"ar","otpType":"copy_code","addSecurityRecommendation":true,"codeExpirationMinutes":10,"otpButtonText":"Copy code"}'قالب جلسة واتساب ويب
curl --location 'https://raselsms.com/api/v2/templates' \
--header 'X-API-Key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{"name":"session_welcome","category":"whatsapp","subType":"utility","language":"ar","provider":"user_session","body":"مرحباً {{1}}، شكراً لتواصلك معنا."}'قالب SMS
curl --location 'https://raselsms.com/api/v2/templates' \
--header 'X-API-Key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{"name":"sms_otp","category":"sms","subType":"otp","content":"رمز التحقق هو {{1}}"}'قالب بريد
curl --location 'https://raselsms.com/api/v2/templates' \
--header 'X-API-Key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{"name":"welcome_email","category":"email","subType":"utility","emailSubject":"Welcome","content":"<p>Hello {{1}}</p>"}'ربط قالب واتساب رسمي موجود
curl --location 'https://raselsms.com/api/v2/templates' \
--header 'X-API-Key: YOUR_API_KEY' \
--header 'Content-Type: application/json' \
--data '{"name":"eshaar_order_status","creationMode":"manual_external_id","providerTemplateId":"1234567890","subType":"utility","language":"ar","manualVariableCount":2}'طلب HTTP
POST /api/v2/templates
ترويسات الطلب
| الترويسة | النوع | الوصف |
|---|---|---|
| X-API-Key | string | مفتاح Rasel API. أرسله في كل طلب موثّق ما عدا الويب هوك الوارد. * |
جسم الطلب
| الحقل | النوع | الوصف | مثال |
|---|---|---|---|
| name | string | الاسم الظاهر أو معرّف القالب الإنجليزي الصغير، حسب المسار. * | order_ready_notice |
| category | whatsapp | sms | message | email | فئة القالب: whatsapp أو sms أو message أو email. * | |
| subType | marketing | utility | otp | free | notification | النوع الفرعي مثل utility أو otp أو marketing أو free. * | |
| language | string | لغة قالب ميتا مثل ar أو en. تُستخدم لقوالب واتساب الرسمية. | |
| body | string | متن قالب واتساب مع عناصر نائبة مرقمة. اربطه بـ bodyParameters عند الإنشاء وvariablesIndexed عند الإرسال. | |
| content | string | في الإرسال الموحّد: كائن المحتوى (نص أو رمز OTP أو موضوع البريد). في القوالب: متن SMS أو الرسالة، أو HTML/نص البريد. | |
| emailSubject | string | مطلوب عندما تكون الفئة email. | |
| headerType | text | image | video | document | نوع الهيدر: text أو image أو video أو document. | |
| headerValue | string | قيمة الهيدر النصي عندما يكون headerType هو text. | |
| headerAssetId | string | المعرّف من مسار رفع الوسائط. غير مطلوب إذا أُرسل headerMedia أو file أو headerMediaUrl. | |
| footer | string | تذييل واتساب اختياري. لا يُستخدم في قوالب جلسة واتساب ويب. | |
| buttons | object[] | أزرار واتساب المضبوطة على القالب. | |
| bodyParameters | object[] | قيم أمثلة تُرسل إلى ميتا للعناصر النائبة المرقمة في المتن. | |
| otpType | copy_code | one_tap | zero_tap | نوع زر OTP في واتساب الرسمي: copy_code أو one_tap أو zero_tap. | |
| addSecurityRecommendation | boolean | عند true تضيف ميتا سطر توصية الأمان القياسي لرمز OTP. | |
| codeExpirationMinutes | integer | صلاحية رمز OTP بالدقائق (1–90) لقوالب واتساب الرسمية. | |
| otpButtonText | string | تسمية زر نسخ رمز OTP في واتساب الرسمي. | |
| packageName | string | اسم حزمة أندرويد لـ one-tap أو zero-tap. | |
| signatureHash | string | بصمة توقيع تطبيق أندرويد لـ one-tap أو zero-tap. | |
| zeroTapTermsAccepted | boolean | يجب أن تكون true عندما يكون otpType هو zero_tap. | |
| provider | user_session | فلتر أو قيمة مزوّد القالب: user_session أو meta أو internal. | |
| templateTarget | user_session | ضع user_session لإنشاء قالب جلسة واتساب ويب (نفس provider=user_session). | |
| officialSenderId | string | معرّف مرسل واتساب الرسمي من /api/v2/official-senders. مرادف sender.officialId. استخدم platform لرقم ميتا الافتراضي عند قائمة القوالب. | |
| creationMode | manual_external_id | استخدم manual_external_id لربط قالب واتساب رسمي موجود مع providerTemplateId. | |
| providerTemplateId | string | معرّف قالب واتساب الرسمي / ميتا عند الربط اليدوي. | |
| manualVariableCount | integer | عدد متغيرات المتن عند ربط قالب رسمي موجود. |
حقول الاستجابة
| الحقل | النوع | الوصف | مثال |
|---|---|---|---|
| success | boolean | صحيح عندما ينجح الإجراء، أو عندما ينجح مستلم واحد على الأقل في الدفعة. | true |
| data | object | الحمولة الأساسية لمسارات القائمة واللقطة. | |
| message | string | رسالة نتيجة مقروءة بعد الإنشاء أو الرفع. |
رموز الحالة
| الحالة | الوصف |
|---|---|
| 201 | تم الإنشاء. |
| 400 | طلب غير صالح، أو خطأ تحقق، أو المورد لا يمكن استخدامه في هذه الحالة. |
| 401 | مفتاح API مفقود أو غير صالح. |
| 403 | الهاتف غير موثّق، أو الصلاحية ناقصة، أو الحساب لا يستطيع تنفيذ هذا الإجراء. |
| 409 | تعارض، مثل إعادة استخدام مفتاح Idempotency بجسم مختلف، أو جلسة غير جاهزة. |
| 429 | تم تجاوز حد المعدل، أو وصل عدد محاولات التحقق إلى الحد الأقصى. |
| 503 | المزوّد غير متاح أو انتهت مهلة الاتصال. |
جرّب الطلب
الاستجابة
نفّذ طلباً لعرض الاستجابة.