BR-KSA-EN16931-07 يرفض الفاتورة

سعر الوحدة الصافي لا يساوي سعرها قبل الخصم ناقص خصمها

متى صرّح البند بسعر الوحدة قبل الخصم، وجب أن يساوي سعرها الصافي ذلك السعر ناقص خصم السعر، والاثنان للوحدة الواحدة. ودرجته خطأ، فالفاتورة تُرفض. وكتابة خصم البند كله في موضع خصم الوحدة تكسر القاعدة متى زادت الكمية على واحد.

نص الرسالة كما ترسلها الهيئة بالإنجليزية، بلا تعديل

Item net price (BT-146) must equal (Item Gross price (BT-148) - Allowance amount (BT-147)) when gross price is provided.

ماذا يعني هذا؟

ثلاثة أرقام على سعر واحد داخل cac:InvoiceLine/cac:Price، كلها للوحدة الواحدة وكلها دون الضريبة. السعر الصافي للصنف (BT-146) هو cbc:PriceAmount. والسعر قبل الخصم (BT-148) هو cac:AllowanceCharge/cbc:BaseAmount داخل السعر نفسه، وخصم السعر (BT-147) هو cbc:Amount إلى جانبه. والقاعدة عملية طرح: الصافي يساوي ما قبل الخصم ناقص الخصم.

ولا تتكلم إلا حين يوجد السعر قبل الخصم. الرسالة تقول ذلك، ومعيار تنفيذ XML الذي تنشره الهيئة يجعل سياق القاعدة cac:Price/cac:AllowanceCharge، أي كتلة الخصم داخل السعر. فالبند الذي لا يحمل سعره إلا cbc:PriceAmount لا يعطيها ما تقارنه.

والخصم المقصود خصمٌ على السعر لا على البند. قاموس البيانات يصف BT-147 بأنه لا ينطبق إلا حين يكون الخصم للوحدة الواحدة، في مستوى السعر لا في مستوى البند. أما الخصم على البند كله فعنصر آخر: خصم تحت cac:InvoiceLine مباشرة (BT-136)، يدخل صافي البند عبر BR-KSA-EN16931-11 لا عبر هذه القاعدة.

ودرجته خطأ: الفاتورة تُرفض، ولا يُسجَّل عند الهيئة شيء حتى تُصحَّح وتُرسل من جديد.

لماذا يحدث؟

مرتّبة من الأشيع إلى الأقل شيوعًا — الأرجح أن سببك في الأول أو الثاني.

  • خصم البند كله مكتوب خصمًا على السعر: ثلاث وحدات بسعر 100.00 وخصم 30.00 على البند تعطي سعرًا قبل الخصم 100.00 وخصمًا 30.00 وصافيًا 90.00، بينما 100.00 ناقص 30.00 تساوي 70.00.
  • السعر الصافي متروك على سعر القائمة والخصم مصرَّح به إلى جانبه: قبل الخصم 100.00، والخصم 10.00، والصافي 100.00.
  • نسبة مكتوبة في موضع المبلغ: 10 يُقصد بها 10% من سعر 250.00، فيُقارَن 250.00 ناقص 10.00 بصافٍ قدره 225.00.
  • سعر قبل الخصم شامل للضريبة إلى جانب صافٍ غير شامل لها، وقاموس البيانات يعرّف الاثنين دون الضريبة.
  • الخصم والصافي محسوبان كلٌّ على حدة من نسبة، ومقرَّبان كلٌّ وحده: متى وقع الخصم الدقيق على نصف هللة اختلف التقريبان بهللة.

كيف تصلحه

3 خطوات، ثم أعد إرسال الفاتورة.

  1. 1
    احسب للوحدة ثم اطرح

    خذ سعر الوحدة قبل الخصم في BT-148، وخصم الوحدة الواحدة في BT-147، واكتب BT-146 فرقهما، والثلاثة بمنزلتين عشريتين ودون الضريبة. ثلاث وحدات بسعر 100.00 وخصم 10%: cbc:BaseAmount 100.00، وcbc:Amount 10.00، وcbc:PriceAmount 90.00. ثم يكون صافي البند 3 × 90.00 = 270.00، وذلك فحص مستقل هو BR-KSA-EN16931-11.

  2. 2
    قرّب مرة واحدة واشتقّ الباقي

    قرّب الخصم إلى منزلتين أولًا ثم اطرحه من السعر قبل الخصم. ولا تقرّب الصافي في مسار مستقل: الرقم المشتق بالطرح لا يمكن أن يخالف عملية الطرح.

  3. 3
    أخرج خصم البند كله من السعر

    إن كان الخصم للبند لا لكل وحدة — 25.00 على ثلاث وحدات مثلًا، وهو لا ينقسم عليها بالهللات — فلا تحشره خصمًا على السعر. صرّح به خصمًا على البند: cac:AllowanceCharge تحت cac:InvoiceLine مباشرة، وقيمة cbc:ChargeIndicator فيه false، وتطرحه BR-KSA-EN16931-11 من الكمية مضروبةً في السعر الصافي.

بعد التصحيح أعد إرسال الفاتورة. الفاتورة المرفوضة لم تُسجَّل عند الهيئة، فلا تحتاج إشعارًا دائنًا — أرسل الفاتورة الصحيحة نفسها.

هل يمنعه ZATCA Tools؟

نعم، لأن مستنداتنا لا تصرّح بسعر قبل الخصم أصلًا. خصم البند يُطرح من سعر الوحدة قبل التوقيع، فيحمل cbc:PriceAmount السعر المدفوع فعلًا، ولا يحمل السعر غيره: مُولِّد الحمولة لا يمرّر إلى المكتبة إلا مبلغ السعر ورمز الوحدة، والمكتبة لا تكتب خصمًا على مستوى السعر إلا إن سُلِّم إليها. والخصم على مستوى المستند يُوزَّع على أسعار وحدات البنود كذلك، والهللات القليلة التي لا تتوزع تُصرَّح في مستوى المستند لا على سعر. فما دام BT-148 غائبًا عن الملف فشرط هذه القاعدة لا يتحقق أبدًا. وقرأنا المخرَج بأنفسنا للتأكد: ثلاث وحدات بسعر 100.00 وخصم 10% تخرج بسعر وحدة 90.00، بلا خصم ولا مبلغ أساس تحت السعر. والنصف الآخر بصراحة: ملف XML الموقَّع يحمل السعر الصافي، لا سعر القائمة والخصم؛ وهذان مطبوعان على الفاتورة.

أكواد لها علاقة

BR-KSA-EN16931-11
نص الرسالة الرسمي فيالمرجع الكامل.
BR-KSA-EN16931-06
نص الرسالة الرسمي فيالمرجع الكامل.
BR-KSA-F-04 يرفض الفاتورة
مبلغ أو كمية بالسالب

أسئلة شائعة

خصم السعر للوحدة أم للبند كله؟ +
للوحدة. قاموس البيانات يصف خصم السعر (BT-147) بأنه لا ينطبق إلا حين يكون الخصم للوحدة الواحدة، في مستوى السعر لا البند. والخصم على البند كله مكانه خصم البند (BT-136)، وتطرحه BR-KSA-EN16931-11 من الكمية مضروبةً في السعر الصافي.
هل ChargeIndicator في خصم السعر true أم false؟ +
مصدران رسميان يشيران في اتجاهين، وليست هذه مسألة هذه القاعدة. قاموس البيانات يذكر مؤشر خصم السعر بقيمة ثابتة false، ورسالة BR-KSA-EN16931-06 — ودرجتها خطأ — تقول إن المؤشر ينبغي أن يكون true. والذي نقرؤه نصوص القواعد ودرجاتها لا شروط تنفيذها، فلا نستطيع أن نقول لك أيّهما يفرضه المتحقق: انظر ما يعود في ردك تحت BR-KSA-EN16931-06. وهذه القاعدة لا تفعل غير الطرح.
هل أستطيع حذف السعر قبل الخصم؟ +
حينها لا يبقى لهذه القاعدة ما تفحصه، لأن شرطها وجود ذلك السعر. ويبقى cbc:PriceAmount مطالَبًا بحمل ما دُفع فعلًا، ويبقى صافي البند مساويًا للكمية مضروبةً في ذلك السعر بحكم BR-KSA-EN16931-11. وهكذا تُبنى المستندات التي نصدرها. أما هل يلزم ظهور الخصم نفسه في الـ XML فسؤال آخر لا تجيب عنه هذه القاعدة.
هل يُتسامح في فرق هللة؟ +
الرسالة تقول «يجب أن يساوي»، ونحن نقرأ الرسالة لا شرط التنفيذ، فلا نستطيع أن نعدك بأي هامش. ابنِ الأرقام الثلاثة بحيث يكون الطرح دقيقًا بمنزلتين: قرّب الخصم ثم اطرحه. وطريقة قراءة بقية رد الرفض في فاتورتي مرفوضة من الهيئة.
أصلحت هذه — ولا تريد التالية

ZATCA Tools يبني التوقيع والبصمة والعدّاد والترميز عنك، ويتحقق من البيانات قبل الإرسال. ابدأ مجانًا، وبدون بطاقة ائتمانية.

ابدأ مجانًا

← كل أكواد أخطاء ZATCA