للمطورين
واجهة واحدة لكل الأنظمة
المصادقة بمفتاح خاص لكل نظام، وكل النداءات تحت /api/v1/ بنموذج استجابة وأخطاء موحد.
إرسال رسالةcURL
curl -X POST https://<your-hub-domain>/api/v1/messages \
-H "Authorization: Bearer <key_id>.<secret>" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-3391-confirm" \
-d '{
"recipient": "9665xxxxxxxx",
"channel": "whatsapp",
"type": "transactional",
"template": "order_confirmed",
"language": "ar",
"variables": ["3391", "2026-01-14"]
}'إرسال رمز تحققcURL
curl -X POST https://<your-hub-domain>/api/v1/otp/send \
-H "Authorization: Bearer <key_id>.<secret>" \
-H "Content-Type: application/json" \
-d '{ "recipient": "9665xxxxxxxx", "template": "login_code", "language": "ar" }'متابعة حالة الرسالةTypeScript
const res = await fetch(`${HUB}/api/v1/messages/${messageRef}`, {
headers: { Authorization: `Bearer ${process.env.COMHUB_API_KEY}` },
});
const { status, delivered_at } = await res.json();نموذج الخطأ الموحدJSON
{
"error": {
"code": "PROVIDER_TIMEOUT",
"message": "The provider did not respond in time",
"request_id": "req_8f2c41ab"
}
}حالات الرسالة
queuedفي الطابور بانتظار الإرسالsentسُلّمت إلى المزودdeliveredوصلت إلى جهاز المستفيدreadقرأها المستفيدfailedفشلت بعد استنفاد المحاولات
المفتاح يُصدر مرة واحدة عند تسجيل النظام في لوحة التحكم ولا يمكن عرضه مجددًا. عند فقده استخدم تدوير المفتاح.
