If VAT category Code (BT-118) is 'Z', or 'E', VAT exemption (or exception) reason code (BT-121) must exist with one of the values from paragraph 11.2.4 of XML implementation standards on Tax exemption (or exception) reason code - specific to Saudi Arabia.
ماذا يعني هذا؟
القاعدة تعمل على التفصيل الضريبي (BG-23) لا على البند: على كل cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory حرفه في cbc:ID هو Z أو E أو O. وتقرأ فيه رمز السبب cbc:TaxExemptionReasonCode وتقارنه بقائمة الحرف الذي بجواره، لا بالقوائم كلها. أما cac:ClassifiedTaxCategory في البند فيحمل الحرف والنسبة، ولا تنظر فيه هذه القاعدة.
والقوائم كما في الشرط المنفَّذ في حزمة الهيئة (SDK R3.4.8): للصفرية Z الرموز VATEX-SA-32 وVATEX-SA-33 وVATEX-SA-34-1 إلى VATEX-SA-34-5 وVATEX-SA-35 وVATEX-SA-36 وVATEX-SA-EDU وVATEX-SA-HEA وVATEX-SA-MLTRY؛ وللمعفاة E الرموز VATEX-SA-29 وVATEX-SA-29-7 وVATEX-SA-30؛ ولما خرج عن النطاق O رمز واحد هو VATEX-SA-OOS. فالرسالة تذكر Z وE وحدهما، والشرط يشمل O أيضًا.
وفي قائمة الصفرية داخل الحزمة أربعة رموز أخرى لا يحملها جدول الفقرة 11.2.4 في الإصدار 1.2 من معايير XML: VATEX-SA-DIPLOMAT وVATEX-SA-DUTYFREE وVATEX-SA-ROYALDECREE وVATEX-SA-32(bis). الشرط يقبلها، لكن تحقّق من الجدول الساري على zatca.gov.sa قبل أن تبني عليها.
والمقارنة حرفية: الرمز كلمة واحدة بعينها من القائمة، بحروف كبيرة؛ المسافات حوله تُحذف قبل المقارنة، أما مسافة داخله فتُسقطه. ولا تتكلم القاعدة إلا حين يوجد رمز غير فارغ: التفصيل الذي بلا رمز، أو برمز فارغ، يمرّ منها — فللغياب أكواده: BR-KSA-69 للصفرية وBR-KSA-23 للمعفاة وBR-KSA-24 لما خرج عن النطاق. فهذا الكود معناه دائمًا: كتبتَ رمزًا، وليس في قائمة فئته.
ودرجته تحذير: الفاتورة تُقبل وتُسجَّل والتحذير معها. لكن الرمز هو السند الذي من أجله لا ضريبة على هذا الوعاء، ورمز من خارج القائمة سند لا تعرفه القائمة. وحين يكون الرمز VATEX-SA-EDU أو VATEX-SA-HEA تنضمّ قاعدة أخرى درجتها خطأ: BR-KSA-49 تطلب الهوية الوطنية للمشتري.
لماذا يحدث؟
مرتّبة من الأشيع إلى الأقل شيوعًا — الأرجح أن سببك في الأول أو الثاني.
-
رمز بلا لاحقته:
VATEX-SA-34وحده، والقائمة لا تعرف إلاVATEX-SA-34-1إلىVATEX-SA-34-5؛ أو لاحقة مخترعة قياسًا عليها مثلVATEX-SA-29-1. -
تهجئة غير التهجئة:
vatex-sa-35بحروف صغيرة، أوVATEX_SA_35بشرطات سفلية، أوVATEX SA 35بمسافات. -
شرطة غير الشرطة: رمز منسوخ من ملف PDF أو Word تحوّلت فيه الشرطة العادية إلى شرطة طويلة
–، فيبدو صحيحًا للعين ولا يطابق حرفًا. -
رمز من قائمة فئة أخرى:
VATEX-SA-29(خدمات مالية معفاة) على تفصيل صفري، أوVATEX-SA-32على تفصيل معفى، أو أي رمز غيرVATEX-SA-OOSعلى تفصيل خارج النطاق — وأكثره من ربط يأخذ السبب من قائمة واحدة لكل ما ليس خاضعًا. -
نص السبب في خانة الرمز:
Export of goodsحيث يُنتظرVATEX-SA-32. -
رموز المواصفة الأوروبية من نظام مستورد، مثل
VATEX-EU-GأوVATEX-EU-O؛ القائمة السعودية لا تعرفها.
كيف تصلحه
3 خطوات، ثم أعد إرسال الفاتورة.
-
1
اجعل الرمز قيمة من قائمة مغلقة لا نصًا حرًّا
خزّن الرمز في نظامك قيمة من تعداد ثابت مربوط بفئته، لا حقلًا نصيًا يُكتب فيه ما شاء المستخدم. وإن جاءك الرمز من مدخل خارجي فوحّده مرة واحدة — حروف كبيرة ولا مسافات حوله — ثم ارفض ما لا يطابق قائمة فئته قبل أن يُبنى الـ XML، بدل أن ترسله وتنتظر التحذير. والجدول الرسمي في الفقرة 11.2.4 من معايير XML على zatca.gov.sa.
-
2
اكتبه في التفصيل الضريبي تحت الحرف الذي يخصّه
مكانه كتلة الفئة داخل التفصيل، بعد الحرف والنسبة ومعه نص السبب:
<cac:TaxCategory><cbc:ID>Z</cbc:ID><cbc:Percent>0</cbc:Percent><cbc:TaxExemptionReasonCode>VATEX-SA-35</cbc:TaxExemptionReasonCode><cbc:TaxExemptionReason>Medicines and medical equipment</cbc:TaxExemptionReason><cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme></cac:TaxCategory>. وتأكد أن الرمز من قائمة الحرف الذي فوقه: رمز صحيح تحت حرف خاطئ يسقط كما يسقط رمز مخترع. والنص نفسه له قاعدته: BR-KSA-83. -
3
اختر اللاحقة التي تصف التوريد
رموز النقل الدولي خمسة لا واحد:
VATEX-SA-34-1نقل البضائع، وVATEX-SA-34-2نقل الركاب، وVATEX-SA-34-3الخدمات المرتبطة بنقل الركاب الدولي والتابعة له، وVATEX-SA-34-4توريد وسيلة نقل مؤهلة، وVATEX-SA-34-5الخدمات المتعلقة بنقل البضائع أو الركاب. وأيّها ينطبق على توريدك سؤال ضريبي مرجعه zatca.gov.sa؛ ما تقوله القاعدة أن الرمز بلا لاحقة ليس واحدًا منها.
هذا الكود لا يمنع القبول، فالفاتورة الحالية نظامية. صحّح البيانات لتختفي التحذيرات من الفواتير القادمة.
هل يمنعه ZATCA Tools؟
نعم. رمز السبب في ZATCA Tools لا يُكتب نصًا حرًّا: يُختار من قائمة ثابتة في TaxCategories تضم خمسة عشر رمزًا، كل رمز مربوط بفئته، والدالة reasonCodeFor تُسقط أي رمز لا ينتمي إلى فئة البند قبل أن يُبنى التفصيل الضريبي — فالرمز الذي يصل إلى XML من قائمة فئته دائمًا. ونموذج الفاتورة لا يعرض إلا أسباب المعاملة المختارة، والـ API يحوّل الحروف الصغيرة إلى كبيرة ثم يردّ الطلب بخطأ 422 إن كان الرمز خارج القائمة أو من فئة أخرى، والفئة O تأخذ VATEX-SA-OOS دائمًا. وحدّان نذكرهما: قائمتنا لا تضم بعدُ VATEX-SA-MLTRY ولا الرموز الأربعة الأحدث، فمن يحتاجها لا يجدها عندنا اليوم؛ والسبب اختياري للفئتين Z وE، فإن تُرك لم يُكتب رمز أصلًا، وذلك يأتي بتحذير آخر هو BR-KSA-69 أو BR-KSA-23 لا بهذا.
أكواد لها علاقة
BR-KSA-83
تحذير
BR-KSA-69
تحذير
BR-KSA-23
تحذير
BR-KSA-24
تحذير
BR-KSA-18
يرفض الفاتورة
BR-KSA-49
يرفض الفاتورة
أسئلة شائعة
كتبت الرمز صحيحًا والتحذير باقٍ — أين الخطأ؟ +
cbc:TaxExemptionReasonCode في كل cac:TaxSubtotal حرفًا حرفًا.ما الفرق بينه وبين BR-KSA-69 و23 و24؟ +
هل يُكتب الرمز على كل بند أيضًا؟ +
cac:ClassifiedTaxCategory الحرف والنسبة، والسبب يُكتب مرة واحدة على التفصيل الضريبي لفئته، وهكذا يكتبه مثال الفاتورة المبسطة الصفرية في حزمة الهيئة نفسها. وهذه القاعدة لا تقرأ غير التفصيل.قُبلت الفاتورة مع هذا التحذير — هل عليّ شيء تجاهها؟ +
هل أستخدم VATEX-SA-DIPLOMAT أو VATEX-SA-DUTYFREE؟ +
Z، لكنهما ليسا في جدول الإصدار 1.2 من معايير XML. فتحقّق من الجدول الساري على zatca.gov.sa، ومن انطباق السند على توريدك، قبل أن تكتب أيًّا منهما.ZATCA Tools يبني التوقيع والبصمة والعدّاد والترميز عنك، ويتحقق من البيانات قبل الإرسال. ابدأ مجانًا، وبدون بطاقة ائتمانية.
ابدأ مجانًا