Skip to content

مرجع نقاط نهاية API

مرجع كامل لجميع نقاط نهاية API وقتي. تتطلب جميع النقاط المصادقة وتُرجع استجابات JSON.

عنوان الأساس

https://{your-tenant}.waqti.net/api/v1

أوامر الشراء (Purchase Orders)

قائمة أوامر الشراء

http
GET /purchase-orders

معاملات الاستعلام:

المعاملالنوعالوصف
pageintegerرقم الصفحة (الافتراضي: 1)
per_pageintegerعناصر لكل صفحة (الافتراضي: 15، الحد الأقصى: 100)
statusstringتصفية حسب الحالة: draft، pending، approved، rejected
approval_statusstringتصفية حسب حالة الموافقة
department_idintegerتصفية حسب القسم
vendor_idintegerتصفية حسب المورد
from_datedateأوامر شراء أُنشئت في هذا التاريخ أو بعده
to_datedateأوامر شراء أُنشئت في هذا التاريخ أو قبله
sort_bystringالحقل للفرز (الافتراضي: created_at)
sort_orderstringasc أو desc (الافتراضي: desc)

مثال الطلب:

bash
curl -X GET "https://acme.waqti.net/api/v1/purchase-orders?status=approved&per_page=25" \
  -H "Authorization: Bearer 3|a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0" \
  -H "Accept: application/json"

مثال الاستجابة:

json
{
  "success": true,
  "data": [
    {
      "id": 123,
      "po_number": "PO-000123",
      "vendor": {
        "id": 45,
        "name": "Tech Supplies Ltd"
      },
      "department": {
        "id": 12,
        "name": "IT Department"
      },
      "total_inc_vat": 15000.00,
      "currency": "SAR",
      "status": "approved",
      "approval_status": "approved",
      "request_date": "2025-01-15",
      "required_date": "2025-01-30",
      "created_at": "2025-01-15T10:30:00Z"
    }
  ],
  "meta": {
    "current_page": 1,
    "per_page": 25,
    "total": 150,
    "last_page": 6
  }
}

الحصول على أمر شراء واحد

http
GET /purchase-orders/{id}

مثال الاستجابة:

json
{
  "success": true,
  "data": {
    "id": 123,
    "po_number": "PO-000123",
    "vendor": {
      "id": 45,
      "name": "Tech Supplies Ltd",
      "contact_email": "sales@techsupplies.com"
    },
    "department": {
      "id": 12,
      "name": "IT Department"
    },
    "requester": {
      "id": 78,
      "name": "Ahmed Mohammed"
    },
    "lines": [
      {
        "id": 456,
        "line_number": 1,
        "description": "Laptop Dell XPS 15",
        "quantity": 5,
        "unit_price": 2500.00,
        "vat_rate": 15,
        "vat_amount": 1875.00,
        "total_ex_vat": 12500.00,
        "total_inc_vat": 14375.00
      }
    ],
    "documents": [
      {
        "id": 789,
        "filename": "quotation.pdf",
        "url": "/api/v1/documents/789/download"
      }
    ],
    "total_ex_vat": 12500.00,
    "total_vat": 1875.00,
    "total_inc_vat": 14375.00,
    "status": "approved",
    "created_at": "2025-01-15T10:30:00Z"
  }
}

إنشاء أمر شراء

http
POST /purchase-orders

جسم الطلب:

json
{
  "department_id": 12,
  "vendor_id": 45,
  "required_date": "2025-02-15",
  "description": "Office equipment purchase",
  "expense_type": "OPEX",
  "currency": "SAR",
  "lines": [
    {
      "description": "Laptop Dell XPS 15",
      "quantity": 5,
      "unit_price": 2500.00,
      "vat_percentage": 15
    },
    {
      "description": "Monitor 27\"",
      "quantity": 10,
      "unit_price": 800.00,
      "vat_percentage": 15
    }
  ]
}

الاستجابة:

json
{
  "success": true,
  "message": "Purchase Order created successfully",
  "data": {
    "id": 124,
    "po_number": "PO-000124",
    ...
  }
}

الموافقة على أمر شراء

http
POST /purchase-orders/{id}/approve

جسم الطلب:

json
{
  "comments": "Approved for IT budget Q1"
}

رفض أمر شراء

http
POST /purchase-orders/{id}/reject

جسم الطلب:

json
{
  "reason": "Budget exceeded for this quarter"
}

الموردون (Vendors)

قائمة الموردين

http
GET /vendors

معاملات الاستعلام:

المعاملالنوعالوصف
searchstringبحث بالاسم أو البريد
statusstringactive، inactive، blacklisted
categorystringتصفية حسب فئة المورد

الحصول على مورد واحد

http
GET /vendors/{id}

إنشاء مورد

http
POST /vendors

جسم الطلب:

json
{
  "name": "Tech Supplies Ltd",
  "contact_person": "John Smith",
  "contact_email": "john@techsupplies.com",
  "contact_phone": "+966 50 123 4567",
  "address": "Riyadh, Saudi Arabia",
  "tax_number": "3001234567",
  "payment_terms": "net_30",
  "category": "IT Equipment"
}

تحديث مورد

http
PUT /vendors/{id}

الفواتير (Invoices)

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

http
GET /invoices

الحصول على فاتورة واحدة

http
GET /invoices/{id}

إنشاء فاتورة

http
POST /invoices

جسم الطلب:

json
{
  "purchase_order_id": 123,
  "invoice_number": "INV-2025-001",
  "invoice_date": "2025-01-20",
  "due_date": "2025-02-19",
  "lines": [
    {
      "po_line_id": 456,
      "quantity": 5,
      "unit_price": 2500.00
    }
  ]
}

الميزانيات (Budgets)

قائمة الميزانيات

http
GET /budgets

تفاصيل ميزانية

http
GET /budgets/{id}

تتضمن الاستجابة:

  • المبالغ المخصصة (CAPEX/OPEX)
  • المبالغ المنفقة
  • المبالغ المحجوزة (أوامر شراء معلقة)
  • المبالغ المتاحة
  • نسب الاستخدام

التقارير (Reports)

تقرير الإنفاق

http
GET /reports/spending

معاملات الاستعلام:

المعاملالنوعالوصف
from_datedateتاريخ البداية
to_datedateتاريخ النهاية
group_bystringdepartment، vendor، category، month

تقرير أداء الموردين

http
GET /reports/vendor-performance

تقرير حالة أوامر الشراء

http
GET /reports/po-status

تقرير مطابقة الفواتير

http
GET /reports/invoice-matching

Webhooks

قائمة Webhooks

http
GET /webhooks

إنشاء Webhook

http
POST /webhooks

جسم الطلب:

json
{
  "url": "https://your-system.com/waqti-webhook",
  "events": ["po.approved", "po.rejected", "invoice.created"],
  "secret": "your-webhook-secret"
}

اختبار Webhook

http
POST /webhooks/{id}/test

أحداث Webhook

الحدثالوصف
po.createdتم إنشاء أمر شراء
po.submittedأُرسل أمر الشراء للموافقة
po.approvedوُافق على أمر الشراء
po.rejectedرُفض أمر الشراء
po.updatedحُدّثت تفاصيل أمر الشراء
invoice.createdأُنشئت فاتورة
invoice.matchedطُابقت الفاتورة مع أمر الشراء
vendor.createdأُضيف مورد جديد
budget.alertبُلغت عتبة الميزانية

معالجة الأخطاء

تتبع جميع الأخطاء تنسيقًا موحدًا:

json
{
  "success": false,
  "message": "The given data was invalid.",
  "errors": {
    "vendor_id": ["The vendor id field is required."],
    "lines": ["At least one line item is required."]
  }
}

رموز حالة HTTP

الرمزالوصف
200نجاح
201تم الإنشاء
400طلب غير صالح — معاملات غير صحيحة
401غير مصرح — رمز غير صالح أو مفقود
403ممنوع — صلاحيات غير كافية
404غير موجود
422خطأ تحقق
429طلبات كثيرة جدًا
500خطأ داخلي في الخادم

Built by M & L Technologies