ساب بزنس ون (SAP Business One) في السعودية: زاتكا المرحلة الثانية وضريبة 15% والفاتورة العربية

بقلم زين عباس, كودينوفا · آخر تحديث

الإجابة المختصرةيعمل ساب بزنس ون (SAP Business One) في المملكة العربية السعودية على توطين Central MENA من SAP. ضريبة القيمة المضافة 15%، والمرحلة الثانية من الفاتورة الإلكترونية لدى هيئة الزكاة والضريبة والجمارك (زاتكا)، المطبّقة على موجات منذ 1 يناير 2023، تتطلب فواتير XML مبنية على UBL 2.1 مع ختم تشفيري ورمز QR. تعتمد زاتكا الفواتير الضريبية القياسية قبل وصولها إلى المشتري، وتُبلَّغ الفواتير المبسطة خلال 24 ساعة.

ساب بزنس ون (SAP Business One) هو نظام ERP من SAP للشركات الصغيرة والمتوسطة، مثل شركات التوزيع والتجارة والتصنيع والخدمات التي تجاوزت برامج المحاسبة لكنها لا تحتاج نظامًا للمؤسسات الكبرى. ويعمل في المملكة على توطين Central MENA من SAP. ثلاث قواعد تشكّل النظام: ضريبة القيمة المضافة بنسبة 15%، والفواتير باللغة العربية، والفاتورة الإلكترونية من هيئة الزكاة والضريبة والجمارك (زاتكا)، التي تربط مرحلتها الثانية نظام الفوترة لديك بمنصة فاتورة (Fatoora). تغطي هذه الصفحة القواعد الثلاث، مع استعلام SQL و HANA لفحص الضريبة حسب رمز الضريبة.

أنا زين عباس، مطوّر ساب بزنس ون. المملكة العربية السعودية من الدول الـ13 التي لكودينوفا عملاء فيها، وقد بنينا ZatcaBridge، وهو جسر جاهز للتثبيت يعتمد فواتير SAP Business One لدى زاتكا ويبلّغ عنها. أما الحقائق التنظيمية أدناه فمصدرها هيئة الزكاة والضريبة والجمارك وتوثيق SAP نفسه، والروابط كلها في النهاية.

ما دور برنامج ساب بزنس ون في الشركات السعودية؟

في الشركة السعودية يجمع ساب بزنس ون المبيعات والمشتريات والمخزون والبنوك ودفتر الأستاذ العام في قاعدة بيانات واحدة، على SQL Server أو SAP HANA. وفي بوابة SAP Help توثَّق المملكة العربية السعودية ضمن توطين مشترك واحد هو Central MENA/AE/EG/LB/OM/QA/SA:

المجالما توثّقه SAP لتوطين Central MENA (بما فيه السعودية)
إعداد الضريبةمجموعات الضريبة وتعريفاتها، وقواعد تحديد رموز الضريبة، ورموز ضريبة الاستقطاع
التقارير الضريبيةخانات الإقرار الضريبي مع تعريفات الصفوف، والتقرير الضريبي، وتقرير خانات الإقرار، وتقرير التسوية الضريبية
المستنداتتخصيص أرقام الفوليو (Folio) والتحقق منها للمستندات المطبوعة
البنوكالشيكات المؤجلة، والكمبيالات

يُختار التوطين عند إنشاء قاعدة بيانات الشركة ولا يمكن تغييره لاحقًا. لكن التوطين لا يحدد لك طريقة تطبيق الفاتورة الإلكترونية من زاتكا؛ فذلك يعتمد على إصدار ساب بزنس ون لديك وعلى التكامل الذي تختاره، لذلك اسأل شريك SAP لديك عمّا يغطيه إعدادك الحالي قبل التخطيط.

كيف تُعدّ ضريبة القيمة المضافة 15% في نظام ساب المحاسبي؟

رفعت المملكة نسبة ضريبة القيمة المضافة الأساسية من 5% إلى 15% في 1 يوليو 2020. بعض التوريدات خاضعة للنسبة الصفرية، وبعضها معفى، وبعضها خارج نطاق الضريبة. ويحتاج كل نوع إلى رمز ضريبة خاص في SAP B1، لأن ملف XML لدى زاتكا يحمل فئة ضريبية على كل سطر (S أو Z أو E أو O)، وتحتاج سطور النسبة الصفرية والإعفاء وخارج النطاق أيضًا إلى سبب.

المعاملةرمز الضريبة في SAP B1استرداد ضريبة المدخلات
خاضعة للنسبة الأساسيةرموز 15% للمخرجات والمدخلاتنعم
خاضعة للنسبة الصفرية (مثل تصدير السلع)رمز 0%، الفئة Z، مع السببنعم
معفاة (مثل الإيجار السكني)رمز إعفاء، الفئة E، مع السببغالبًا لا
خارج النطاقرمز مستقل، الفئة O، مع السببلا ينطبق

الرقم الضريبي. يتكون رقم التسجيل في ضريبة القيمة المضافة في السعودية من 15 رقمًا، أولها وآخرها الرقم 3. تحقّق منه في البيانات الرئيسية لشريك الأعمال (حقل Federal Tax ID)، مثلًا في SBO_SP_TransactionNotification، حتى يُوقَف الرقم الخاطئ قبل أن يصل إلى فاتورة.

فاتورة ضريبية أم فاتورة ضريبية مبسطة. يسمح دليل الفوترة لدى زاتكا بإصدار فاتورة ضريبية مبسطة للتوريد الذي تقل قيمته عن 1,000 ريال، ولأي توريد لشخص طبيعي غير خاضع للضريبة. أما التوريدات للشركات والجهات الحكومية فوق ذلك فتحتاج فاتورة ضريبية قياسية ببيانات المشتري. وفي SAP B1 يحدد ذلك المسار الذي يأخذه المستند في المرحلة الثانية.

الإعداد والتقريب والفحوص التي تجريها زاتكا مشروحة في ضريبة القيمة المضافة (15%) في SAP Business One. ولحساب المبالغ شاملة الضريبة وغير شاملة بسرعة، استخدم حاسبة ضريبة القيمة المضافة السعودية.

كيف تعمل الفاتورة الإلكترونية المرحلة الثانية من زاتكا؟

طبّقت زاتكا الفوترة الإلكترونية على مرحلتين. المرحلة الأولى، مرحلة الإصدار، بدأت في 4 ديسمبر 2021: يجب إصدار الفواتير من حل إلكتروني متوافق. المرحلة الثانية، مرحلة الربط والتكامل، تُطبَّق منذ 1 يناير 2023 على موجات: يجب أن يرتبط الحل أيضًا بأنظمة زاتكا. وهذا ما تتطلبه المرحلة الثانية وفق قرار الضوابط والمتطلبات الفنية للفوترة الإلكترونية ومعيار تطبيق XML الصادرين عن زاتكا:

  • الصيغة. تُنشأ الفواتير وإشعارات الدائن والمدين بصيغة XML، أو بصيغة PDF/A-3 مع ملف XML مضمَّن. ويتبع ملف XML مخطط UBL 2.1 Invoice، ولا يُشارك مع زاتكا إلا ملف XML.
  • الختم التشفيري. تحمل كل فاتورة إلكترونية وكل إشعار ختمًا تشفيريًا. وتُسجَّل كل وحدة فوترة عبر بوابة فاتورة وتحصل على معرّف ختم تشفيري (CSID).
  • سلسلة التجزئة و UUID. لكل مستند معرّف UUID، ويتضمن قيمة التجزئة (Hash) للفاتورة السابقة، فلا يمكن تغيير التسلسل دون أن يظهر ذلك.
  • رمز QR. في المرحلة الثانية يكون رمز QR إلزاميًا على جميع أنواع الفواتير والإشعارات الإلكترونية. وهو نص Base64 من حقول TLV: اسم البائع، والرقم الضريبي، والطابع الزمني، والإجمالي، وإجمالي الضريبة، إضافة إلى تجزئة الفاتورة والتوقيع والمفتاح العام. تعرض أداة فك رمز QR من زاتكا كل حقل.

الاعتماد أم الإبلاغ. يتبع نوعا الفواتير مسارين مختلفين:

الفاتورة الضريبية القياسية (غالبًا B2B و B2G)الفاتورة الضريبية المبسطة (غالبًا B2C)
النموذجالاعتماد (Clearance)الإبلاغ (Reporting)
من يختم الفاتورةزاتكا، بعد التحقق منهاحلّك الإلكتروني، بمعرّف CSID الخاص بك
متى تراها زاتكاقبل مشاركتها مع المشتريخلال 24 ساعة من إنشائها
ما يجب أن يحفظه SAP B1ملف XML المعتمد، و UUID، والتجزئة، ورمز QR، والحالةملف XML المبلَّغ، و UUID، والتجزئة، ورمز QR، والحالة

في ساب بزنس ون يعني ذلك تكاملًا يبني ملف XML من كل فاتورة مبيعات وإشعار دائن وإشعار مدين، ويوقّعه، ويستدعي واجهة API لدى زاتكا، ثم يكتب النتيجة في المستند حتى يُطبع رمز QR على تخطيط الفاتورة. افحص ملف XML الناتج باستخدام مدقق فواتير زاتكا المرحلة الثانية، واطّلع على ربط الفاتورة الإلكترونية من زاتكا مع SAP Business One لترى كيف نربطه.

متى تنطبق المرحلة الثانية على شركتي؟

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

الموجةمن تشملالربط بحلول
الموجة 25 (أُعلنت في 24 يوليو 2026)الإيرادات الخاضعة لضريبة القيمة المضافة فوق 187,500 ريال في أي من 2022 أو 2023 أو 2024 أو 20251 فبراير 2027

إخطار الموجة موعد لإنهاء المشروع كله، لا لبدايته. فتسجيل كل وحدة فوترة، واختبار كل نوع مستند في بيئة المحاكاة لدى زاتكا، وتصحيح البيانات الرئيسية، كلها تستغرق أسابيع. خطوات مستخدمي SAP B1 موجودة في الموجة 25 من زاتكا لمستخدمي SAP Business One.

ماذا تحتاج الفاتورة العربية والتاريخ الهجري في ساب بزنس ون؟

العربية. ينقل دليل الفواتير الضريبية والسجلات الصادر عن زاتكا نص اللائحة التنفيذية لنظام ضريبة القيمة المضافة: تصدر الفواتير باللغة العربية، إضافة إلى أي لغة أخرى، ويجب تعبئة جميع حقول الفاتورة الضريبية بالعربية. والنص العربي هو المعتمد، وأي لغة أخرى تُعد ترجمة. ويقبل الدليل أيضًا الأرقام 0-9، ورموز العملات مثل SAR، وأسماء العلم مثل أسماء المنتجات بالحروف اللاتينية.

في SAP B1 يعني ذلك عادةً:

  • الأسماء الأجنبية للأصناف وشركاء الأعمال، حتى يُحفظ الوصف العربي والإنجليزي معًا.
  • تخطيط ثنائي اللغة في Crystal Reports أو PLD يطبع العربية من اليمين إلى اليسار. وسلامة الطباعة تعتمد على تصميم التخطيط، لذلك اختبره مبكرًا.
  • النص العربي نفسه في ملف XML كما في الفاتورة المطبوعة، لأن ملف XML هو ما تستلمه زاتكا.

التاريخ الهجري. لم نجد في الدليل الذي راجعناه اشتراطًا للتاريخ الهجري في تواريخ الفاتورة الضريبية. ومع ذلك تريد شركات سعودية كثيرة التاريخ الهجري على العقود ومستندات الموارد البشرية وبعض مستندات العملاء. على SQL Server تعيد الدالة CONVERT(nvarchar(30), DocDate, 131) تاريخًا هجريًا (dd/MM/yyyy) يمكن استخدامه في استعلام أو بحث منسق أو تخطيط Crystal Reports. وتذكر Microsoft أنها تستخدم الخوارزمية الكويتية وأن للتقويم الهجري عدة صيغ، لذلك قارن النتيجة بالتقويم الذي تعتمده شركتك. أما على SAP HANA فنستخدم جدول تقويم يربط كل تاريخ ميلادي بتاريخه الهجري.

كيف أفحص ضريبة المخرجات حسب رمز الضريبة قبل الإقرار الضريبي؟

قبل أن أثق في أي تقرير ضريبي، أطابقه مع المستندات. يجمع الاستعلام فواتير المبيعات (OINV و INV1) وإشعارات الدائن (ORIN و RIN1، بالسالب) لكل رمز ضريبة لربع سنة واحد. قارن الإجماليات بتقريرك الضريبي وبما استلمته زاتكا. أي فرق يعني مشكلة في الإعداد أو التقريب أو الترحيل.

-- SQL Server: output VAT per tax code, July to September 2026
SELECT X.TaxCode,
       V.Name                AS TaxName,
       V.Rate,
       SUM(X.NetSAR)         AS NetSAR,
       SUM(X.VatSAR)         AS VatSAR
FROM (
    SELECT L.VatGroup AS TaxCode,
           L.LineTotal * (1 - ISNULL(H.DiscPrcnt, 0) / 100) AS NetSAR,
           L.VatSum AS VatSAR
    FROM OINV H
    INNER JOIN INV1 L ON L.DocEntry = H.DocEntry
    WHERE H.CANCELED = 'N'
      AND H.DocDate BETWEEN '20260701' AND '20260930'
    UNION ALL
    SELECT L.VatGroup,
           -L.LineTotal * (1 - ISNULL(H.DiscPrcnt, 0) / 100),
           -L.VatSum
    FROM ORIN H
    INNER JOIN RIN1 L ON L.DocEntry = H.DocEntry
    WHERE H.CANCELED = 'N'
      AND H.DocDate BETWEEN '20260701' AND '20260930'
) X
LEFT JOIN OVTG V ON V.Code = X.TaxCode
GROUP BY X.TaxCode, V.Name, V.Rate
ORDER BY X.TaxCode
-- SAP HANA version
SELECT X."TaxCode",
       V."Name"              AS "TaxName",
       V."Rate",
       SUM(X."NetSAR")       AS "NetSAR",
       SUM(X."VatSAR")       AS "VatSAR"
FROM (
    SELECT L."VatGroup" AS "TaxCode",
           L."LineTotal" * (1 - IFNULL(H."DiscPrcnt", 0) / 100) AS "NetSAR",
           L."VatSum" AS "VatSAR"
    FROM OINV H
    INNER JOIN INV1 L ON L."DocEntry" = H."DocEntry"
    WHERE H."CANCELED" = 'N'
      AND H."DocDate" BETWEEN '20260701' AND '20260930'
    UNION ALL
    SELECT L."VatGroup",
           -L."LineTotal" * (1 - IFNULL(H."DiscPrcnt", 0) / 100),
           -L."VatSum"
    FROM ORIN H
    INNER JOIN RIN1 L ON L."DocEntry" = H."DocEntry"
    WHERE H."CANCELED" = 'N'
      AND H."DocDate" BETWEEN '20260701' AND '20260930'
) X
LEFT JOIN OVTG V ON V."Code" = X."TaxCode"
GROUP BY X."TaxCode", V."Name", V."Rate"
ORDER BY X."TaxCode"

ملاحظات من تشغيل فحوص كهذه:

  • الريال. الحقلان LineTotal و VatSum بالعملة المحلية، لذلك يجب أن تكون العملة المحلية للشركة هي الريال السعودي (SAR).
  • الإلغاء. الشرط CANCELED = ‘N’ يستبعد الفاتورة الملغاة ومستند إلغائها معًا.
  • أجزاء ناقصة. الشحن (INV3 و RIN3) وفواتير الدفعات المقدمة (ODPI) تحمل ضريبة أيضًا؛ أضفها إن كنت تستخدمها.
  • جانب المدخلات. لضريبة المدخلات، شغّل الاستعلام نفسه على OPCH و PCH1 و ORPC و RPC1.
  • الهللات. إذا اختلفت الإجماليات عن ملف XML بهللة واحدة، فالسبب غالبًا التقريب على مستوى السطر مقابل مستوى المستند.

تسرد صفحات OINV وINV1 وORIN وRIN1 الحقول، ومحوّل SQL إلى HANA يعيد كتابة الاستعلامات الأخرى.

ماذا تستطيع كودينوفا أن تقدم لمستخدمي ساب بزنس ون في السعودية؟

عملت كودينوفا على مشاريع SAP Business One و ERP لأكثر من 7 سنوات، لعملاء في 13 دولة، منها المملكة العربية السعودية. أعمل عن بُعد من باكستان، التي تسبق السعودية بساعتين طوال العام، فيتداخل معظم يوم العمل. ونعمل مع العملاء بالعربية والإنجليزية والإسبانية. العمل الذي أنفذه لشركات SAP B1 في المملكة:

  • ربط الفاتورة الإلكترونية المرحلة الثانية مع زاتكا: ملف XML، والختم، ورمز QR، والاعتماد والإبلاغ، مع كتابة الحالة في كل مستند وشاشة للفواتير المرفوضة. انظر ZatcaBridge لنظام SAP Business One وأكثر أسباب رفض زاتكا شيوعًا.
  • مراجعة إعداد الضريبة: رمز ضريبة لكل نوع معاملة، والتحقق من الرقم الضريبي، وتقريب يطابق ما تعيد زاتكا حسابه.
  • إضافات داخل SAP B1 باستخدام UI API و DI API: الموافقات، وعمليات التحقق قبل الترحيل، والحقول العربية. انظر دليل الإضافات.
  • قواعد تحقق في SBO_SP_TransactionNotification، مثل منع فاتورة B2B لعميل ليس له رقم ضريبي أو رقم مبنى. انظر الأمثلة.
  • تخطيطات ثنائية اللغة في Crystal Reports مع رمز QR والنص العربي.
  • الذكاء الاصطناعي فوق SAP B1: خادم MCP يتيح لـ ChatGPT أو Claude الإجابة عن الأسئلة من بيانات SAP الحية، مع الصلاحيات.

لتوضيح النطاق: كودينوفا مستقلة؛ تعمل جنبًا إلى جنب مع شريك SAP لديك. يحتفظ شريكك بالتراخيص والدعم القياسي من SAP، ونحن نبني العمل المخصص حولها وندعمه. لكل مشروع سعر ثابت لكل مرحلة، و3 أشهر دعم مجاني بعد التشغيل الفعلي، وتمتلك الكود.

تم التحقق من حقائق زاتكا في 6 نوفمبر 2026 على zatca.gov.sa. تتغير معايير الموجات ومواعيدها مع كل إعلان، لذلك تأكد من موجتك لدى زاتكا قبل التخطيط.

المصادر

خدمات ذات صلة

الأسئلة الشائعة

أسئلة شائعة

هل لدى ساب بزنس ون (SAP Business One) توطين للسعودية؟

نعم. توثّق SAP المملكة العربية السعودية ضمن توطين Central MENA، مع الإمارات ومصر ولبنان وعُمان وقطر. يغطي التوطين مجموعات الضريبة، وقواعد تحديد رموز الضريبة، وخانات الإقرار الضريبي، والتقارير الضريبية. ويُختار التوطين عند إنشاء قاعدة بيانات الشركة، لذلك تحقّق منه قبل التخطيط للفاتورة الإلكترونية.

ما الفرق بين الاعتماد والإبلاغ في الفاتورة الإلكترونية المرحلة الثانية؟

الاعتماد (Clearance) يخص الفواتير الضريبية القياسية، وغالبًا بين الشركات (B2B): تتحقق زاتكا من كل فاتورة وتختمها قبل أن تشاركها مع المشتري. والإبلاغ (Reporting) يخص الفواتير الضريبية المبسطة، وغالبًا للمستهلكين (B2C): تختم الفاتورة بنفسك، وتسلّمها للعميل، ثم تبلّغ زاتكا بها خلال 24 ساعة من إنشائها.

متى يجب على شركتي ربط الفاتورة الإلكترونية مع الزكاة والدخل (زاتكا)؟

تُطبَّق المرحلة الثانية على موجات حسب الإيرادات. وتُخطر زاتكا كل مكلّف بموجته قبل موعد الربط بستة أشهر على الأقل. تشمل الموجة 25 المكلّفين الذين تجاوزت إيراداتهم الخاضعة لضريبة القيمة المضافة 187,500 ريال في أي سنة من 2022 إلى 2025، وموعد الربط لا يتجاوز 1 فبراير 2027.

هل يجب أن تكون الفواتير في السعودية باللغة العربية؟

نعم. ينقل دليل الفوترة الصادر عن زاتكا نص اللائحة التنفيذية لنظام ضريبة القيمة المضافة: تصدر الفواتير باللغة العربية، ويجوز إضافة لغات أخرى. والنص العربي هو المعتمد. ويُقبل استخدام الأرقام 0-9 ورموز العملات مثل SAR وأسماء العلم بالحروف اللاتينية، لذلك يكون الحل المعتاد تخطيط فاتورة ثنائي اللغة في SAP B1.

هل يستطيع برنامج ساب بزنس ون عرض التاريخ الهجري؟

لا نعتمد على إعداد واحد جاهز لذلك. على SQL Server تعيد الدالة CONVERT بالنمط 131 تاريخًا هجريًا يمكن استخدامه في استعلام أو بحث منسق أو تخطيط Crystal Reports. وتذكر Microsoft أنها تستخدم الخوارزمية الكويتية، لذلك قارن النتيجة بالتقويم الذي تعتمده شركتك. أما على SAP HANA فنستخدم جدول تقويم.

كيف تعمل كودينوفا مع شريك SAP لديك؟

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

جاهز للبدء؟

أخبرنا بما تحتاجه. ستحصل على إجابة تقنية واضحة ونطاق عمل محدد وسعر ثابت، عادةً خلال 24 ساعة.