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
احسب للوحدة ثم اطرح
خذ سعر الوحدة قبل الخصم في BT-148، وخصم الوحدة الواحدة في BT-147، واكتب BT-146 فرقهما، والثلاثة بمنزلتين عشريتين ودون الضريبة. ثلاث وحدات بسعر 100.00 وخصم 10%:
cbc:BaseAmount100.00، وcbc:Amount10.00، وcbc:PriceAmount90.00. ثم يكون صافي البند3 × 90.00 = 270.00، وذلك فحص مستقل هوBR-KSA-EN16931-11. -
2
قرّب مرة واحدة واشتقّ الباقي
قرّب الخصم إلى منزلتين أولًا ثم اطرحه من السعر قبل الخصم. ولا تقرّب الصافي في مسار مستقل: الرقم المشتق بالطرح لا يمكن أن يخالف عملية الطرح.
-
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
يرفض الفاتورة
أسئلة شائعة
خصم السعر للوحدة أم للبند كله؟ +
BR-KSA-EN16931-11 من الكمية مضروبةً في السعر الصافي.هل ChargeIndicator في خصم السعر true أم false؟ +
BR-KSA-EN16931-06 — ودرجتها خطأ — تقول إن المؤشر ينبغي أن يكون true. والذي نقرؤه نصوص القواعد ودرجاتها لا شروط تنفيذها، فلا نستطيع أن نقول لك أيّهما يفرضه المتحقق: انظر ما يعود في ردك تحت BR-KSA-EN16931-06. وهذه القاعدة لا تفعل غير الطرح.هل أستطيع حذف السعر قبل الخصم؟ +
cbc:PriceAmount مطالَبًا بحمل ما دُفع فعلًا، ويبقى صافي البند مساويًا للكمية مضروبةً في ذلك السعر بحكم BR-KSA-EN16931-11. وهكذا تُبنى المستندات التي نصدرها. أما هل يلزم ظهور الخصم نفسه في الـ XML فسؤال آخر لا تجيب عنه هذه القاعدة.هل يُتسامح في فرق هللة؟ +
ZATCA Tools يبني التوقيع والبصمة والعدّاد والترميز عنك، ويتحقق من البيانات قبل الإرسال. ابدأ مجانًا، وبدون بطاقة ائتمانية.
ابدأ مجانًا