| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) |
| Lines of code | 655 |
| Technical Name |
eh_l10n_ye |
| License | LGPL-3 |
| Website | https://www.erpheritage.com.au |
| Versions | 16.0 17.0 18.0 19.0 |
Yemen Accounting
The base fiscal localization for the Republic of Yemen: an IFRS-shaped bilingual chart of 97 accounts, the General Sales Tax on sale and purchase, income-tax withholding taxes, domestic, export and import fiscal positions, and a GST return, all activated on any company whose country is Yemen.
Why this module
Yemen Accounting
IFRS from day one
Yemen adopted full IFRS effective 1 January 2020, so the chart is IAS 1 structured and suits both full IFRS and IFRS for SMEs. Every account carries an Arabic name alongside its English name, and the fiscal year defaults to the calendar year.
Output and input tax kept apart
Output GST posts to the GST Output Payable account and input GST to the GST Input Recoverable account, so recoverable input tax is never conflated with output tax. The GST return then nets the two to a single payable or refundable line.
Honest about the partition
Yemen is de facto partitioned between two tax administrations. This pack ships the internationally recognized government statutory code as a clean baseline and documents the Sana'a deltas as an overlay, rather than silently mixing regimes.
Day in the life
Set the country, install, invoice
You set a new company's country to Yemen and install the module. The chart of 97 accounts loads bilingual, the YER is activated at whole-rial rounding, and receivable, payable, income and expense accounts are wired. You raise a sale invoice, pick GST 5%, and 5% posts to GST Output Payable with its tax tags stamped. A contractor bill takes WHT 10% (Contractors) as a negative-rate purchase tax that withholds against the payment. At period end the GST Return nets output tax against recoverable input tax to the net payable line.
Edge cases
The cases most modules quietly ignore.
In the shipped code today, each one a place where a cheaper module silently does the wrong thing.
Withholding is modelled as negative-rate purchase taxes (WHT 10% contractors, 5% technical services, 10% royalties/non-resident), each posting to a withholding-tax payable account so the tax is deducted from what is paid rather than added.
Export is a distinct 0% zero-rated GST (its base flows to the return) while exempt is a separate no-GST category, so the two are reported on different lines instead of being collapsed together.
The YER ships inactive in Odoo base at 0.01 rounding. This module activates it and sets whole-rial rounding (1.0, zero decimals) because the fils subunit has not circulated since 1990. A company that wants sub-unit precision can set rounding back to 0.01.
The domestic and export/foreign fiscal positions are set to auto-apply by partner country, while the import position is manual, so cross-border sales pick up the right mapping without a manual override on every partner.
What is inside
Built to do the job, end to end.
- account.chart.template (ye). The template registers the Yemen chart: 6-digit codes, receivable 102000, payable 201000, income 400000, expense 500000, stock valuation and production-cost accounts, plus the default sale and purchase GST 5% taxes, all bound to base.ye as the fiscal country.
- account.tax records. Ten taxes: GST 5% and 10% and 0% and exempt on sale, GST 5% and 10% and exempt on purchase, and three negative-rate withholding taxes. Output GST posts to 202000, input GST to 103010, and withholding to 202020, each with tax tags on invoice and refund repartition lines.
- account.fiscal.position records. Three positions: Domestic (Yemen), Export / Foreign, and Import, the first two auto-applying by country, carrying bilingual names for the Arabic and English interface.
- account.report (GST Return). A tax-tags report with base and tax columns and eleven lines: standard, telecom, zero-rated and exempt sales, standard, telecom and exempt purchases, total output, total recoverable input, and a net GST payable or refundable line built by aggregation.
- res.currency (YER). The data layer activates the Yemeni Rial and sets it to whole-rial rounding, and demo data seeds a Yemen company so the localization can be exercised end to end after install.
Honest about the edges
What this does not do, so nothing surprises you.
- It does not ship a Community interactive tax-report viewer. The GST return's tax data and tags are fully correct, but rendering it on screen with exports needs the Enterprise account_reports module or a separate Community reporting engine.
- It does not include the Sana'a authority regional overlay: no khums levy, no zakat computation or filing, and no separate 35% commercial income tax. Those are documented as work for a per-company overlay, not shipped here.
- It does not compute or file corporate income tax or zakat, and the withholding taxes deduct at invoicing but do not generate any statutory withholding certificate or return.
- It does not provide a dual-rate FX toolkit or an automated YER exchange-rate feed. Because the rial trades at very different rates by region under one ISO code, rates are left for you to maintain manually.
- It does not attempt any e-invoicing, SAF-T or GCC-style digital-reporting integration, because Yemen has no mandatory e-invoicing regime as of 2024 to 2026 and GST filing is monthly and largely manual.
- It does not localize payroll, customs tariff schedules or bank statement formats; the scope is the chart of accounts, taxes, fiscal positions, GST return and currency only.
odoo 19 yemen accounting, l10n_ye chart of accounts, yemen general sales tax odoo, yemen GST return, yemen withholding tax odoo, yemeni rial YER odoo, arabic english chart of accounts, yemen IFRS localization, yemen fiscal position export import, odoo community yemen localization
محاسبة اليمن
التوطين الضريبي الأساسي للجمهورية اليمنية: دليل حسابات ثنائي اللغة من 97 حساباً مبني على معايير IFRS، وضريبة المبيعات العامة على البيع والشراء، وضرائب الاستقطاع من ضريبة الدخل، وأوضاع ضريبية للتجارة المحلية والتصدير والاستيراد، وإقرار ضريبة المبيعات العامة، وكلها تُفعَّل تلقائياً على أي شركة يكون بلدها اليمن.
لماذا هذه الوحدة
معايير IFRS من اليوم الأول
اعتمدت اليمن معايير IFRS الكاملة اعتباراً من 1 يناير 2020، لذا فإن دليل الحسابات مبني وفق عرض IAS 1 ويناسب كلاً من IFRS الكاملة وIFRS للمنشآت الصغيرة والمتوسطة. يحمل كل حساب اسماً عربياً إلى جانب اسمه الإنجليزي، وتُضبط السنة المالية افتراضياً على السنة الميلادية.
فصل الضريبة المستحقة عن الضريبة القابلة للخصم
تُقيَّد ضريبة المبيعات على المبيعات في حساب ضريبة المبيعات المستحقة على المبيعات، وتُقيَّد ضريبة المبيعات على المشتريات في حساب ضريبة المبيعات على المشتريات القابلة للخصم، فلا تختلط الضريبة القابلة للخصم بالضريبة المستحقة إطلاقاً. ثم يقوم إقرار ضريبة المبيعات العامة بمقاصّة الاثنين للوصول إلى سطر واحد مستحق السداد أو قابل للاسترداد.
صريح بشأن الانقسام
اليمن منقسم بحكم الواقع بين إدارتين ضريبيتين. تقدّم هذه الحزمة القانون الضريبي النظامي للحكومة المعترف بها دولياً كأساس نظيف، وتوثّق الفروقات الخاصة بسلطة صنعاء كطبقة إضافية، بدلاً من خلط النظامين بصمت.
يوم في حياة المستخدم
اضبط البلد، ثبّت الوحدة، أصدر الفاتورة
تضبط بلد الشركة الجديدة على اليمن وتثبّت الوحدة. يُحمَّل دليل الحسابات المكوَّن من 97 حساباً بلغتين، ويُفعَّل الريال اليمني (YER) بتقريب إلى ريال كامل، وتُربط حسابات الذمم المدينة والدائنة والإيرادات والمصروفات. تصدر فاتورة بيع وتختار ضريبة المبيعات 5%، فتُقيَّد الـ5% في حساب ضريبة المبيعات المستحقة على المبيعات مع ختم بطاقاتها الضريبية. تأخذ فاتورة مقاول ضريبة استقطاع 10% (مقاولون) كضريبة شراء بنسبة سالبة تُستقطع من قيمة الدفعة. وفي نهاية الفترة يقوم إقرار ضريبة المبيعات العامة بمقاصّة الضريبة المستحقة مقابل الضريبة القابلة للخصم للوصول إلى سطر الصافي المستحق.
حالات خاصة تتعامل معها الوحدة
تُنمذَج ضريبة الاستقطاع كضرائب شراء بنسبة سالبة (استقطاع 10% مقاولون، 5% خدمات فنية، 10% إتاوات / غير مقيم)، ويُقيَّد كل منها في حساب ضريبة الاستقطاع المستحقة، بحيث تُخصَم الضريبة من المبلغ المدفوع بدلاً من إضافتها إليه.
التصدير ضريبة مبيعات عامة صفرية النسبة منفصلة 0% (يتدفق أساسها إلى الإقرار)، بينما المعفاة فئة منفصلة بلا ضريبة مبيعات، فيُدرَج الاثنان في سطرين مختلفين بدلاً من دمجهما معاً.
يأتي الريال اليمني (YER) غير مفعَّل في أساس Odoo بتقريب 0.01. تفعّله هذه الوحدة وتضبط التقريب على ريال كامل (1.0، بلا خانات عشرية) لأن وحدة الفلس الفرعية لم تتداول منذ عام 1990. ويمكن لأي شركة ترغب في دقة الوحدة الفرعية إعادة ضبط التقريب إلى 0.01.
يُضبط الوضعان الضريبيان المحلي والتصدير / الخارجي على التطبيق التلقائي حسب بلد الشريك، بينما وضع الاستيراد يدوي، فتلتقط المبيعات العابرة للحدود التخطيط الصحيح دون تجاوز يدوي لكل شريك.
ماذا يوجد بالداخل
- account.chart.template (ye): يسجّل القالب دليل حسابات اليمن: رموز من 6 أرقام، الذمم المدينة 102000، الذمم الدائنة 201000، الإيرادات 400000، المصروفات 500000، وحسابات تقييم المخزون وتكلفة الإنتاج، إضافة إلى ضريبتَي المبيعات العامة 5% الافتراضيتين للبيع والشراء، وكلها مرتبطة بـ base.ye كبلد ضريبي.
- سجلات account.tax: عشر ضرائب: ضريبة مبيعات 5% و10% و0% ومعفاة على البيع، وضريبة مبيعات 5% و10% ومعفاة على الشراء، وثلاث ضرائب استقطاع بنسبة سالبة. تُقيَّد ضريبة المبيعات المستحقة في 202000، وضريبة المبيعات على المشتريات في 103010، والاستقطاع في 202020، ولكل منها بطاقات ضريبية على سطور توزيع الفاتورة والمرتجع.
- سجلات account.fiscal.position: ثلاثة أوضاع: محلي (اليمن)، وتصدير / خارجي، واستيراد، ويُطبَّق الأولان تلقائياً حسب البلد، وتحمل أسماء ثنائية اللغة لواجهتَي العربية والإنجليزية.
- account.report (إقرار ضريبة المبيعات): تقرير قائم على البطاقات الضريبية بأعمدة للأساس والضريبة وأحد عشر سطراً: مبيعات قياسية واتصالات وصفرية ومعفاة، ومشتريات قياسية واتصالات ومعفاة، وإجمالي الضريبة المستحقة، وإجمالي الضريبة القابلة للخصم، وسطر صافي ضريبة المبيعات المستحق السداد أو القابل للاسترداد المبني بالتجميع.
- res.currency (YER): تفعّل طبقة البيانات الريال اليمني وتضبطه على التقريب إلى ريال كامل، وتزرع بيانات العرض التوضيحي شركة يمنية بحيث يمكن اختبار التوطين من طرف إلى طرف بعد التثبيت.
ما لا تقوم به الوحدة
- لا تتضمّن عارض تقارير ضريبية تفاعلي لإصدار Community. بيانات إقرار ضريبة المبيعات وبطاقاته صحيحة تماماً، لكن عرضه على الشاشة مع التصدير يتطلب وحدة account_reports في إصدار Enterprise أو محرك تقارير منفصلاً لإصدار Community.
- لا تتضمّن الطبقة الإقليمية الخاصة بسلطة صنعاء: لا رسم الخُمس، ولا احتساب الزكاة أو تقديمها، ولا ضريبة دخل تجارية منفصلة بنسبة 35%. هذه موثّقة كعمل لطبقة خاصة بكل شركة، وليست مضمَّنة هنا.
- لا تحتسب أو تقدّم ضريبة دخل الشركات أو الزكاة، وضرائب الاستقطاع تُخصَم عند إصدار الفاتورة لكنها لا تنشئ أي شهادة استقطاع نظامية أو إقراراً.
- لا توفّر أدوات صرف بسعرين مزدوجين ولا تغذية آلية لسعر صرف الريال اليمني (YER). ولأن الريال يُتداول بأسعار مختلفة جداً حسب المنطقة تحت رمز ISO واحد، تُترك الأسعار لك لتحديثها يدوياً.
- لا تحاول أي تكامل مع الفوترة الإلكترونية أو SAF-T أو الإبلاغ الرقمي بأسلوب دول الخليج، لأن اليمن ليس لديه نظام فوترة إلكترونية إلزامي حتى الفترة من 2024 إلى 2026، وتقديم إقرار ضريبة المبيعات شهري ويدوي إلى حد كبير.
- لا توطّن كشوف الرواتب أو جداول التعرفة الجمركية أو صيغ كشوف الحسابات البنكية؛ فالنطاق يقتصر على دليل الحسابات والضرائب والأوضاع الضريبية وإقرار ضريبة المبيعات والعملة فقط.
Modules teams pair with this one.
Premium ERP Heritage modules that extend the same stack, each built to the same engineering bar.
Sync certifications, qualifications and employee document metadata from the Employment Hero people platform into...
Sync Employment Hero leave categories, leave requests and leave balances into the standard Odoo Time Off app, wit...
Show the Hijri (Umm al-Qura) date alongside Gregorian dates across Odoo 19
Connect Odoo partner records to the Saudi SPL National Address service and the Wathq commercial registry
One click install of the full Employment Hero integration for Odoo Community, covering the connector, two way syn...
The Malaysia country pack for the ERP Heritage Employment Hero integration
Please log in to comment on this module