This article is currently available in English only. Translation coming soon.
Odoo Philippines Localization 2026: BIR, VAT & E-Invoicing Setup
Operating an ERP in the Philippines means dealing with the Bureau of Internal Revenue (BIR) and a tax framework defined by the National Internal Revenue Code (NIRC) and the TRAIN Law. The country uses a 12% VAT regime, multiple withholding tax categories, and a strict distinction between Sales Invoices and Official Receipts that few foreign-built ERPs handle correctly out of the box. Odoo's l10n_ph localization addresses the core accounting and tax structure, but a production deployment needs careful configuration to satisfy BIR requirements such as printed Authority to Print (ATP) and computerized accounting system (CAS) accreditation.
Key Takeaways
- The BIR is the primary tax authority; VAT is 12% with mandatory invoice formats distinct between goods (Sales Invoice) and services (Official Receipt)
- Odoo's
l10n_phmodule ships chart of accounts, taxes, and basic BIR forms; CAS accreditation requires customization- E-invoicing under EIS (Electronic Invoicing System) is mandatory for top 100 taxpayers; broader rollout phased through 2026
- Withholding tax (EWT) requires 10+ tax codes for different transaction types and supplier classifications
- Statutory reports include 2550M/2550Q (VAT), 1601-EQ/1601-FQ (withholding), 1604-E (annual), and SAWT/QAP relief files
- Computerized Accounting System (CAS) registration with BIR is mandatory for Odoo deployments
Philippines Tax Framework Overview
The Philippines tax system is administered by the BIR under the Department of Finance. VAT applies at 12% on most goods and services, with zero-rated and exempt categories defined by the NIRC. Businesses with annual gross sales below PHP 3 million can opt for the 8% gross income tax regime in lieu of VAT and percentage tax, but most enterprise-grade Odoo deployments target VAT-registered taxpayers.
Beyond VAT, the Philippines runs an extensive withholding tax (EWT) system. Buyers withhold tax on payments to suppliers across categories such as professional fees (10% or 15%), rentals (5%), contractors (2%), and commissions. The withheld amount is remitted monthly via BIR Form 1601-EQ and credited against the supplier's annual income tax via Form 2307 certificates.
The BIR also requires every computerized accounting system to be registered (the "CAS permit"). Receipts and invoices generated by Odoo must follow the format prescribed in Revenue Regulations No. 18-2012 and subsequent issuances, including the ATP number, TIN, and a serial range.
Required Odoo Localization Modules
| Module | Purpose | Edition |
|---|---|---|
l10n_ph | Philippines chart of accounts and base taxes | Community |
l10n_ph_account | Localized accounting reports (2550M, 2550Q skeletons) | Community/Enterprise |
l10n_ph_edi | E-invoicing scaffolding (EIS submission) | Enterprise / Custom |
account_reports | Tax report engine for VAT and withholding summaries | Enterprise |
hr_payroll_l10n_ph | SSS, PhilHealth, Pag-IBIG payroll structures | Enterprise / Custom |
Note that the official Enterprise localization covers core taxes and accounting. Full BIR-compliant invoice formatting, CAS-ready audit logs, and EIS submission usually require custom development or community modules from local partners.
Chart of Accounts Setup
The l10n_ph chart of accounts follows Philippine Financial Reporting Standards (PFRS), aligned with IFRS for SMEs. After installing the module, key accounts to verify include:
- 1010-Series: Cash and cash equivalents (BSP-supervised banks)
- 1200-Series: Accounts receivable, with sub-accounts for trade and non-trade
- 1410: Input VAT Deferred (for capital goods amortization above PHP 1M)
- 1420: Creditable Withholding Tax (for 2307 certificates received)
- 2110: Output VAT
- 2210-Series: Withholding tax payable (EWT, FWT, VAT-WT)
- 5000-Series: Cost of sales (segregated by VATable and non-VATable)
Configure the company record under Settings > Companies with the registered TIN (15 digits including branch code), RDO (Revenue District Office) code, and BIR-registered business address. These fields appear on every invoice and must match the BIR Certificate of Registration (Form 2303).
VAT Configuration
Odoo ships with the 12% VAT tax codes after l10n_ph is installed. Configure the following tax records under Accounting > Configuration > Taxes:
| Tax Name | Rate | Type | Tax Group |
|---|---|---|---|
| VAT 12% Sales | 12% | Sales | VAT Output |
| VAT 12% Purchase | 12% | Purchase | VAT Input |
| VAT Zero-Rated Sales | 0% | Sales | VAT Output |
| VAT Exempt Sales | 0% | Sales | VAT Exempt |
| VAT 12% Capital Goods | 12% | Purchase | VAT Input Deferred |
For exports and BOI/PEZA-registered enterprises, the zero-rated VAT applies. Capital goods purchases above PHP 1 million require VAT amortization over 60 months, which Odoo handles via deferred input VAT accounts and scheduled journal entries.
<record id="l10n_ph_tax_vat_12_sale" model="account.tax">
<field name="name">VAT 12% Sales</field>
<field name="amount">12</field>
<field name="amount_type">percent</field>
<field name="type_tax_use">sale</field>
<field name="tax_group_id" ref="tax_group_vat_output"/>
<field name="invoice_repartition_line_ids" eval="[
(0,0,{'factor_percent': 100, 'repartition_type': 'base'}),
(0,0,{'factor_percent': 100, 'repartition_type': 'tax', 'account_id': ref('vat_output_account')})
]"/>
</record>
Withholding Tax (EWT) Configuration
Withholding tax is where most Philippines Odoo deployments need extensive setup. Common EWT rates include:
| ATC Code | Description | Rate |
|---|---|---|
| WI010 | Professional fees (individuals) | 10% / 15% |
| WI100 | Rentals | 5% |
| WC100 | Contractors | 2% |
| WI020 | Commissions | 10% |
| WC158 | Goods (top withholding agents) | 1% |
| WC160 | Services (top withholding agents) | 2% |
Each EWT code maps to a tax record in Odoo configured as a "Purchase" tax with negative amount affecting the payable account and crediting EWT Payable. Suppliers tagged as withholding-applicable trigger the tax automatically on vendor bills.
The EWT amount must appear on the BIR Form 2307 issued to the supplier. Custom modules typically generate the 2307 PDF using supplier-specific data and the certificate serial number from the BIR-issued booklet.
E-Invoicing Requirements
The BIR Electronic Invoicing System (EIS) was rolled out for the top 100 taxpayers in 2022 and is being expanded to all VAT-registered taxpayers under the Ease of Paying Taxes (EoPT) Act of 2024. By 2026, EIS submission becomes mandatory for a broader segment of businesses, with the BIR publishing the cutover schedule by RDO and taxpayer size.
EIS requirements include real-time or near-real-time submission of invoices in the prescribed JSON format, with each invoice receiving a Quick Response (QR) code referencing the EIS reference number. Odoo Enterprise's e-invoicing framework can be extended for EIS submission, but most Philippine deployments rely on a middleware layer or a community module from a local partner with EIS API access.
For deployments not yet under EIS mandate, the existing requirements still apply:
- Authority to Print (ATP) for printed receipts/invoices
- Sequential serial numbers per ATP series
- Mandatory fields: TIN, RDO code, ATP number, BIR Permit No. (for CAS), business style
- Distinction between Sales Invoice (for goods) and Official Receipt (for services collected)
Payroll Considerations
Philippines payroll requires four mandatory contributions and one tax:
| Contribution | Employee Share | Employer Share | Cap |
|---|---|---|---|
| SSS (Social Security) | 4.5% | 9.5% | Salary credit max PHP 30,000 (2026) |
| PhilHealth | 2.5% | 2.5% | Premium tiers; ceiling PHP 100,000 |
| Pag-IBIG (HDMF) | 2% | 2% | Cap PHP 200/month standard |
| Withholding Tax on Compensation | Per BIR table | N/A | 13th-month pay exempt up to PHP 90,000 |
Odoo's payroll localization for the Philippines covers the basic salary structures, but the contribution tables (especially SSS, which uses salary brackets rather than straight percentages) need annual updates. The BIR Form 1601-C (monthly) and Form 1604-CF (annual) must be generated from payroll data.
Reporting Requirements
Statutory reports a Philippines Odoo deployment must produce:
- BIR Form 2550M / 2550Q: Monthly and quarterly VAT returns
- BIR Form 1601-EQ: Quarterly EWT remittance return
- BIR Form 1601-FQ: Final withholding tax (mostly for foreign payments)
- BIR Form 1604-E: Annual information return on EWT
- SAWT (Summary Alphalist of Withholding Taxes): DAT file submitted with 1601-EQ
- QAP (Quarterly Alphalist of Payees): Submitted quarterly via eFPS or eBIRForms
- SLSP (Summary List of Sales/Purchases): Quarterly VAT relief submission
These reports are typically generated via custom Odoo reports that aggregate data from the move lines tagged with the appropriate ATC codes and tax types.
Implementation Checklist
- Obtain BIR Form 2303 (Certificate of Registration) and ATP for invoice/receipt printing
- Apply for CAS Permit using BIR Form 1900 with Odoo system documentation
- Install
l10n_ph, configure company TIN, RDO, business style - Set up VAT taxes (12%, zero-rated, exempt) and verify input/output GL accounts
- Configure all applicable EWT codes with correct ATC and rate
- Customize invoice and OR templates to include ATP number, serial range, BIR Permit No.
- Configure payroll structures with SSS/PhilHealth/Pag-IBIG/WTC rules
- Build or buy reports for 2550Q, 1601-EQ, SAWT, QAP, SLSP
- Test EIS readiness if subject to mandate; otherwise track BIR EoPT rollout schedule
- Run parallel manual + Odoo computation for one quarter before BIR submission
Common Pitfalls
Wrong invoice type for transactions: Using Sales Invoice for service revenue or Official Receipt for goods causes BIR audit issues. Configure document types per product category.
Missing VAT amortization on capital goods: Capital goods purchases above PHP 1M must amortize input VAT over 60 months. Skipping this triggers VAT under-claim penalties.
Incorrect EWT timing: EWT is recorded at payment, not invoice. Posting EWT at invoice booking instead of payment leads to remittance mismatches.
ATP serial gaps: Each ATP series must be used sequentially with no gaps. Cancelled invoices must remain in the system with cancellation memos.
Outdated SSS contribution table: SSS publishes new contribution schedules periodically. Failing to update Odoo's tables causes under-remittance and penalties.
ECOSIRE provides Odoo localization for the Philippines, including CAS accreditation support, EIS-ready custom modules, and BIR statutory reports. Contact us for implementation or explore our accounting services for hybrid bookkeeping support.
Frequently Asked Questions
Does Odoo Community work for Philippines BIR compliance?
Odoo Community with l10n_ph covers the chart of accounts and basic taxes, but BIR-compliant invoice formats, EIS submission, and statutory reports (2550Q, 1601-EQ, SAWT) typically require Enterprise's reporting engine or custom development. Most production Philippines deployments use Enterprise plus a localization partner module.
Is CAS registration with BIR required for Odoo?
Yes. Any computerized accounting system used for tax-relevant records requires a CAS Permit from the BIR. Submit Form 1900 with Odoo system documentation, sample invoices/reports, and the post-evaluation report. Until the permit is granted, you must continue using BIR-issued manual books and invoices.
When does e-invoicing (EIS) become mandatory for my business?
EIS is currently mandatory for the top 100 taxpayers and selected enterprises identified by the BIR. The Ease of Paying Taxes Act expands the scope, with phased rollout through 2026. Track BIR Revenue Memorandum Circulars announcing your RDO's cutover date. ECOSIRE can build EIS-ready modules in advance of your mandate date.
How does Odoo handle the difference between Sales Invoice and Official Receipt?
Sales Invoice is used when goods are sold (issued at delivery); Official Receipt is used when services are paid for (issued at collection). In Odoo, configure two journal types and use product-type logic to default the correct document. Service invoices remain as Provisional Receipts or Billing Statements until payment, when an OR is issued.
Can Odoo generate BIR Form 2307 certificates?
Out-of-the-box no, but custom modules can produce 2307 PDFs from EWT entries on vendor bills. The certificate must include the supplier TIN, ATC code, gross income, and tax withheld. Many ECOSIRE clients automate this with batch generation at month-end.
تحریر
ECOSIRE TeamTechnical Writing
The ECOSIRE technical writing team covers Odoo ERP, Shopify eCommerce, AI agents, Power BI analytics, GoHighLevel automation, and enterprise software best practices. Our guides help businesses make informed technology decisions.
ECOSIRE
Odoo ERP کے ساتھ اپنے کاروبار کو تبدیل کریں
آپ کے کاموں کو ہموار کرنے کے لیے ماہر Odoo کا نفاذ، حسب ضرورت، اور معاونت۔
متعلقہ مضامین
How to Add a Custom Button to an Odoo Form View (2026)
Add custom action buttons to Odoo 19 form views: Python action method, view inheritance, conditional visibility, confirmation dialogs. Production-tested.
How to Add a Custom Field in Odoo Without Studio (2026)
Add custom fields via custom module in Odoo 19: model inheritance, view extension, computed fields, store/non-store decisions. Code-first, version-controlled.
How to Add a Custom Report in Odoo Using External Layout
Build a branded PDF report in Odoo 19 using web.external_layout: QWeb template, paperformat, action binding. With print logo + footer overrides.