This article is currently available in English only. Translation coming soon.
Odoo Nigeria Localization 2026: FIRS, VAT, E-Invoice & Withholding Setup
Nigeria's tax landscape underwent significant restructuring with the Finance Act series (2019, 2020, 2021, 2023) and the Tax Reform Bills 2024 that consolidated the country's tax administration. The Federal Inland Revenue Service (FIRS) administers VAT, Companies Income Tax (CIT), and other federal taxes, while State Internal Revenue Services (SIRS) handle Personal Income Tax (PAYE) and Land Use Charge in their jurisdictions. FIRS launched the Merchant Buyer Solution (MBS) e-invoicing platform with phased rollout from 2025-2026, making real-time invoice transmission a near-future requirement. Odoo's Nigeria localization is community-maintained, with custom development typical for production deployments.
Key Takeaways
- FIRS administers VAT (7.5%), Companies Income Tax (30%), and federal taxes
- VAT registration mandatory above NGN 25 million annual turnover (2024 Finance Act)
- FIRS e-invoicing (MBS) phased rollout starting 2025-2026 for large taxpayers
- Odoo
l10n_ngis community-maintained — verify version compatibility for production- Withholding tax 5-10% on most B2B services and goods
- Statutory reports include monthly VAT, monthly WHT, annual CIT, PAYE
- State SIRS handle PAYE personal income tax separately from federal
Nigeria Tax Framework Overview
FIRS enforces:
- VAT: 7.5% standard rate (raised from 5% in 2020); 0% on exports; exempt for basic foods, medical, educational items
- Companies Income Tax (CIT): 30% standard for companies with turnover above NGN 25M; 20% for medium companies (NGN 25M-100M); 0% for small (under NGN 25M)
- Tertiary Education Tax (TET): 3% of assessable profit (raised from 2%)
- Police Trust Fund (NPTF): 0.005% on company net profit
- NITDA Levy: 1% of profit above NGN 100M for IT companies
- Withholding Tax: 5-10% on most B2B transactions
- Excise Duty: On specific goods (tobacco, alcohol, telecoms calls)
State SIRS handle:
- PAYE (Personal Income Tax): Progressive 7-24% on residents' income
- Development Levy: NGN 100 per year (state-collected)
- Land Use Charge: Property-based tax in Lagos and other states
Required Odoo Localization Modules
| Module | Purpose | Source |
|---|---|---|
l10n_ng | Nigeria chart of accounts and VAT | Community / OCA |
l10n_ng_account | Localized financial reports | Custom / Community |
l10n_ng_edi | FIRS e-invoicing (MBS) integration | Custom (emerging) |
account_reports | Tax report engine | Enterprise |
hr_payroll_l10n_ng | PAYE, pension, NHF | Community / Custom |
Note: Check Odoo Apps store for l10n_ng_* modules — official localization may be community-maintained. ECOSIRE recommends combining the community l10n_ng chart of accounts with custom modules for FIRS submission and PAYE per state of operation.
Chart of Accounts Setup
Nigeria's Companies and Allied Matters Act (CAMA 2020) and IFRS adopted via FRC of Nigeria drive the financial reporting framework. The community l10n_ng chart provides:
- 1000s: Assets (cash, receivables, inventory, fixed assets)
- 2000s: Liabilities (VAT payable, WHT payable, CIT provision, pension)
- 3000s: Equity
- 4000s: Revenue
- 5000s: Cost of sales
- 6000s-7000s: Operating expenses
Configure the company record with:
- TIN (Tax Identification Number, 10 digits + letter)
- VAT number (separate from TIN, issued upon VAT registration)
- Corporate Affairs Commission (CAC) registration number
- State of operation (for PAYE and state-specific taxes)
- FIRS-registered branch IDs
VAT Configuration
Configure VAT tax records:
| Tax Name | Rate | Type | Notes |
|---|---|---|---|
| VAT 7.5% Output | 7.5% | Sales | Standard |
| VAT 0% Output (Exports) | 0% | Sales | Exports |
| VAT Exempt | 0% | Sales | Basic foods, educational, medical |
| VAT 7.5% Input | 7.5% | Purchase | Recoverable |
VAT input recovery is restricted under Nigerian law — only inputs directly attributable to taxable supplies (not exempt or non-business) are recoverable. Configure separate input VAT codes for exempt-attributable purchases (non-recoverable, expense them).
FIRS E-Invoicing (MBS)
The Merchant Buyer Solution (MBS) is FIRS's e-invoicing platform announced in 2024 with phased rollout starting 2025-2026. Key requirements:
- Real-time submission of B2B and B2G invoices to FIRS via API
- Validation and assignment of FIRS Invoice Number (FIN) before delivery to buyer
- Supplier identification via TIN
- Item-level tax breakdown
- QR code on the printed invoice
FIRS publishes wave announcements for taxpayer onboarding by turnover threshold. By 2026, large taxpayers (above NGN 5 billion turnover) must be on MBS; smaller taxpayers join in subsequent waves.
Custom Odoo modules implementing MBS:
- Register the company with FIRS MBS, obtain API credentials
- Format invoices per FIRS JSON specification
- Submit to FIRS production endpoint; capture FIN
- Display FIN and QR code on invoice PDF
- Handle rejection workflow with error code mapping
def submit_to_firs_mbs(self, invoice):
payload = {
'supplier_tin': invoice.company_id.vat,
'buyer_tin': invoice.partner_id.vat or 'B2C',
'invoice_no': invoice.name,
'invoice_date': invoice.invoice_date.isoformat(),
'currency': invoice.currency_id.name,
'subtotal': float(invoice.amount_untaxed),
'vat_amount': float(invoice.amount_tax),
'total_amount': float(invoice.amount_total),
'line_items': [
{
'description': line.name,
'quantity': line.quantity,
'unit_price': float(line.price_unit),
'tax_rate': line.tax_ids[0].amount if line.tax_ids else 0,
'tax_amount': float(line.tax_amount),
}
for line in invoice.invoice_line_ids
],
}
headers = {
'Authorization': f'Bearer {self.firs_token}',
'Content-Type': 'application/json',
}
response = requests.post(self.firs_endpoint, json=payload, headers=headers)
return response.json()
Withholding Tax Configuration
Configure WHT rates per service type:
| Type | Rate (Companies) | Rate (Individuals) |
|---|---|---|
| Goods purchase | 2.5% | 5% |
| Construction | 5% | 5% |
| Consultancy / Professional | 10% | 5% |
| Commissions | 5% | 5% |
| Rent | 10% | 10% |
| Directors' fees | 10% | 10% |
| Royalties | 10% | 10% |
| Hire of equipment | 10% | 10% |
Withholding agents must:
- File monthly returns by the 21st of the following month
- Issue FIRS-stamped receipts (Form FIRS-WHT-1) to suppliers
- Allow suppliers to credit WHT against their CIT/PAYE
Payroll Considerations
Nigerian payroll components (note state PAYE administration):
| Item | Employee | Employer | Notes |
|---|---|---|---|
| PAYE | Per state SIRS bracket | N/A | Progressive 7-24% |
| Pension Contribution | 8% | 10% | Mandatory for 3+ employees |
| National Housing Fund (NHF) | 2.5% | N/A | If salary > NGN 100,000/year |
| ITF (Industrial Training Fund) | N/A | 1% | If 5+ employees / NGN 50M payroll |
| NSITF (Employee Compensation) | N/A | 1% | All employers |
| Group Life Insurance | N/A | 0.6%-3% | Per Pension Reform Act |
PAYE brackets (typical, may vary by state):
- First NGN 300,000: 7%
- Next NGN 300,000: 11%
- Next NGN 500,000: 15%
- Next NGN 500,000: 19%
- Next NGN 1,600,000: 21%
- Above NGN 3,200,000: 24%
Consolidated Relief Allowance (CRA) of NGN 200,000 + 20% of gross income reduces taxable income.
Reporting Requirements
A Nigeria Odoo deployment must produce:
- VAT Return: Monthly, by the 21st of following month
- WHT Returns: Monthly per recipient category
- Companies Income Tax Return: Annually, within 6 months of fiscal year end
- Tertiary Education Tax: Annual, with CIT
- PAYE Returns: Monthly per state, with H1 (employee schedule) and H2 (consolidated)
- Annual Returns to CAC: Per CAMA 2020
- Pension Remittance: Monthly to PFAs
Implementation Checklist
- Confirm TIN, VAT registration, CAC number, state of operation
- Install community
l10n_ng; configure TIN, VAT number, CAC - Configure VAT 7.5%, exempt categories, restricted input VAT
- Configure WHT codes per service type with company/individual splits
- Plan FIRS MBS integration based on your taxpayer wave (typically 2025-2026)
- Configure payroll per state PAYE rates with CRA
- Set up pension, NHF, ITF, NSITF with correct rates
- Build VAT return and WHT return reports for FIRS submission
- Build PAYE schedule (H1) for state SIRS submission
- Schedule monthly filings: VAT/WHT by 21st, PAYE by 10th
Common Pitfalls
VAT input on exempt-attributable purchases: Recovering VAT input on purchases used for exempt or non-business activities triggers FIRS adjustments. Tag products with VAT recoverability.
Wrong WHT rate for individuals vs companies: Many WHT codes have different rates for individuals vs companies. Configure split codes and apply based on supplier classification.
Missing state PAYE differences: Lagos, Rivers, FCT, and other states administer PAYE with subtle bracket differences and remittance procedures. Consolidating PAYE for multi-state employees requires per-state computation.
Pension under-remittance: Pension contributions must be remitted within 7 days of payment. Late remittance triggers PenCom penalties.
FIRS receipts for WHT not issued: Suppliers need WHT certificates to credit their tax. Failing to issue creates supplier disputes and tax credit gaps.
ECOSIRE provides Odoo localization for Nigeria, including FIRS MBS readiness, multi-state PAYE, and pension compliance. Contact us for implementation or explore accounting services.
Frequently Asked Questions
Is Nigerian electronic invoicing mandatory yet?
The FIRS MBS rollout is phased starting 2025-2026 for large taxpayers (turnover above NGN 5 billion). Smaller taxpayers join in subsequent waves. Track FIRS announcements for your wave date. ECOSIRE builds FIRS-ready Odoo modules in advance of the mandate to ensure smooth onboarding.
Does Odoo Enterprise officially support Nigeria?
Odoo's official Nigeria localization is limited compared to mature markets. Most production deployments use community modules from local partners or build custom on top of l10n_ng. ECOSIRE has implemented Nigeria localizations for clients in oil & gas, fintech, and manufacturing using the community-plus-custom approach.
How do we handle multi-state PAYE for remote employees?
PAYE liability follows the employee's state of residence (per Personal Income Tax Act). Remote employees in different states require per-state PAYE computation and per-state SIRS remittance. Configure Odoo's payroll with employee-level state assignment driving the rate tables and remittance journal.
What's the threshold for VAT registration?
Per the 2024 Finance Act, businesses with annual turnover above NGN 25 million must register for VAT. Below this threshold, registration is voluntary. The 2024 reform also clarified that small companies (under NGN 25M) are exempt from CIT, simplifying compliance for SMEs.
Can we file VAT returns directly from Odoo?
The FIRS portal accepts manual upload of VAT returns. Odoo can export the return data in FIRS-prescribed format (CSV or XML), but submission requires manual login and upload. Recent FIRS API enhancements may enable direct submission for selected taxpayers — verify current status with your FIRS office.
تحریر
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.