يحدث رفض الكمية أو السعر السالب في نظام الفوترة الوطني حين يرسل برنامجك المحاسبي فاتورة فيها بند بكمية أو بسعر وحدة أقل من الصفر. فالدليل التقني الصادر عن دائرة ضريبة الدخل والمبيعات يشترط في الكمية وفي سعر الوحدة أن يكون كل منهما أكبر من 0، ويشترط في قيمة الخصم على البند أن تُكتب بالموجب فقط.
والشرط أوسع مما يوحي به اسم المشكلة، فعبارة «أكبر من 0» تُخرج الصفر كذلك لا القيم السالبة وحدها. أما ما تريد قوله بالسطر السالب، كإرجاع سلعة أو خصم من سعرها، فله في الدليل صيغة أخرى. الخصم يُكتب موجبًا في البند نفسه، والإرجاع يُرسل في فاتورة إرجاع مستقلة بالرمز 381 تُكتب فيها الكمية المرتجعة موجبة.
يشرح هذا المقال الشرط كما ورد في الدليل التقني (الإصدار 1.5)، ثم المواضع التي قد تظهر فيها قيمة سالبة في ملف الفاتورة والصيغة المقبولة لكل منها. ويختم بخطوات الإصلاح قبل إعادة الإرسال، وطريقة التأكد من قبول الفاتورة.
لماذا يحدث رفض الكمية أو السعر السالب في نظام الفوترة الوطني
يرفض نظام الفوترة الوطني الكميات والأسعار السالبة في بنود الفاتورة، لأن الدليل التقني يضع على كل بند شروطًا لا تستوفيها هذه القيم. فكل بند يُرسل في كتلة cac:InvoiceLine، وفيها ثلاثة عناصر رقمية تحكمها هذه الشروط، هي الكمية cbc:InvoicedQuantity وسعر الوحدة cbc:PriceAmount وقيمة الخصم cbc:Amount داخل الكتلة cac:AllowanceCharge.
ويصف الدليل سعر الوحدة بأنه سعر الوحدة قبل الضريبة، ويشترط فيه هذا النص:
«عدد صحيح او عدد عشري شريطة ان تكون اكبر من 0 وخانات عشرية كحد اعلى لغاية 9».
ويشترط الدليل في الكمية الشرط نفسه، أي عددًا صحيحًا أو عشريًا أكبر من 0 بحد أعلى تسع خانات عشرية. أما قيمة الخصم على البند فيشترط أن تكون «بالموجب فقط»، بحد أعلى تسع خانات عشرية كذلك.

ولا يذكر الدليل التقني رسالة خطأ بعينها لإرسال قيمة سالبة، فلا تبحث في ملف الاستجابة عن نص محدد. اقرأ ما يعود في الحقل EINV_MESSAGE، واحكم على الفاتورة من الحقل EINV_STATUS لا من رمز HTTP وحده. فإذا عادت الحالة NOT_SUBMITTED فالفاتورة لم تُقبل، ولا يعود عليها رمز QR. ولطريقة قراءة هذه الحقول راجع مقال خطأ 400 في نظام الفوترة الوطني.
الصفر خارج الشرط أيضًا
نص الشرط «أكبر من 0»، لا «غير سالب». فالبند الذي كميته صفر أو سعر وحدته صفر لا يستوفي شرط الدليل، كما لا يستوفيه البند السالب. لذلك افحص بنود الفاتورة بحثًا عن القيم الصفرية مع القيم السالبة، فكلاهما خارج ما يشترطه الدليل لهذين العنصرين.
ولا يتناول الدليل التقني طريقة كتابة سلعة أو خدمة تُقدَّم دون مقابل في ملف الفاتورة. فإن كان في نشاطك مثل ذلك، فراجع معاملته مع محاسبك قبل أن تختار له صيغة في ملف الفاتورة، ولا تكتبه بندًا بسعر صفر.
الشروط الثلاثة على البند في الدليل التقني
يجمع الجدول التالي العناصر الثلاثة التي تحمل شرط الإشارة في البند، وما لا يستوفي شرط كل منها.
مرِّر الجدول أفقيًا لعرض بقية الأعمدة
وتدخل هذه العناصر الثلاثة في معادلات البند كلها. فمبلغ البند cbc:LineExtensionAmount يساوي (الكمية × سعر الوحدة) − الخصم، وقيمة الضريبة على البند cbc:TaxAmount في فاتورة المبيعات العامة تساوي (الكمية × سعر الوحدة − الخصم) × نسبة الضريبة، وإجمالي البند cbc:RoundingAmount يساوي مبلغ البند مضافًا إليه قيمة الضريبة. فالإشارة في المعادلة، والقيم الداخلة فيها موجبة.
ويشرح مقال بنود الفاتورة InvoiceLine في نظام الفوترة الوطني عناصر البند كلها وشروط كل عنصر، ومنها رقم البند ووحدة القياس وكتلة الضريبة. أما هذا المقال فيقف عند شرط الإشارة وحده، وما يترتب على مخالفته.
الخصم يُكتب موجبًا والمعادلة تطرحه
يأتي الخصم في البند داخل الكتلة cac:AllowanceCharge، وتُكتب قيمته في العنصر cbc:Amount. فكون المبلغ خصمًا تدل عليه الكتلة التي يُرسل فيها، وطرحه من مبلغ البند تتولاه المعادلة. لذلك لا تحتاج قيمة الخصم إلى إشارة سالبة تدل على أنها خصم، والدليل يشترط ألا تحملها.
ومن أمثلة الدليل لفاتورة الدخل بندان يوضحان ذلك. الأول 33 وحدة بسعر 2 للوحدة وخصم 2، فمبلغه 33 × 2 − 2 = 64. والثاني 10 وحدات بسعر 5 وخصم 5، فمبلغه 10 × 5 − 5 = 45. والخصم في البندين مكتوب رقمًا موجبًا (2 و5)، والطرح في المعادلة.
وتأتي مجاميع هذه الفاتورة في المثال نفسه موجبة كلها. فالمبلغ قبل الخصم 116، ومجموع الخصم 7، وإجمالي الفاتورة 109.
وتنتقل قيم الخصم من البنود إلى رأس الفاتورة. فالعنصر AllowanceTotalAmount يساوي مجموع خصومات البنود، وكذلك قيمة الخصم في كتلة cac:AllowanceCharge على مستوى الفاتورة، ويجب أن يساوي كلاهما مجموع خصومات البنود. فإذا كُتب خصم أحد البنود بإشارة سالبة، انتقلت الإشارة إلى هذين المجموعين أيضًا.
والخصم في ملف نظام الفوترة الوطني خصم بند. فالنظام لا يقبل خصمًا مستقلًا على إجمالي الفاتورة، وما يظهر في رأس الملف من خصم هو مجموع خصومات البنود. فإذا خصم برنامجك من إجمالي الفاتورة، وجب توزيع الخصم على البنود قبل الإرسال، فتُكتب حصة كل بند موجبة في بنده. ولا يحل محل ذلك سطر مستقل بسعر سالب يمثل الخصم.
من أين تأتي القيمة السالبة في ملف الفاتورة
لا يذكر الدليل أسباب ظهور القيم السالبة في ملفات الفواتير. لكن بعض العمليات المحاسبية قد يمثلها برنامج البائع بسطر سالب، وكل واحدة منها لها في الدليل صيغة بقيم موجبة. ويعرض الجدول التالي هذه الحالات، ومع كل حالة الشرط الذي تخالفه والصيغة التي يضعها الدليل.
والحالتان الأولى والأخيرة هما ما يقود إلى فاتورة الإرجاع. أما الحالات الثلاث الأخرى فتُصلح داخل الفاتورة نفسها، بنقل الخصم إلى مكانه في البند وكتابته موجبًا.
فاتورة الإرجاع 381 بدل السطر السالب
الفاتورة التي صدرت عبر نظام الفوترة الوطني لا تُعدَّل بعد إصدارها، ولا يُرسل في فاتورة لاحقة سطر سالب يُنقص أثرها. والتصحيح يكون بفاتورة إرجاع، وعلى الكميات فقط. وتفصيل ما يمكن فعله بعد الإصدار وما لا يمكن في مقال تعديل فاتورة نظام الفوترة الوطني.
يقرأ النظام نوع المستند من العنصر cbc:InvoiceTypeCode. فالقيمة 388 تعني فاتورة جديدة، والقيمة 381 تعني فاتورة إرجاع، وهي من الناحية القانونية إشعار دائن. وتحمل فاتورة الإرجاع في السمة name رمز نوع الفاتورة الأصلية نفسه، ولا يتغير إلا الرقم داخل العنصر، وتُكتب بعملة الفاتورة الأصلية نفسها. فالمثال إرجاع على فاتورة دخل محلية نقدية.

فالرمز 381 هو ما يجعل المستند إرجاعًا، والكمية المرتجعة فيه تُكتب موجبة كما في فاتورة البيع. وينص الدليل على أن الكمية المرتجعة يمكن أن تكون «كاملة او جزء منها … برقم صحيح او بأجزاء عشرية»، وتبقى أكبر من الصفر.
ما تحمله فاتورة الإرجاع
يضع الدليل التقني لفاتورة الإرجاع شروطًا تربطها بالفاتورة الأصلية، وكلها بقيم موجبة.
- مرجع الفاتورة الأصلية. تحمل الكتلة
cac:BillingReferenceرقم الفاتورة الأصليةcbc:IDومعرّفها الفريدcbc:UUID، وفيcbc:DocumentDescriptionإجمالي الفاتورة الأصلية. - سبب الإرجاع. سبب الإرجاع إلزامي، ويُكتب نصًا حرًا في العنصر
cbc:InstructionNoteداخل الكتلةcac:PaymentMeans. - بيانات البند كما في الأصل. رقم البند
cbc:IDواسم السلعة أو الخدمةcbc:Nameوسعر الوحدةcbc:PriceAmountتُكتب «كما هو في الفاتورة الاصلية». - الإرجاع على الكميات فقط. لا تتجاوز الكمية المرتجعة الكمية المباعة في الفاتورة الأصلية، ويجوز أن تتعدد فواتير الإرجاع الجزئي على فاتورة واحدة حتى تنفد كمياتها.
- بيانات المشتري نفسها. ينص الدليل على أنه «يجب أن تتوافق بيانات المشتري في فاتورة الإرجاع مع بياناته في فاتورة البيع الأصلية المرتبطة بها».
- مجاميع الجزء المرتجع وحده. تغطي مجاميع فاتورة الإرجاع «الجزء المراد ارجاعه»، وفي إرجاع فاتورة المبيعات العامة تحمل ضريبتها «مجموع قيم الضريبة المراد ارجاعها من الفاتورة».

ولحد الكمية المرتجعة وما يحدث حين يتجاوز الإرجاع الكمية المباعة مقال مستقل في هذه السلسلة، هو مقال الإرجاع الذي يتجاوز الكمية الأصلية في نظام الفوترة الوطني.
الخصم في الإرجاع الجزئي
إذا كان على البند الأصلي خصم، فيحدد الدليل ما يُكتب منه في بند الإرجاع بهذا النص:
«اذا كان الارجاع لكامل كمية السلعة او الخدمة فيجب وضع الخصم (إن وجد) كاملا، أما اذا كان الارجاع لجزء من الكمية فيجب ان يكون الخصم (إن وجد) جزء من الخصم الكلي للسلعة او الخدمة حسب الكمية المرجعة».
ولا يضع الدليل صيغة حسابية لهذه الحصة، والقراءة الظاهرة لعبارة «حسب الكمية المرجعة» أنها بنسبة الكمية. فعلى سبيل التوضيح لا الصيغة الرسمية، لو أُرجعت 3 وحدات من البند الثاني في المثال السابق (10 وحدات بسعر 5 وخصم 5)، لكان بند الإرجاع كما في الجدول. وكل قيمه موجبة.
ولشرح المستند نفسه وحقوله وأمثلته راجع مقال إشعار الدائن في نظام الفوترة الوطني.
إن كانت الفاتورة الأصلية صادرة من البوابة
في نموذج الفاتورة على بوابة نظام الفوترة الوطني تأتي الكمية وسعر الوحدة حقلين إجباريين، ويأتي حقل قيمة الخصم بقيمة افتراضية هي 0. ويذكر دليل الأسئلة والأجوبة أن المنصة تتيح إرجاع الفواتير المرسلة عبرها في جميع الحالات، سواء تم الربط أم لا. ولخطوات تنظيم الفاتورة من البوابة راجع مقال إصدار فاتورة من نظام الفوترة الوطني.
خطوات الإصلاح قبل إعادة الإرسال
إذا رُفضت فاتورة وفي بنودها قيمة سالبة أو صفرية، فهذه خطوات الإصلاح بترتيبها.
- اقرأ ملف الاستجابة. سجّل الحالة في
EINV_STATUSونص الرسالة فيEINV_MESSAGEقبل أي تعديل، فقد يكون في الفاتورة سبب رفض آخر غير الإشارة. - افحص كل بند. تأكد أن
cbc:InvoicedQuantityوcbc:PriceAmountأكبر من 0 في كل بند، وأن كل قيمة خصم مكتوبة دون إشارة سالبة. - حدّد العملية وراء القيمة. اسأل عما أراد البرنامج قوله بالسطر السالب، أهو خصم أم إرجاع أم إنقاص لفاتورة سابقة، واختر الصيغة المقابلة من جدول الحالات أعلاه.
- إن كانت خصمًا. انقله إلى كتلة
cac:AllowanceChargeفي البند المخصوم واكتبه موجبًا، ثم أعد حساب مبلغ البند وضريبته وإجماليه، ثم مجاميع الرأس كلها. فخصم يتغير مكانه دون إعادة حساب المجاميع قد يقود إلى رفض آخر، هو ما يشرحه مقال رسالة Total General Amount is Not Correct. - إن كانت إرجاعًا. احذف السطر السالب من فاتورة البيع، وأرسل فاتورة البيع بما بيع فعلًا. ثم أصدر فاتورة إرجاع بالرمز 381 تشير إلى الفاتورة المقبولة التي يُرجع منها، بكمية موجبة.
- أعد الإرسال بالمعرّف نفسه. يوصي الدليل عند فشل الإرسال بإعادة الإرسال برقم الفاتورة
cbc:IDومعرّفهاcbc:UUIDنفسيهما، لا بمعرّف جديد. - تأكد من القبول. الفاتورة المقبولة تعود حالتها
SUBMITTEDومعها رمز QR في الحقلEINV_QR. احفظ رقم الفاتورة ومعرّفها ورمز QR وحالتها، ويجب إظهار رمز QR على فاتورة البائع.
متى تتواصل مع الدائرة
إذا استوفت بنود الفاتورة كل الشروط السابقة وبقيت مرفوضة، فارجع إلى نص الرسالة العائدة، فالسبب حينئذ في عنصر آخر من الملف. ويحيل الدليل التقني الاستفسارات إلى لجنة الدعم الفني لشؤون الفوترة في دائرة ضريبة الدخل والمبيعات، عبر موقع الدائرة.
كيف يساعدك قيود
حين تصدر فاتورتك من برنامج محاسبي، لا تكتب ملف XML بيدك. يبني تكامل قيود مع نظام الفوترة الوطني ملف الفاتورة بصيغة UBL 2.1 ومعرّفها الفريد، ويرسله دون أي تدخل يدوي. ويعمل كذلك على هذه الطبقة.
- فحص قبل الإرسال. يفحص قيود كل فاتورة على مستوى الحقول لحظة إنشائها، ومنها الرقم الضريبي ونوع المستند وطريقة الدفع ونسبة ضريبة المبيعات العامة واكتمال البنود، وينبهك بأي خطأ قبل إرسالها لتقليل حالات الرفض.
- حالة كل فاتورة أمامك. تعيد الدائرة حالة الفاتورة ورسالة الخطأ، ويعرضها قيود في لوحة الحالة.
- قائمة بما يحتاج إعادة إرسال. تعرض لوحة الحالة الفواتير التي لم تُرسل وتحتاج إلى إعادة إرسال.
- إعادة إرسال بالمعرّف نفسه. تعيد إرسال الفاتورة بمعرّف UUID نفسه.
والفحص المسبق تنبيه لا ضمان. فهو يغطي الحقول المذكورة، ويبقى قبول الفاتورة لنظام الفوترة الوطني وحده.
أين تذهب بعد هذا المقال
- عناصر البند كلها: في مقال بنود الفاتورة InvoiceLine وقيودها.
- بقية رموز الرفض ورسائله: في مقال أخطاء نظام الفوترة الوطني: لماذا تُرفض فاتورتك وكيف تصلحها.
- الصورة الكاملة للنظام: في مقال نظام الفوترة الوطني الإلكتروني في الأردن.
- حد الكمية المرتجعة: في مقال الإرجاع الذي يتجاوز الكمية الأصلية في نظام الفوترة الوطني.
فوترة إلكترونية ومحاسبة متكاملة في نظام واحد
قيود متكامل مع نظام الفوترة الوطني (JoFotara). تُصدر فاتورتك بالدينار الأردني من قيود فتُقيَّد في دفاترك تلقائيًا وتُرسل إلى النظام، وبعد قبولها يعود عليها رمز QR من دائرة ضريبة الدخل والمبيعات.
الأسئلة الشائعة
لماذا يرفض نظام الفوترة الوطني الكمية أو السعر السالب؟
يشترط الدليل التقني في الكمية وفي سعر الوحدة أن يكون كل منهما عددًا صحيحًا أو عشريًا أكبر من 0، بحد أعلى تسع خانات عشرية. فالبند الذي يحمل كمية أو سعرًا سالبًا لا يستوفي هذا الشرط.
هل يقبل النظام كمية أو سعر وحدة يساوي صفرًا؟
يشترط الدليل أن تكون القيمة أكبر من 0، والصفر لا يستوفي هذا الشرط. لذلك يدخل البند الصفري في الفحص مع البند السالب.
كيف أكتب الخصم على البند دون إشارة سالبة؟
يُكتب الخصم رقمًا موجبًا في العنصر cbc:Amount داخل كتلة AllowanceCharge في البند نفسه، والمعادلة هي التي تطرحه، فمبلغ البند يساوي الكمية × سعر الوحدة − الخصم. وإن كان الخصم على إجمالي الفاتورة فيُوزَّع على البنود قبل الإرسال، لأن النظام لا يقبل خصمًا مستقلًا على الإجمالي.
كيف أُرجع جزءًا من فاتورة مقبولة دون قيم سالبة؟
يُصدر البائع فاتورة إرجاع بالرمز 381 تشير إلى رقم الفاتورة الأصلية ومعرّفها وإجماليها، وتحمل سبب الإرجاع. وتُكتب فيها الكمية المرتجعة موجبة، ولا تتجاوز الكمية المباعة في الأصل، ويبقى رقم البند واسم السلعة وسعر الوحدة كما في الفاتورة الأصلية.
ما رسالة الخطأ التي تظهر عند إرسال قيمة سالبة؟
لا يذكر الدليل التقني رسالة بعينها لهذه الحالة. لذلك اقرأ ما يعود في الحقل EINV_MESSAGE من ملف الاستجابة، واحكم على الفاتورة من الحقل EINV_STATUS، فالحالة NOT_SUBMITTED تعني أنها لم تُقبل.
هل أولّد معرّفًا فريدًا جديدًا عند إعادة الإرسال بعد الإصلاح؟
يوصي الدليل بإعادة الإرسال برقم الفاتورة ومعرّفها الفريد نفسيهما. فالفاتورة المرفوضة لم تُقبل، وتوليد معرّف جديد في كل محاولة قد يؤدي إلى تكرار الفواتير.
المراجع
- دائرة ضريبة الدخل والمبيعات، الدليل التقني للربط مع نظام الفوترة الوطني من خلال واجهة برمجة التطبيقات (API)، الإصدار 1.5، 2026.
- دائرة ضريبة الدخل والمبيعات، دليل إجراءات تنظيم الفاتورة في نظام الفوترة الوطني، إصدار 2026.
- دائرة ضريبة الدخل والمبيعات، دليل الأسئلة والأجوبة لنظام الفوترة الوطني، 2026.
