ClickLink Developer Platform
ابنِ على خدمات ClickLink
اربط تطبيقاتك ومنصاتك بخدمات ClickLink عبر واجهات API مصممة لتكاملات الأعمال. المرجع العام الحالي هو واجهة الرسائل.
POST /api/v1/sms/send
X-ClickLink-Key: YOUR_API_KEY
{
"to": "05xxxxxxxx",
"senderId": "ClickLink",
"message": "مرحباً من ClickLink",
"registeredDelivery": true
}
HTTP 202
{
"ok": true,
"status": "ACCEPTED",
"messages": [{
"messageId": "9f1a5ba3-…",
"status": "QUEUED"
}]
}
ماذا يمكنك أن تبني؟
واجهة الرسائل العامة تغطي الإرسال، الرصيد، حالة الرسالة، Webhooks للـDLR، وSandbox بدون إرسال حقيقي.
رسائل الأعمال
أرسل SMS من تطبيقك عبر POST /api/v1/sms/send.
OTP / Notifications
نفس مسار الإرسال لرسائل تحقق أو إشعار تشغيلي. قوالب معتمدة مطلوبة للحملات التسويقية أو الإرسال الجماعي.
حالة التسليم
GET /api/v1/sms/messages/{messageId} أو Webhook event message.dlr.
ابدأ التكامل
- احصل على مفتاح API من مدير الحساب أو لوحة الإدارة (Generate API key).
- أرسل المفتاح في X-ClickLink-Key أو Authorization: Bearer.
- جرّب Sandbox: POST /api/v1/sms/sandbox/send — بلا رسوم وبلا إرسال حقيقي.
- أرسل Live: POST /api/v1/sms/send — الاستجابة 202 مع status ACCEPTED وmessageId.
- تابع الحالة عبر GET /api/v1/sms/messages/{id} أو Webhook DLR.
Authentication
استخدم واحدًا من هذه الهيدرز في كل طلب. لا تضع المفتاح في الواجهة الأمامية العامة.
X-ClickLink-Key: YOUR_API_KEY Authorization: Bearer YOUR_API_KEY X-Api-Key: YOUR_API_KEY Base path: /api/v1 Host example: https://clicklink.com.sa
Send SMS
POST /api/v1/sms/send → HTTP 202
curl -sS -X POST "https://clicklink.com.sa/api/v1/sms/send" \
-H "Content-Type: application/json" \
-H "X-ClickLink-Key: YOUR_API_KEY" \
-d '{"to":"05xxxxxxxx","senderId":"ClickLink","message":"Hello from ClickLink"}'
const res = await fetch("https://clicklink.com.sa/api/v1/sms/send", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-ClickLink-Key": process.env.CLICKLINK_API_KEY
},
body: JSON.stringify({
to: "05xxxxxxxx",
senderId: "ClickLink",
message: "Hello from ClickLink"
})
});
const data = await res.json();
console.log(data.messages[0].messageId);
$ch = curl_init("https://clicklink.com.sa/api/v1/sms/send");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-ClickLink-Key: " . getenv("CLICKLINK_API_KEY"),
],
CURLOPT_POSTFIELDS => json_encode([
"to" => "05xxxxxxxx",
"senderId" => "ClickLink",
"message" => "Hello from ClickLink",
]),
CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch);
import os, requests
r = requests.post(
"https://clicklink.com.sa/api/v1/sms/send",
headers={"X-ClickLink-Key": os.environ["CLICKLINK_API_KEY"]},
json={"to":"05xxxxxxxx","senderId":"ClickLink","message":"Hello from ClickLink"},
)
print(r.json()["messages"][0]["messageId"])
الحقول الأساسية: to، senderId (معتمد للحساب)، message. registeredDelivery افتراضيًا true.
Message status
GET /api/v1/sms/messages/{messageId}
{
"ok": true,
"message": {
"messageId": "…",
"status": "delivered",
"dlrStatus": "delivered"
}
}
Balance: GET /api/v1/sms/balance
دورة التسليم
عند الفشل تُحدَّث الحالة عبر DLR. الاستعلام أو Webhook message.dlr يعيد status وisFinal.
Webhooks (DLR)
اضبط عنوان HTTPS عبر PUT /api/v1/billing/webhook. نوقّع كل نداء.
X-ClickLink-Signature: sha256=<HMAC_SHA256(secret, timestamp + "." + rawBody)>
X-ClickLink-Timestamp: <unix seconds>
X-ClickLink-Event: message.dlr
{
"event": "message.dlr",
"messageId": "…",
"status": "delivered",
"isFinal": true,
"refunded": false,
"destAddr": "9665xxxxxxxx"
}
Sandbox
بدون رسوم وبدون إرسال حقيقي. نفس جسم طلب الإرسال. الاستجابة status: SANDBOX_ACCEPTED وsandbox: true.
GET /api/v1/sms/sandbox/pingPOST /api/v1/sms/sandbox/sendPOST /api/v1/sms/sandbox/webhook-verify
Errors
{ "ok": false, "error": { "code": "DEST_INVALID", "message": "…" } }
| HTTP | Code | |
|---|---|---|
| 400 | DEST_INVALID / VALIDATION_ERROR | طلب غير صالح أو حد إرسال |
| 401 | AUTH_MISSING / AUTH_INVALID | مصادقة |
| 402 | INSUFFICIENT_BALANCE | الرصيد |
| 403 | SENDER_NOT_ALLOWED / ACCOUNT_INACTIVE | صلاحية المرسل أو الحساب |
| 404 | NOT_FOUND | الرسالة غير موجودة |
| 503 | QUEUE_FULL | ضغط على الطابور |
| 500 | INTERNAL_ERROR | خطأ خدمة |
Built with security in mind
- HTTPS
- API key / Bearer authentication
- Approved sender IDs
- HTTP send throttling (VALIDATION_ERROR)
- Webhook HMAC signature
الخطوة التالية
المرجع الكامل في /docs.html. للحصول على مفتاح ابدأ من البوابة أو راسل الدعم التقني.