| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) |
| Lines of code | 2777 |
| Technical Name |
l10n_sa_vat_reporting |
| License | OPL-1 |
| Website | https://gencbaris.com |
| Versions | 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) |
| Lines of code | 2777 |
| Technical Name |
l10n_sa_vat_reporting |
| License | OPL-1 |
| Website | https://gencbaris.com |
| Versions | 18.0 19.0 |
Saudi VAT (15%) Form-1 Reporting for Odoo 18 & 19
ZATCA-compliant 14-box compute, Excel matching the official template, bilingual Arabic + English PDF, and a reconciliation wizard. Production-ready, no manual transcription.
What is Form-1?
Form-1 is the regular VAT return filed by every taxable person in Saudi Arabia with the Zakat, Tax and Customs Authority (ZATCA). It contains 14 boxes summarizing standard-rated, zero-rated and exempt sales and purchases, plus reverse-charge imports and adjustments. Until now, Odoo users have copied numbers manually from a custom report into ZATCA's downloadable Excel template — error-prone and audit-risky.
This module fully automates the process.
All 14 ZATCA Form-1 Boxes
Excel export — drop-in compatible with ZATCA's template
Column-by-column match
The generated .xlsx file mirrors the layout of ZATCA's official downloadable template: same sheet name (Form-1 Return), same header rows, same column order, ROUND_HALF_UP rounding to 2 decimals per box. Open the file and upload to the ZATCA portal — no manual reformatting.
An additional Audit Trail sheet lists every source account.move.line that contributed to each box, ready for tax authority review.
Bilingual Arabic + English PDF
RTL Arabic on the right, LTR English on the left
Side-by-side bilingual layout with Hijri date in the header. Use ZATCA's official Arabic terminology (sourced from their published terminology document). Optional Arabic-Indic digit rendering (٠١٢٣٤٥٦٧٨٩) per company.
Reconciliation wizard
Catch every discrepancy before submission
- Unmapped taxes — every
account.taxwithout a Form-1 box assignment is surfaced with a one-click fix. - VAT vs net mismatch — per line we check that
tax_amount ≈ net × ratewithin a configurable tolerance. - Missing partner TRN on B2B invoices over SAR 1,000 (ZATCA mandate).
- Late postings — moves dated in the period but posted after period-end.
How to set up
- Install
l10n_sa(Odoo's Saudi Chart of Accounts) and this module. - Settings → Company: set VAT Filing Frequency (monthly/quarterly) and your 15-digit TRN.
- Open Saudi VAT → Tax → Box Mapping, click "Apply l10n_sa Defaults" to auto-map standard tax codes.
- Open Saudi VAT → Generate Return and pick the period — the wizard creates the return, computes all 14 boxes, and offers Excel/PDF export.
- After uploading the Excel to ZATCA, paste the reference back into the return and mark it Paid.
Compliance
| Requirement | Source | Coverage |
|---|---|---|
| 15% standard rate | ZATCA Royal Decree A/638 | Configurable |
| 14-box Form-1 layout | ZATCA Form-1 v2023 | Full |
| Excel template column order | ZATCA downloadable template | Column-by-column match |
| Bilingual AR/EN reporting | ZATCA Implementing Regulations Art. 53 | Side-by-side |
| Hijri date | Saudi civil convention | Tabular Umm al-Qura |
| 15-digit TRN validation | ZATCA registration spec | Regex-validated |
FAQ
- Does this module submit returns to ZATCA directly?
- No. ZATCA does not expose a public API for VAT returns (only for e-invoice clearance, which our
l10n_sa_zatca_einvoicemodule covers). This module generates the Excel file you upload manually on the ZATCA portal, then captures the returned reference number. - What if I use custom taxes instead of l10n_sa defaults?
- Use the Tax → Box Mapping wizard. Each
account.taxgets a Form-1 box selector. Unmapped taxes are surfaced by the reconciliation wizard before you can submit. - Can I file for past periods?
- Yes. The wizard accepts any aligned monthly or quarterly period; pick "Specific dates" or "Full year".
- How are credit notes handled?
- Credit notes (out_refund/in_refund) automatically reverse their box contribution in the period of issuance.
- Multi-company?
- Yes. Each company has its own VAT registration, filing frequency, and return chain. Access rules ensure users only see their own company's returns.
- What about Form-2 (refund) and excise?
- Out of scope for v1.0. Form-2 will land in v1.1; excise is a separate forthcoming module.
Roadmap
- v1.0 (current) — Form-1 monthly & quarterly, Excel + bilingual PDF, reconciliation.
- v1.1 — Form-2 refund workflow, additional bank-account validation.
- v1.2 — Saudi excise tax return integration.
Install Saudi VAT Reporting for Odoo and generate your Form-1 in one click.
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module