BR-KSA-F-06-C28 تحذير — الفاتورة تُقبل

حي المشتري (KSA-4) بلا قيمة، أو أطول من الحد

الحي هو الجزء الذي لا يملكه أحد في بياناته، فالإغراء أن يُملأ باسم المدينة أو بشرطة — وهذا أسوأ من تركه، لأنه يُسكت الكود ويُبقي على المستند حيًّا ليس حيّ المشتري. تحذير لا رفض: الفاتورة تُقبل والملاحظة تعود معها.

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

Field character limits for the Buyer Address - District field (KSA-4) have not been met. The minimum limit is 1 character and the maximum limit is 127 characters.

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

ما تعيده واجهة الهيئة المباشرة نصًّا: [BR-KSA-F-06-C28] - Field character limits for the Buyer Address - District field (KSA-4) have not been met. The minimum limit is 1 character and the maximum limit is 127 characters. وهو يطابق نص مستخرج SDK المطبوع أعلى الصفحة.

الحقل هو KSA-4، أي cbc:CitySubdivisionName داخل cac:AccountingCustomerParty/cac:Party/cac:PostalAddress. وهو الحقل الوحيد من عناصر العنوان الستة الذي لا يوجد له مقابل في أكثر نماذج العناوين الأجنبية، ولذلك يصل فارغًا أكثر من غيره بكثير.

والقاعدة قاعدة طول: أقلّ من محرف واحد يُخفق، وأكثر من 127 يُخفق. لا تسأل عن الوجود — ذلك سؤال BR-KSA-63 التي تُحصي العناصر الستة للمشتري السعودي وتسمّي الحي بينها.

ورأينا هذا الكود يعود في تشغيل مباشر على فاتورة قياسية عنوان مشتريها فيه الشارع والمدينة والرمز البريدي، وينقصه الحي ورقم المبنى — ومعه BR-KSA-63. أي أن الحقل الغائب كفى لإخفاق قاعدة الطول، لا الحقل المكتوب فارغًا وحده. وفي المقابل، فاتورة أخرى في اليوم نفسه خلا عنوان مشتريها من كل شيء فعادت بـ BR-KSA-63 وBR-KSA-10 وقاعدتي طول الشارع والمدينة — وليس هذه. المستخرج الذي نعمل عليه يعطينا نص كل قاعدة ودرجتها لا شرط تنفيذها، فلا نستطيع أن نقول لك لماذا افترقت الحالتان؛ ما نستطيع قوله إن الغياب وحده كافٍ لعودة هذا التحذير، فلا تبنِ على أن حذف العنصر يُسكته.

ودرجتها تحذير: الهيئة تُجيز الفاتورة ويعود التحذير مع القبول، فلا يتوقف بيع على حيٍّ لا يعرفه المشتري نفسه أحيانًا. لكن المستند يبقى ناقص الحي في دفترك ودفتر المشتري، وهو مما قد يسأل عنه قسم الحسابات لديه أو من يراجع دفاترك — والتحذير يعود مع كل فاتورة لذلك العميل ما دام سجله على حاله.

لماذا يحدث؟

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

  • قالب يطبع <cbc:CitySubdivisionName> في كل فاتورة، فيخرج فارغًا حين يخلو العمود — وهو العمود الأكثر خلوًّا في أي قاعدة عملاء.
  • نموذج العنوان في نظامك ليس فيه حقل للحي أصلًا: العنوان الأجنبي يعرف الشارع والمدينة والولاية والرمز البريدي، ولا يعرف الحي. فيُكتب العنصر لأن المعيار السعودي يطلبه، ولا توجد قيمة تملؤه.
  • خلط بين الحي والمنطقة الإدارية في الربط: بعض المنصات تسمّي حقل المنطقة province أو state وتتركه فارغًا في العناوين السعودية، فإذا رُبط بالحي خرج الحي فارغًا في كل فاتورة.
  • اختلاف التسمية بين طرفي الربط: district في جهة وsubdivision أو neighborhood في أخرى، فلا يُطابَق الحقلان ويبقى العنصر مكتوبًا بلا قيمة.
  • عنوان شحن منقول كما هو من متجر إلكتروني: عنوان توصيل بصياغة حرة لا عنوان وطني، والحي فيه جزء من سطر لا حقل قائم بذاته.
  • الحدّ الأعلى من الجهة الأخرى، وهو نادر: وصف موقع كامل كُتب في خانة الحي — «خلف المسجد، بجوار…» — يتجاوز 127 محرفًا.

كيف تصلحه

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

  1. 1
    لا تملأ الحي بالمدينة، ولا بشرطة

    هذه أهم جملة في الصفحة. اسم المدينة في خانة الحي يستوفي محرفًا واحدًا فيسكت الكود، ويترك على مستند ضريبي موقَّع حيًّا ليس حيّ المشتري — ومستند يقول «الرياض» حيث ينبغي أن يقول «الملقا» خطأ يراه القارئ بعينه. والشرطة والنقطة والأصفار وكلمة «لا يوجد» كلها من الباب نفسه: قيم تمرّ من قاعدة الطول وتكذب على المستند. التحذير المسجَّل أصدق منها جميعًا.

  2. 2
    خذ الحي من العنوان الوطني، فهو مصدره الوحيد

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

  3. 3
    أضف حقلًا للحي، لا تُعِر حقلًا آخر

    إن كان نموذج العنوان في نظامك أجنبيًّا فلا تربط الحي بحقل المنطقة أو الولاية لأنه أقرب الموجود. أضف عمودًا مستقلًا اسمه الحي واربطه بـ KSA-4 وحده، واجعل مُولِّد XML يكتب العنصر حين يكون في العمود قيمة لا قبل ذلك. حقل مُعار يملأ اليوم بالخطأ ويُصعِّب التصحيح غدًا.

  4. 4
    صحّح سجل العميل — والفاتورة الصادرة لا تُعاد

    الفاتورة التي حملت التحذير مُجازة ولا تحتاج إعادة إصدار لتُقبل. صحّح الحي في سجل العميل فتخرج فواتيره التالية نظيفة. وفي المرور نفسه راجع جيرانه: الشارع بنصّ BR-KSA-F-06-C23، والمدينة بنصّ BR-KSA-F-06-C25، والعناصر الستة مجتمعةً في BR-KSA-63.

هذا الكود لا يمنع القبول، فالفاتورة الحالية نظامية. صحّح البيانات لتختفي التحذيرات من الفواتير القادمة.

هل يمنعه ZATCA Tools؟

الجزء الذي يخصّ الفراغ والقيمة المخترعة: نعم، وبقرار صريح. حي العميل في ZATCA Tools لا يُملأ من المدينة في أي مسار — لا في نموذج الفاتورة، ولا في الـ API، ولا في تكاملات المتاجر، ولا في عنوان المنشأة نفسه — واختباران في المستودع يثبتان ذلك: أحدهما يتحقّق أن اسم المدينة يظهر في المستند مرة واحدة بوصفه مدينة، والآخر أن منشأة بلا حي تُرسل مستندًا بلا عنصر حي لا مستندًا يحمل مدينتها مكانه. والحي الخالي — أو المكتوب مسافات، فالتسوية تحذفها — يُحذف من الحمولة قبل بنائها، ومُولِّد XML يكتب العنصر فقط حين تكون له قيمة، ومكتبة التوقيع ترفض سلسلة فارغة فيه. ولا شرطة ولا علامة تحلّ محلّه في الملف المُرسَل. والجزء الذي لا نمنعه، بالأمانة نفسها: هذا التحذير عاد علينا في تشغيل مباشر على فاتورة كان الحي فيها غائبًا لا فارغًا، فغيابه لا يمنعه. ويُسمّى الحي بالاسم في تنبيه تحت اسم العميل في نموذج الفاتورة، وفي نافذة عند الإصدار تعرض إكمال البيانات أو المتابعة. وحدٌّ واحد يستحق الذكر: الحي لا يمنع اعتبار العميل جاهزًا لفاتورة ضريبية — الهوية وحدها هي الشرط — فهو مذكور في التنبيه ولا يقف في طريق الإصدار، وهو قرار مقصود لأن القاعدة تحذير في قائمة الهيئة نفسها.

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

أسئلة شائعة

هل رُفضت فاتورتي لأن الحي ناقص؟ +
لا. درجة هذا الكود تحذير: الفاتورة تُجاز ويُسجَّل التحذير معها. فإن كانت مرفوضة فعلًا فالسبب كود في errorMessages لا في warningMessages. وطريقة قراءة الرد في فاتورتي مرفوضة من الهيئة.
العميل لا يعرف حيّه — ما البديل؟ +
العنوان الوطني المختصر: أربعة أحرف وأربعة أرقام يحملها كل عنوان وطني مسجَّل، ومنها يخرج الحي مع الشارع ورقم المبنى والرمز البريدي. وإلى أن يصل، أصدر والحقل غائب والتحذير مسجَّل. لا تضع المدينة ولا «حي غير معروف».
الحي والمنطقة الإدارية — أيّهما يقصد الكود؟ +
الحي داخل المدينة: العليا، المروج، النزهة. والمنطقة الإدارية — الرياض، مكة المكرمة، الشرقية — ليست حيًّا وليس لها حقل في عنوان الفاتورة أصلًا. وكتابتها في KSA-4 تُسكت الكود وتضع على المستند معلومة خاطئة.
هل تنطبق هذه القاعدة على البائع؟ +
لا. هذه على المشتري (KSA-4). ولحي البائع (KSA-3) قاعدة طول مستقلة هي BR-KSA-F-06-C9، ومعها قاعدة الوجود BR-KSA-09. القاعدتان متطابقتان في النص ومختلفتان في الجهة التي تُقاس.
حذفت العنصر ومع ذلك عاد التحذير — لماذا؟ +
لأن الحدّ الأدنى محرف واحد، وصفر محرف هو ما يقدّمه العنصر الغائب كما يقدّمه العنصر الفارغ — وهذا ما رأيناه في تشغيل مباشر. ولا نعرف شرط تنفيذ المتحقّق لنفسّر لك أكثر من ذلك، فالمستخرج الذي نفهرسه يحمل نص القواعد ودرجاتها لا اختباراتها. الذي يُسكت الكود يقينًا قيمة حقيقية في الحقل.
هل يظهر هذا التحذير في الفواتير المبسطة؟ +
نادرًا، لأن المبسطة لا تحمل في العادة عنوان مشترٍ فلا حقل حي فيها يُقاس. أما الفاتورة الضريبية B2B فهي موضع هذا الكود عمليًّا. والفرق بين النوعين في الفاتورة الضريبية والمبسطة: الفرق ومتى تستعمل كلًّا منهما.
أصلحت هذه — ولا تريد التالية

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

ابدأ مجانًا

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