TAC Flow Partner API
واجهة ربط مستقرة لسحب بيانات شركتك إلى أنظمتك — تخطيط الموارد، والمحاسبة، وإدارة الصيانة، ولوحات التقارير، والتكاملات المخصصة — مع إشعارات لحظية موقّعة عند وقوع الأحداث التشغيلية. كل الردود معزولة بشركة المفتاح وصلاحياته ووحدات الشركة المفعلة.
التوثيق
curl -H "Authorization: Bearer tacp_live_..." \ "https://tacflow.app/api/partner/v1/assets?page=1&limit=100"
البدء في خمس خطوات
بالصلاحيات المطلوبة من شاشة «الربط والتكامل» واحفظه فور ظهوره.
على نقطة الأصول بالأمر أعلاه — سترجع أصول شركتك خلال ثوانٍ.
استخدم page وlimit للترقيم، وupdated_since للمزامنة التزايدية الدورية.
عنوان استقبال + الأحداث المطلوبة، واحفظ سر التوقيع.
لكل إشعار وارد قبل معالجته — المثال البرمجي في قسم الإشعارات أدناه.
الترقيم والمزامنة
| المعامل | الوصف |
|---|---|
page | رقم الصفحة — الافتراضي 1 |
limit | حجم الصفحة — الافتراضي 50 والأقصى 200 |
updated_since | تاريخ بصيغة ISO-8601 — يرجع السجلات المُنشأة أو المحدثة بعده فقط، للمزامنة الدورية بلا سحب كامل |
{ "data": [ ... ],
"pagination": { "page": 1, "limit": 50, "total": 1234, "has_more": true } }نقاط القراءة
/api/partner/v1/assets
سجل المعدات والمركبات بحالتها ومواقعها، شاملًا الأصول المُسقطة من الأسطول.
| المعامل | النوع | الوصف |
|---|---|---|
page | integer | رقم الصفحة (الافتراضي 1) |
limit | integer | حجم الصفحة (الافتراضي 50، الأقصى 200) |
updated_since | date-time | المزامنة التزايدية — السجلات بعد هذه اللحظة فقط |
asset_class | string | تصفية حسب الفئة: مركبة أو معدة ثقيلة |
status | string | تصفية حسب الحالة التشغيلية |
include_decommissioned | boolean | شمول الأصول المُسقطة (الافتراضي: نعم) |
curl -H "Authorization: Bearer tacp_live_..." \ "https://tacflow.app/api/partner/v1/assets?page=1&limit=100"
/api/partner/v1/maintenance-reports
تقارير الصيانة المعتمدة بمهامها وتكاليفها وقراءات العدادات.
| المعامل | النوع | الوصف |
|---|---|---|
page | integer | رقم الصفحة (الافتراضي 1) |
limit | integer | حجم الصفحة (الافتراضي 50، الأقصى 200) |
updated_since | date-time | المزامنة التزايدية — السجلات بعد هذه اللحظة فقط |
equipment_id | string | تصفية حسب الأصل |
from | date | من تاريخ |
to | date | إلى تاريخ |
curl -H "Authorization: Bearer tacp_live_..." \ "https://tacflow.app/api/partner/v1/maintenance-reports?from=2026-07-01&to=2026-07-31"
/api/partner/v1/incidents
بلاغات الأعطال بحالتها وتكاليفها.
| المعامل | النوع | الوصف |
|---|---|---|
page | integer | رقم الصفحة (الافتراضي 1) |
limit | integer | حجم الصفحة (الافتراضي 50، الأقصى 200) |
updated_since | date-time | المزامنة التزايدية — السجلات بعد هذه اللحظة فقط |
equipment_id | string | تصفية حسب الأصل |
status | string | تصفية حسب الحالة |
from | date | من تاريخ |
to | date | إلى تاريخ |
curl -H "Authorization: Bearer tacp_live_..." \ "https://tacflow.app/api/partner/v1/incidents?status=open"
/api/partner/v1/movements
حركات الأصول والعُهد: من أين إلى أين ومن المستلم.
| المعامل | النوع | الوصف |
|---|---|---|
page | integer | رقم الصفحة (الافتراضي 1) |
limit | integer | حجم الصفحة (الافتراضي 50، الأقصى 200) |
updated_since | date-time | المزامنة التزايدية — السجلات بعد هذه اللحظة فقط |
equipment_id | string | تصفية حسب الأصل |
from | date | من تاريخ |
to | date | إلى تاريخ |
curl -H "Authorization: Bearer tacp_live_..." \ "https://tacflow.app/api/partner/v1/movements?equipment_id=<id>"
/api/partner/v1/fuel/dispenses
عمليات صرف الديزل الداخلي من الصهاريج للمعدات.
| المعامل | النوع | الوصف |
|---|---|---|
page | integer | رقم الصفحة (الافتراضي 1) |
limit | integer | حجم الصفحة (الافتراضي 50، الأقصى 200) |
updated_since | date-time | المزامنة التزايدية — السجلات بعد هذه اللحظة فقط |
equipment_id | string | تصفية حسب الأصل |
tanker_id | string | تصفية حسب الصهريج |
from | date | من تاريخ |
to | date | إلى تاريخ |
curl -H "Authorization: Bearer tacp_live_..." \ "https://tacflow.app/api/partner/v1/fuel/dispenses?from=2026-07-01"
/api/partner/v1/fuel/transactions
حركات بطاقات الوقود للمركبات (محايد لمزوّد الخدمة).
| المعامل | النوع | الوصف |
|---|---|---|
page | integer | رقم الصفحة (الافتراضي 1) |
limit | integer | حجم الصفحة (الافتراضي 50، الأقصى 200) |
updated_since | date-time | المزامنة التزايدية — السجلات بعد هذه اللحظة فقط |
plate_number | string | تصفية حسب رقم اللوحة |
from | date | من تاريخ |
to | date | إلى تاريخ |
curl -H "Authorization: Bearer tacp_live_..." \ "https://tacflow.app/api/partner/v1/fuel/transactions?from=2026-07-01&to=2026-07-31"
/api/partner/v1/meters/readings
قراءات الكيلومترات وساعات التشغيل لكل أصل.
| المعامل | النوع | الوصف |
|---|---|---|
page | integer | رقم الصفحة (الافتراضي 1) |
limit | integer | حجم الصفحة (الافتراضي 50، الأقصى 200) |
updated_since | date-time | المزامنة التزايدية — السجلات بعد هذه اللحظة فقط |
equipment_id | string | تصفية حسب الأصل |
meter_type | string | نوع العداد |
from | date | من تاريخ |
to | date | إلى تاريخ |
curl -H "Authorization: Bearer tacp_live_..." \ "https://tacflow.app/api/partner/v1/meters/readings?equipment_id=<id>&from=2026-07-01"
/api/partner/v1/inspections
نتائج الفحص اليومي المعتمدة بملخصها.
| المعامل | النوع | الوصف |
|---|---|---|
page | integer | رقم الصفحة (الافتراضي 1) |
limit | integer | حجم الصفحة (الافتراضي 50، الأقصى 200) |
updated_since | date-time | المزامنة التزايدية — السجلات بعد هذه اللحظة فقط |
equipment_id | string | تصفية حسب الأصل |
result | string | تصفية حسب النتيجة |
from | date | من تاريخ |
to | date | إلى تاريخ |
curl -H "Authorization: Bearer tacp_live_..." \ "https://tacflow.app/api/partner/v1/inspections?result=needs_action"
الصلاحيات
| Scope | الوصف |
|---|---|
assets:read | قراءة الأصول |
maintenance:read | قراءة تقارير الصيانة |
incidents:read | قراءة البلاغات |
movements:read | قراءة الحركات |
fuel:read | قراءة الوقود |
meters:read | قراءة العدادات |
inspections:read | قراءة الفحص اليومي |
webhooks:manage | إدارة الإشعارات اللحظية |
الإشعارات اللحظية
| Event | الحدث |
|---|---|
incident.reported | تسجيل بلاغ عطل |
maintenance_report.approved | اعتماد تقرير صيانة |
movement.approved | اعتماد حركة |
fuel.dispense_recorded | تسجيل عملية وقود |
asset.decommissioned | إسقاط أصل من الأسطول |
X-TacFlow-Event X-TacFlow-Signature: sha256=<hex> X-TacFlow-Delivery X-TacFlow-Retry
const crypto = require('crypto')
function verifyTacFlowSignature(rawBody, signatureHeader, secret) {
// signatureHeader = 'sha256=<hex>' (X-TacFlow-Signature)
const expected = 'sha256=' + crypto.createHmac('sha256', secret).update(rawBody).digest('hex')
return crypto.timingSafeEqual(Buffer.from(signatureHeader), Buffer.from(expected))
}رموز الأخطاء
{ "error": { "code": "insufficient_scope", "message": "..." } }unauthorized key_expired key_revoked insufficient_scope module_disabled subscription_suspended invalid_request rate_limited not_found method_not_allowed server_errorحدود الطلبات
120 طلبًا في الدقيقة لكل مفتاح — عند التجاوز يرجع رمز 429 مع ترويسة Retry-After، وترويسات X-RateLimit-Limit وX-RateLimit-Remaining مرافقة لكل رد ناجح.
