مقدمة

واجهة برمجة التطبيقات (API) لنظام NASEY CRM تتيح لك الوصول البرمجي لجميع بيانات ووظائف النظام. يمكنك استخدام API لبناء تطبيقات مخصصة، ربط أنظمة خارجية، أو أتمتة العمليات.

معلومات مهمة

  • Base URL: https://api.nasey.com/v1/
  • البروتوكول: HTTPS فقط
  • تنسيق البيانات: JSON
  • الترميز: UTF-8
  • المصادقة: API Key في Header

المتطلبات الأساسية

  • حساب نشط في NASEY CRM
  • خطة اشتراك تدعم API (احترافية أو أعلى)
  • API Key صحيح ونشط
  • معرفة أساسية بـ HTTP و JSON

نسخة API

النسخة الحالية هي v1. جميع المسارات تبدأ بـ /v1/. نحن نحتفظ بالتوافق مع النسخ السابقة قدر الإمكان، وسنشعرك مسبقاً بأي تغييرات كبيرة.

المصادقة

تستخدم NASEY CRM API مفاتيح API للمصادقة. يجب تضمين مفتاح API في header لكل طلب.

الحصول على API Key

  1. سجل دخولك إلى لوحة تحكم NASEY CRM
  2. اذهب إلى الإعدادات ← API و Integrations
  3. انقر على "إنشاء مفتاح جديد"
  4. اختر الصلاحيات المطلوبة
  5. احفظ المفتاح في مكان آمن

أمان المفتاح

  • لا تشارك مفتاح API مع أطراف ثالثة
  • لا تضع المفتاح في كود مصدري عام
  • استخدم متغيرات البيئة لحفظ المفتاح
  • دور المفاتيح بانتظام كل 90 يوم

كيفية استخدام المفتاح

أضف مفتاح API إلى header في كل طلب:

Authorization: Bearer YOUR_API_KEY_HERE
Content-Type: application/json
Accept: application/json

مثال بـ cURL

curl -X GET "https://api.nasey.com/v1/customers" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE" \
  -H "Content-Type: application/json"

حدود الاستخدام

لضمان استقرار الخدمة للجميع، نطبق حدود على عدد الطلبات التي يمكن إرسالها.

الحدود الحالية

  • الخطة الأساسية: 1,000 طلب/ساعة
  • الخطة الاحترافية: 5,000 طلب/ساعة
  • خطة الشركات: 20,000 طلب/ساعة
  • حد الانفجار: 100 طلب/دقيقة

Headers الاستجابة

كل استجابة تحتوي على معلومات حول حالة حدود الاستخدام:

Header الوصف مثال
X-RateLimit-Limit العدد الأقصى للطلبات في الساعة 5000
X-RateLimit-Remaining عدد الطلبات المتبقية 4987
X-RateLimit-Reset وقت إعادة تعيين الحد (Unix timestamp) 1640995200

التعامل مع تجاوز الحد

عند تجاوز الحد، ستحصل على:

  • HTTP Status: 429 Too Many Requests
  • Retry-After header: يحدد متى يمكن المحاولة مرة أخرى
  • رسالة خطأ: توضح سبب الرفض

إدارة العملاء

endpoints لإدارة بيانات العملاء في النظام.

GET

احصل على قائمة العملاء

GET /customers

يعيد قائمة بجميع العملاء مع إمكانية التصفية والبحث.

المعاملات (Query Parameters)
المعامل النوع إجباري الوصف
page integer اختياري رقم الصفحة (افتراضي: 1)
limit integer اختياري عدد النتائج (افتراضي: 50، أقصى: 100)
search string اختياري البحث في الاسم أو البريد الإلكتروني
status string اختياري active, inactive, pending
مثال على الطلب
curl -X GET "https://api.nasey.com/v1/customers?page=1&limit=10&search=أحمد" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE"
مثال على الاستجابة
{
  "success": true,
  "data": [
    {
      "id": 123,
      "name": "أحمد محمد السعيد",
      "email": "ahmed@example.com",
      "phone": "+966501234567",
      "company": "شركة التقنيات المتطورة",
      "status": "active",
      "created_at": "2024-01-15T10:30:00Z",
      "updated_at": "2024-01-20T14:22:00Z"
    }
  ],
  "pagination": {
    "current_page": 1,
    "total_pages": 5,
    "total_items": 47,
    "per_page": 10
  }
}
POST

إنشاء عميل جديد

POST /customers

ينشئ عميل جديد في النظام.

معاملات الطلب (Request Body)
المعامل النوع إجباري الوصف
name string مطلوب اسم العميل كاملاً
email string مطلوب البريد الإلكتروني (يجب أن يكون فريد)
phone string اختياري رقم الهاتف
company string اختياري اسم الشركة
address object اختياري عنوان العميل
مثال على الطلب
curl -X POST "https://api.nasey.com/v1/customers" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "فاطمة أحمد الزهراني",
    "email": "fatima@techcompany.com",
    "phone": "+966501234567",
    "company": "شركة التكنولوجيا الحديثة",
    "address": {
      "street": "طريق الملك عبدالعزيز",
      "city": "الرياض",
      "country": "SA"
    }
  }'
PUT

تحديث بيانات عميل

PUT /customers/{id}

يحدث بيانات عميل موجود.

مثال على الطلب
curl -X PUT "https://api.nasey.com/v1/customers/123" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "+966502345678",
    "company": "الشركة المطورة للتقنيات"
  }'
DELETE

حذف عميل

DELETE /customers/{id}

يحذف عميل من النظام نهائياً.

تحذير: حذف العميل سيحذف أيضاً جميع الفواتير والمشاريع المرتبطة به. هذا الإجراء لا يمكن التراجع عنه.

الفواتير

endpoints لإدارة الفواتير والمدفوعات.

GET

قائمة الفواتير

GET /invoices

يعيد قائمة بجميع الفواتير مع إمكانية التصفية حسب الحالة والتاريخ.

مثال على الاستجابة
{
  "success": true,
  "data": [
    {
      "id": 1001,
      "number": "INV-2024-001",
      "customer_id": 123,
      "customer_name": "أحمد محمد السعيد",
      "amount": 5250.00,
      "tax": 787.50,
      "total": 6037.50,
      "currency": "SAR",
      "status": "paid",
      "due_date": "2024-02-15",
      "created_at": "2024-01-15T10:30:00Z"
    }
  ]
}
POST

إنشاء فاتورة جديدة

POST /invoices

ينشئ فاتورة جديدة للعميل.

معاملات الطلب
المعامل النوع إجباري الوصف
customer_id integer مطلوب معرف العميل
items array مطلوب قائمة المنتجات/الخدمات
due_date date اختياري تاريخ الاستحقاق
notes string اختياري ملاحظات إضافية

إدارة المشاريع

endpoints لإدارة المشاريع والمهام.

GET

قائمة المشاريع

GET /projects

يعيد قائمة بجميع المشاريع مع إمكانية التصفية حسب الحالة والعميل.

POST

إنشاء مشروع جديد

POST /projects

ينشئ مشروع جديد ويربطه بعميل.

Webhooks

Webhooks تتيح لك تلقي إشعارات فورية عند حدوث أحداث معينة في النظام.

الأحداث المدعومة

الحدث الوصف
customer.created تم إنشاء عميل جديد
invoice.paid تم دفع فاتورة
project.completed تم إنجاز مشروع
payment.failed فشل في عملية دفع

إعداد Webhook

curl -X POST "https://api.nasey.com/v1/webhooks" \
  -H "Authorization: Bearer YOUR_API_KEY_HERE" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://yourapp.com/webhooks/nasey",
    "events": ["invoice.paid", "customer.created"],
    "secret": "your_webhook_secret"
  }'

أكواد الأخطاء

نظام NASEY CRM API يستخدم أكواد HTTP القياسية مع رسائل خطأ واضحة.

كود HTTP المعنى الوصف
200 OK الطلب نجح
201 Created تم إنشاء المورد بنجاح
400 Bad Request خطأ في معاملات الطلب
401 Unauthorized مفتاح API غير صحيح أو منتهي الصلاحية
403 Forbidden لا تملك صلاحية للوصول
404 Not Found المورد المطلوب غير موجود
429 Too Many Requests تجاوزت حد الطلبات المسموح
500 Internal Server Error خطأ في الخادم

تنسيق رسائل الخطأ

{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "البيانات المرسلة غير صحيحة",
    "details": {
      "email": ["البريد الإلكتروني مطلوب"],
      "name": ["الاسم يجب أن يكون أكثر من 3 أحرف"]
    }
  }
}

SDKs ومكتبات البرمجة

نوفر مكتبات جاهزة لتسهيل التكامل مع API في لغات البرمجة المختلفة.

JavaScript/Node.js

npm install nasey-crm-sdk
const NASEY = require('nasey-crm-sdk');

const client = new NASEY({
  apiKey: 'YOUR_API_KEY_HERE'
});

// إنشاء عميل جديد
const customer = await client.customers.create({
  name: 'أحمد محمد',
  email: 'ahmed@example.com'
});

Python

pip install nasey-crm
from nasey_crm import Client

client = Client(api_key='YOUR_API_KEY_HERE')

# إنشاء عميل جديد
customer = client.customers.create({
    'name': 'أحمد محمد',
    'email': 'ahmed@example.com'
})

PHP

composer require nasey/crm-sdk
use Nasey\CRM\Client;

$client = new Client('YOUR_API_KEY_HERE');

// إنشاء عميل جديد
$customer = $client->customers()->create([
    'name' => 'أحمد محمد',
    'email' => 'ahmed@example.com'
]);

Ruby

gem install nasey-crm
require 'nasey/crm'

client = Nasey::CRM::Client.new(
  api_key: 'YOUR_API_KEY_HERE'
)

# إنشاء عميل جديد
customer = client.customers.create({
  name: 'أحمد محمد',
  email: 'ahmed@example.com'
})

لا تجد لغتك المفضلة؟

تواصل معنا على api@nasey.com وسنعمل على إضافة دعم للغة التي تحتاجها.