توثيق API
اربط نظامك بنمو وأرسل رمز تحقق، تنبيهاً، أو إشعاراً لعملائك على واتساب — باسم منصتك، عبر طلب واحد بسيط مثل بوابة الدفع.
الرابط الأساسي (Base URL)
https://nomutech.sa/api/v1المصادقة
كل طلب يحتاج مفتاح API في الترويسة. ولّد مفتاحك من صفحة المطوّرين داخل حسابك (يُعرض مرة واحدة فقط — احفظه بأمان).
Authorization: Bearer YOUR_API_KEYأو عبر الترويسة البديلة x-api-key: YOUR_API_KEY.
إرسال رسالة
POST /messages — يرسل رسالة قالب معتمد (للرموز والتنبيهات) أو رسالة نصّية حرة (داخل نافذة الـ 24 ساعة فقط).
حقول الطلب (JSON)
| الحقل | النوع | إلزامي | الوصف |
|---|---|---|---|
| to | string | نعم | رقم المستلم بصيغة E.164، مثل +9665XXXXXXXX. |
| type | string | لا | "template" (افتراضي) أو "text". |
| template | string | مع template | اسم القالب المعتمد من ميتا. |
| language | string | لا | كود لغة القالب، مثل ar أو en_US. |
| text | string | مع text | نص الرسالة الحرة (يعمل داخل نافذة 24 ساعة فقط). |
أمثلة
curl -X POST https://nomutech.sa/api/v1/messages \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "+9665XXXXXXXX",
"type": "template",
"template": "your_template",
"language": "ar"
}'الاستجابة عند النجاح
{ "success": true, "wamid": "wamid.HBgM..." }مثال: رمز تحقق (OTP)
للرموز والتنبيهات الفورية، الأفضل قالب نوعه «مصادقة» معتمد. المثال التالي يستخدم رسالة نصّية للتوضيح (تعمل داخل نافذة 24 ساعة):
curl -X POST https://nomutech.sa/api/v1/messages \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "+9665XXXXXXXX",
"type": "text",
"text": "رمز الدخول الخاص بك: 482913"
}'منع التكرار (Idempotency)
لتفادي إرسال نفس الرمز/التنبيه مرتين عند انقطاع الشبكة أو إعادة المحاولة، أرسل ترويسة Idempotency-Key بقيمة فريدة لكل عملية (مثل معرّف الطلب عندك). إذا وصلنا نفس المفتاح مرة ثانية، نرجّع نفس النتيجة المحفوظة بدون إرسال جديد(مع ترويسة Idempotency-Replayed: true).
Idempotency-Key: order-9f2c1a-otpالإرسال الناجح فقط يُحفَظ؛ لو فشل الإرسال يُحرَّر المفتاح لتقدر تعيد المحاولة. أثناء معالجة طلب بنفس المفتاح يرجع 409.
رموز الأخطاء
كل خطأ يرجع رمز HTTP مناسب + كائن { "error": "..." } برسالة عربية.
| الرمز | متى يحدث |
|---|---|
| 400 | نص الطلب ليس JSON صالحاً، أو الحقل to مفقود. |
| 401 | مفتاح API مفقود أو غير صالح أو ملغى. |
| 409 | طلب آخر بنفس Idempotency-Key قيد المعالجة حالياً. |
| 429 | تجاوزت الحد (60 طلب/دقيقة) أو حد باقتك الشهري — راجع ترويسة Retry-After. |
| 502 | فشل الإرسال من واتساب — يرجع error و detail. |
| 503 | منتج الـ API غير مفعّل بعد على الخادم. |
| 405 | استخدمت طريقة غير POST. |
الحدود
- •60 طلب/دقيقة لكل مفتاح API. عند التجاوز يرجع
429مع ترويسةRetry-Afterبعدد الثواني. - •كل استجابة تتضمّن ترويسات الحدود
X-RateLimit-LimitوX-RateLimit-Remainingلتتابع استهلاكك. - •حد شهري حسب باقتك (عدد الرسائل). عند بلوغه يرجع
429برسالة توضّح الحد. - •الرسائل النصّية الحرة تعمل فقط داخل نافذة 24 ساعة من آخر رد للعميل. للإرسال في أي وقت استخدم قالباً معتمداً.
تحتاج مساعدة؟
فريق نمو يساعدك في الربط خطوة بخطوة. تواصل معنا أو ابدأ من صفحة المطوّرين.