ف فواترا

نظرة عامة

فواترا طبقة وسيطة (API Gateway) بين نظامك ونظام الفوترة الوطني الأردني (JoFotara). ترسل إلينا الفاتورة بصيغة JSON مألوفة، فنقوم نحن بما يلي:

  1. التحقّق من صحّة البيانات وحساب الإجماليات والضريبة بدقّة ثلاث خانات عشرية.
  2. تخصيص UUID وعدّاد ICV تصاعدي لا يتكرّر لمنشأتك.
  3. بناء مستند UBL 2.1 مطابق لمتطلّبات البوابة، وترميزه base64.
  4. الإرسال إلى البوابة بترويستي Client-Id و Secret-Key الخاصّتين بمنشأتك.
  5. تفسير الردّ، واستخراج محتوى رمز QR، وتخزين الطلب والردّ كاملين للتدقيق.
  6. إشعار نظامك عبر Webhook موقّع (في الخطط المدفوعة).

الأساسيات

العنوان الأساسيhttps://fawtara.codexal.co/api/v1
المصادقةAuthorization: Bearer <API_KEY>
صيغة الطلبapplication/json بترميز UTF-8
صيغة الردّJSON — كل ردّ ناجح يحتوي data، وكل خطأ يحتوي error
العملةJOD افتراضيًا، بثلاث خانات عشرية
الإصدارv1 — أي تغيير غير متوافق سيصدر تحت v2

شكل الردّ

الاستجابة الناجحة:

{
  "data": {
    "id": "inv_7a2f9c1b4e8d0536",
    "object": "invoice",
    "mode": "live",
    "invoice_number": "INV-1001",
    "status": "accepted",
    "qr_content": "AQ3YtNix...",
    "qr_image_url": "https://fawtara.codexal.co/api/v1/invoices/inv_7a2f9c1b4e8d0536/qr.png",
    "totals": { "subtotal": 150.000, "tax_total": 0.000, "total": 150.000 }
  }
}

الاستجابة في حالة الخطأ:

{
  "error": {
    "type": "validation_error",
    "message": "بيانات الطلب غير صحيحة.",
    "fields": {
      "lines.0.unit_price": ["سعر الوحدة مطلوب ولا يقبل القيم السالبة."]
    }
  }
}

حالات الفاتورة

الحالةالمعنىالإجراء المطلوب منك
pendingأُنشئت ولم يكتمل الإرسال.استعلم مرة أخرى أو أعد المحاولة.
acceptedقُبلت من البوابة ورمز QR متاح.اطبع الفاتورة مع الرمز.
rejectedرفضتها البوابة لخطأ في البيانات.اقرأ error.message، صحّح، ثم retry.
errorخطأ تقني (شبكة أو بيانات اعتماد).أعد المحاولة لاحقًا أو تحقّق من الإعدادات.

قبل أن تبدأ

  • سجّل منشأتك لدى دائرة ضريبة الدخل والمبيعات واحصل على Client-Id و Secret-Key من شاشة «ربط الأجهزة» — الخطوات بالصور في مفاتيح البوابة من المنصة.
  • اعرف نوع تكليفك: دخل، أو مبيعات، أو مبيعات خاصة — فهو يُحدّد بنية الفاتورة.
  • اعرف تسلسل مصدر الدخل الخاص بك من البوابة.
  • أنشئ حساب مطوّر هنا، وابدأ على بيئة الاختبار قبل الإنتاج.
ملاحظة مهمّة: نُولّد مستند UBL وفق المواصفة المنشورة، لكن البوابة قد تطبّق قواعد تحقّق خاصّة بنوع تكليف منشأتك. استخدم POST /v1/invoices/preview لمعاينة الـ XML قبل الإرسال، وابدأ بفاتورة واحدة حقيقية للتأكّد قبل تحويل كل حركتك.