ف فواترا

المصادقة والمفاتيح

كل طلب (ما عدا GET /v1/plans) يحتاج مفتاح API في ترويسة Authorization:

Authorization: Bearer fwt_live_K8mP2nQ9xY4vB7cL3dF6gH1j

كبديل متوافق مع بعض العملاء، تُقبل أيضًا الترويسة X-Api-Key بنفس القيمة.

لا تخلط بين مفتاحين. fwt_… يصادقك لدينا. أمّا Client-Id و Secret-Key فيصادقان منشأتك لدى البوابة، وتصدرهما من شاشة «ربط الأجهزة» في منصة الفوترة الوطني وتضعهما في الإعدادات مرّة واحدة — انظر مفاتيح البوابة من المنصة.

وضعا المفاتيح

البادئةالوضعالسلوك
fwt_test_ اختبار لا اتصال بالبوابة إطلاقًا. استجابة محاكاة فورية، فواتير غير محدودة، لا أثر ضريبي.
fwt_live_ إنتاج إرسال فعلي إلى بوابة الفوترة الوطنية. يُحسب على حصة خطتك الشهرية.

كل ردّ يحمل ترويسة X-Fawtara-Mode بقيمة live أو test — استخدمها كحماية إضافية في نظامك.

الصلاحيات (Scopes)

امنح كل مفتاح أقل صلاحية يحتاجها. المفتاح الذي لا يملك الصلاحية يُرفض برمز 403 insufficient_scope.

الصلاحيةالوصفالنقاط المتأثّرة
invoices:writeإنشاء وإرسال الفواتير والمرتجعاتPOST /v1/invoices, /credit-notes, /retry, /preview
invoices:readقراءة الفواتير والسجل والـ UBL والـ QRGET /v1/invoices…
webhooks:writeإدارة نقاط الإشعار/v1/webhooks
account:readقراءة بيانات الحساب والاستهلاك/v1/account, /v1/usage

تخزين المفتاح

  • لا تضع المفتاح في كود الواجهة (JavaScript في المتصفّح أو تطبيق جوّال) — المفتاح يمنح صلاحية إصدار فواتير باسم منشأتك.
  • استخدم متغيّرات البيئة أو خدمة أسرار، ولا تُدخله في مستودع الكود.
  • نحتفظ بـ بصمة SHA-256 للمفتاح فقط، لذا لا يمكننا استعادته لك — أنشئ مفتاحًا جديدًا إن فُقد.

التبديل الآمن (Rotation)

1

أنشئ مفتاحًا جديدًا بنفس الصلاحيات.

2

انشره في بيئة نظامك وتأكّد من نجاح الطلبات (راقب سجل الطلبات).

3

أبطِل المفتاح القديم. الإبطال يسري فورًا ويُعيد 401 revoked_api_key.

أخطاء المصادقة

الرمزerror.typeالسبب
401missing_api_keyلم تُرسل ترويسة Authorization.
401invalid_api_keyالمفتاح غير موجود أو به خطأ نسخ.
401revoked_api_keyأُبطل المفتاح من اللوحة.
401expired_api_keyانتهت صلاحية المفتاح.
403insufficient_scopeالمفتاح لا يملك الصلاحية المطلوبة.
403account_suspendedالحساب موقوف إداريًا.
إذا استخدمت Apache، تأكّد أن ترويسة Authorization تُمرَّر إلى PHP. ملف .htaccess المرفق مع المنصّة يفعل ذلك عبر E=HTTP_AUTHORIZATION.