Currency code (BT-5) must be according to ISO 4217:2005
ماذا يعني هذا؟
العنصر هو cbc:DocumentCurrencyCode في مستوى الفاتورة. ورموز ISO 4217 الحرفية ثلاثة حروف كبيرة لا غير: SAR وUSD وEUR وAED. والفحص على انتماء القيمة إلى تلك القائمة وحده، لا على ما تبيع ولا على من تبيع له ولا على صحة المبالغ.
وعلامة العملة ليست رمزها. SR و«ر.س» و«ريال» وعلامة الريال كلها تسميات للورقة على المستند المطبوع، وليست قيمًا في قائمة ISO 4217. وحدها الحروف الثلاثة تُكتب في هذا الحقل.
وللمعيار صورة رقمية كذلك — 682 للريال — وهي تمثيل آخر للعملة نفسها. والذي نقرؤه من المخطط المُصرَّف نصُّ القاعدة ودرجتها لا شرطُ التنفيذ، فلا نستطيع أن نجزم لك كيف تُعامَل القيمة الرقمية هنا. وأمثلة الهيئة كلها تكتب الحروف الثلاثة، فاكتبها.
وهذه القاعدة وأختها BR-KSA-CL-02 نصفان لسؤال واحد: هذه تسأل هل القيمة صحيحة، وتلك تسأل هل يردّدها المستند كله. فالملف الذي يكتب EUR في الترويسة وSAR على أحد البنود يمرّ من هنا ويسقط هناك. وثمّة حقل ثالث مختلف تمامًا هو عملة الاحتساب الضريبي (BT-6): BR-KSA-68 تشترط وجوده، وBR-KSA-EN16931-02 تشترط أن تكون قيمته SAR.
لماذا يحدث؟
مرتّبة من الأشيع إلى الأقل شيوعًا — الأرجح أن سببك في الأول أو الثاني.
- نقطة بيع أو قالب يطبع علامة العملة على الورقة ويمرّر النص نفسه إلى ملف XML.
-
حروف صغيرة من عمود في قاعدة البيانات قيمته
sar. -
اسم العملة بدل رمزها — «ريال سعودي» أو
Saudi Riyal— من حقل إعدادات وُضع أصلًا للعرض. - عنصر فارغ أو فيه مسافة بيضاء، من ربط كانت قيمته المصدر خالية. وغياب القيمة ليس قيمةً في ISO 4217.
-
رمز مخترع أو بأربعة حروف:
SAUDأوSRLأوRS. -
رمز لغة أو إقليم التُقط من مكتبة تنسيق:
ar-SA.
كيف تصلحه
3 خطوات، ثم أعد إرسال الفاتورة.
-
1
اكتب الحروف الثلاثة
العنصر
cbc:DocumentCurrencyCodeبالقيمةSAR، بحروف كبيرة وبلا مسافات محيطة. واكتبه ثابتًا في الكود لا إعدادًا يُقرأ من المنشأة: الفاتورة السعودية بالريال، ولا شيء هنا يُشتقّ — وكل حقل يُشتقّ حقلٌ يستطيع أن يخطئ. -
2
افصل العرض عن الحقل
العلامة والاسم والاختصار كلها شأن المستند المطبوع، وهذا الحقل قيمة من قائمة مغلقة يقرؤها متحقق آلي. ونصّ واحد لا يصلح للأمرين معًا، وهذا الخلط بعينه هو أصل هذا الكود: حقل إعدادات اسمه «العملة» يُستعمل مرة للطباعة ومرة للتصدير.
-
3
ثم افحص الاتساق وعملة الاحتساب
بعد أن تصحّ القيمة يبقى سؤالان: هل تردّدها كل خاصية
currencyIDعلى المبالغ — وذلك BR-KSA-CL-02؛ وهل يحمل المستند عملة الاحتساب الضريبي وقيمتها SAR — وذلك BR-KSA-68 وBR-KSA-EN16931-02. وطريقة قراءة قائمة الأخطاء كاملةً في فاتورتي مرفوضة من الهيئة.
بعد التصحيح أعد إرسال الفاتورة. الفاتورة المرفوضة لم تُسجَّل عند الهيئة، فلا تحتاج إشعارًا دائنًا — أرسل الفاتورة الصحيحة نفسها.
هل يمنعه ZATCA Tools؟
نعم، وبشكل المنتج لا بالتحقق. القيمة SAR مكتوبة نصًّا ثابتًا في مُولِّد الحمولة تحت المفتاح currencyCode، ولا يوجد في المنتج عمود عملة — لا على المنشأة ولا على الفاتورة ولا في حمولة الـ API ولا في تكاملات المتاجر — يمكن أن تُشتقّ منه قيمة أخرى. فالقيمة لا تخطئ لأنها ليست قابلة للضبط أصلًا. والنصف الآخر بالأمانة نفسها: الفوترة بعملة أجنبية غير مدعومة عندنا، ومن يبيع بالدولار لن يصدر فاتورته من هنا.
أكواد لها علاقة
أسئلة شائعة
أبيع بالدولار — هل يجوز أن تكون BT-5 هي USD؟ +
USD رمز معتمد في ISO 4217، وهي لا تفحص غير ذلك. والذي لا يتغيّر عملةُ الاحتساب الضريبي (BT-6) فتبقى SAR بنص BR-KSA-EN16931-02. أما هل يجوز لتوريدك أن يُفوتر بعملة أجنبية فسؤال ضريبي مرجعه zatca.gov.sa، ولا يقرّره ملف XML.هل أكتب علامة الريال في الفاتورة؟ +
هل الحروف الصغيرة مقبولة؟ +
ZATCA Tools يبني التوقيع والبصمة والعدّاد والترميز عنك، ويتحقق من البيانات قبل الإرسال. ابدأ مجانًا، وبدون بطاقة ائتمانية.
ابدأ مجانًا