SMS API للمطورين: أرسل OTP والتنبيهات للأرقام الأردنية
sms-jo هو طبقة الربط بين نظامك وشبكات الاتصالات في الأردن. أنت ترسل طلب HTTP، ونحن نوصل الرسالة عبر شركات الاتصالات الفئوية المرخصة.
باختصار: أرسل طلب POST إلى https://sms-jo.com/api/v3/sms/send مع ترويسة Authorization: Bearer <API_TOKEN> وحقول recipient وsender_id وtype وmessage.
قبل أن تبدأ
- أنشئ حساباً واشترك في باقة تتيح استخدام API.
- من لوحة التحكم افتح قسم Developers وانسخ API Token. احفظه في متغيرات البيئة ولا تضعه في كود الواجهة الأمامية.
- اطلب اسم مرسل (Sender ID) وانتظر اعتماده.
- اكتب الأرقام بالصيغة الدولية بدون
+أو أصفار بادئة، مثل9627XXXXXXXX.
إرسال رسالة
| الحقل | مطلوب | الوصف |
|---|---|---|
recipient | نعم | رقم المستلم، أو عدة أرقام مفصولة بفاصلة |
sender_id | نعم | اسم المرسل المعتمد |
type | نعم | plain للإنجليزية، unicode للعربية |
message | نعم | نص الرسالة |
schedule_time | لا | وقت الإرسال المجدول |
cURL
curl -X POST https://sms-jo.com/api/v3/sms/send \
-H "Authorization: Bearer $SMSJO_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"recipient": "9627XXXXXXXX",
"sender_id": "YourBrand",
"type": "unicode",
"message": "رمز التحقق الخاص بك هو 4821"
}'
PHP
$ch = curl_init('https://sms-jo.com/api/v3/sms/send');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('SMSJO_TOKEN'),
'Content-Type: application/json',
'Accept: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'recipient' => '9627XXXXXXXX',
'sender_id' => 'YourBrand',
'type' => 'unicode',
'message' => 'تم استلام طلبك رقم 1042',
]),
]);
$response = json_decode(curl_exec($ch), true);
Node.js
const res = await fetch('https://sms-jo.com/api/v3/sms/send', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.SMSJO_TOKEN}`,
'Content-Type': 'application/json',
Accept: 'application/json',
},
body: JSON.stringify({
recipient: '9627XXXXXXXX',
sender_id: 'YourBrand',
type: 'unicode',
message: 'موعدك غداً الساعة 10 صباحاً',
}),
});
const data = await res.json();
Python
import os, requests
r = requests.post(
"https://sms-jo.com/api/v3/sms/send",
headers={"Authorization": f"Bearer {os.environ['SMSJO_TOKEN']}",
"Accept": "application/json"},
json={"recipient": "9627XXXXXXXX", "sender_id": "YourBrand",
"type": "plain", "message": "Your order has shipped"},
)
print(r.json())
نقاط النهاية المتاحة
| الطريقة | المسار | الاستخدام |
|---|---|---|
POST | /api/v3/sms/send | إرسال رسالة |
GET | /api/v3/sms | سجل الرسائل المرسلة |
GET | /api/v3/balance | الرصيد المتبقي |
GET | /api/v3/me | بيانات الحساب |
POST | /api/v3/contacts/{group_id}/store | إضافة جهة اتصال لمجموعة |
لأنظمة قديمة لا تدعم الترويسات، تتوفر نسخة HTTP على /api/http/sms/send بتمرير api_token كمعامل. التوثيق الكامل والردود التفصيلية داخل لوحة التحكم في قسم Developers.
استخدامات شائعة
رموز التحقق OTP
تسجيل الدخول، التحقق من رقم الهاتف، تأكيد العمليات الحساسة.
إشعارات الطلبات
تأكيد الطلب، خرج للتوصيل، تم التسليم.
تنبيهات الأنظمة
تنبيه فريق التقنية عند توقف خدمة أو تجاوز حد معين.
التذكير بالمواعيد
عيادات، صالونات، مراكز خدمة، مع إرسال مجدول.
أفضل الممارسات
- اجعل رسائل OTP قصيرة وواضحة، واذكر اسم الخدمة ومدة صلاحية الرمز.
- الرسالة العربية تتسع لـ 70 حرفاً؛ ما زاد يُحتسب أجزاءً إضافية من الرصيد.
- استدعِ API من الخادم فقط، ولا تكشف المفتاح في المتصفح أو التطبيق.
- ضع حداً لعدد طلبات OTP لكل رقم لمنع إساءة الاستخدام واستنزاف الرصيد.
- راقب الرصيد عبر
/api/v3/balanceقبل الحملات الكبيرة.
أسئلة المطورين
هل يدعم API الرسائل العربية؟
نعم، استخدم
"type": "unicode" للنصوص العربية.هل أستطيع الإرسال لأكثر من رقم في طلب واحد؟
نعم، ضع الأرقام في
recipient مفصولة بفاصلة.أين أجد مفتاح API؟
في لوحة التحكم، قسم Developers، بعد الاشتراك في باقة تتيح استخدام API.