Skip to main content
Nigeria FIRS E-Invoicing & VAT Compliance for Odoo — A build-to-order Odoo module that makes Nigerian companies compliant wit — 1/1Illustrative preview

A build-to-order Odoo module that makes Nigerian companies compliant with FIRS e-invoicing,

7.5% VAT and withholding tax — with a localized chart of accounts, TIN validation and return-ready reports.

ECOSIRE scopes, builds, installs and supports it on Odoo 17, 18 or 19.

What is Nigeria FIRS E-Invoicing & VAT Compliance for Odoo?

A build-to-order Odoo module that makes Nigerian companies compliant with FIRS e-invoicing, 7.5% VAT and withholding tax — with a localized chart of accounts, TIN validation and return-ready reports. ECOSIRE scopes, builds, installs and supports it on Odoo 17, 18 or 19. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

FIRS e-invoice submission connector: serializes each posted `account.move` to the FIRS MBS payload and transmits over authenticated HTTPS/JSON-RPC
Stores the FIRS-returned IRN, validation reference and QR data back on the invoice, with a tracked submission state (draft → submitted → validated → rejected)
Nigerian VAT modelled as `account.tax` records — 7.5% standard, zero-rated and exempt treatments with correct tax-group mapping for reporting
Withholding tax engine that computes and posts WHT on vendor bills/payments at statutory rates (services, rent, contracts, dividends, interest)
WHT credit-note tracking so amounts withheld are captured for offset and FIRS WHT-schedule reporting
Nigeria localized chart of accounts delivered as data, or mapped onto your existing COA during scoping instead of overwriting it
TIN validation on `res.partner` via `@api.constrains`/`onchange` — malformed or missing taxpayer IDs are blocked at data entry
QWeb report pack: FIRS-compliant invoice PDF carrying IRN + QR code, VAT return summary and WHT deduction schedule
`ir.cron` automated action for batch same-day submission with automatic retry/backoff on transient FIRS API failures
Rejection handling: failed transmissions surface the FIRS error message on the invoice and can be corrected and re-submitted without duplication
Access controlled by `ir.model.access.csv` plus record rules so only accounting/finance roles can transmit, void or re-issue e-invoices
Idempotent transmission guard (sha/reference check) so a retried submission never double-registers the same document with FIRS
Full XML/OWL views with a submission status widget, plus config settings for API endpoint, credentials and environment (sandbox vs live)
Built and tested for Odoo 17.0, 18.0 and 19.0, Community and Enterprise, with the manifest version pinned to your series

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Odoo.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

Odoo Compatibility
Odoo 17, Odoo 18, Odoo 19
Editions
Enterprise & Community
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
PostgreSQL 12+

About this Product

Nigerian businesses running Odoo hit a wall the moment FIRS compliance becomes real. Out of the box, Odoo ships a generic tax engine and a country-agnostic chart of accounts, but it has no concept of the FIRS Merchant-Buyer System (MBS) e-invoicing mandate, no built-in 7.5% VAT logic wired to Nigerian tax reporting, and no withholding-tax mechanism that computes and posts WHT on vendor payments the way FIRS expects. Finance teams end up hand-keying VAT returns, tracking WHT credit notes in spreadsheets, and manually formatting invoices to satisfy the electronic-invoicing rules — error-prone work that becomes a real audit and penalty risk as FIRS tightens enforcement across large and medium taxpayers.

ECOSIRE builds a dedicated localization module that closes those gaps inside Odoo rather than bolting a third-party tool onto it. At the data layer we ship a Nigeria-specific chart of accounts and a full tax structure defined as account.tax records — 7.5% VAT (standard, zero-rated and exempt) plus WHT tax groups for the common statutory rates on services, rent, dividends, interest and contracts. TIN validation is added on res.partner via a constrains/onchange layer so malformed or missing taxpayer IDs are caught at data entry, not at return time. The e-invoicing connector is implemented as an Odoo model that serializes each posted account.move into the FIRS-required payload, signs/authenticates against the FIRS API over the JSON-RPC/HTTPS transport, stores the returned IRN and QR/validation reference back on the invoice, and exposes the transmission state (draft → submitted → validated → rejected) as a tracked field so accountants can see exactly where every document stands.

Technically it is a clean Odoo addon. The __manifest__.py declares dependencies on account (and l10n_generic_coa where relevant) and is pinned to your Odoo series. Business logic lives in models/ using models.Model, typed fields, and compute methods decorated with @api.depends so VAT and WHT amounts recalculate deterministically. Access is governed by ir.model.access.csv plus record rules so only accounting roles can transmit or void e-invoices. The UI is delivered as XML views (with OWL components where an interactive submission widget helps), and the statutory outputs — VAT return summary, WHT schedule, and a FIRS-compliant invoice PDF carrying the IRN and QR code — are QWeb reports. An ir.cron automated action can batch-submit the day's validated invoices and retry transient FIRS failures. We build it to work on Odoo Community as well as Enterprise; where a feature depends on an Enterprise-only app we flag it during scoping so there are no surprises.

Because this is build-to-order, nothing is pre-listed on apps.odoo.com and there is no instant download. You start with a short scoping call where we confirm your Odoo version (17.0/18.0/19.0), Community vs Enterprise, which WHT rates and VAT treatments apply to your sector, your FIRS onboarding/API credentials, and any existing chart of accounts we must map to rather than replace. We then build against your requirements, deliver on a staging environment for UAT, and only cut over to production once you sign off. Typical delivery is one working week from confirmed scope, and you receive the full source so you are never locked in.

What you get

  • Installable, version-matched Odoo source code for your exact series (17.0, 18.0 or 19.0), Community or Enterprise
  • Installation and configuration on your environment — FIRS API credentials, VAT/WHT tax setup, chart-of-accounts mapping and company fiscal settings
  • UAT on a staging instance with sample invoices submitted to the FIRS sandbox, plus a documented rollback plan before production cutover
  • Technical documentation: model/field reference, API integration notes, security rules and the __manifest__.py dependency map
  • End-user guide plus a live training session for your accounting team covering submission, WHT and return reports
  • A defined post-go-live support window for fixes, FIRS API adjustments and questions
  • Git repository handover with full commit history so you own and can extend the code
  • Statutory report templates (VAT return summary, WHT schedule, FIRS invoice PDF) configured to your legal entity details

Who this is for

Nigerian SME & mid-market finance teams

Companies filing VAT and WHT with FIRS that need e-invoicing compliance without ripping out their existing Odoo accounting setup. They want returns to reconcile automatically and audit-ready invoices with valid IRNs.

West-Africa Odoo implementation partners

Consultancies rolling out Odoo for Nigerian clients who need a proven, extensible FIRS localization to drop into projects — delivered with source and docs so their own team can maintain and adapt it per client.

CFOs and financial controllers of regulated/large taxpayers

Leaders accountable for FIRS compliance and penalty exposure who need reliable e-invoice transmission, defensible WHT handling, and clear submission status visibility across every document.

Group companies with multi-entity Nigerian operations

Businesses running several Nigerian legal entities in one Odoo database that need per-company TINs, tax configuration and FIRS credentials handled cleanly with record-rule isolation.

How Nigeria FIRS E-Invoicing & VAT Compliance for Odoo Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
FIRS e-invoice transmissionPurpose-built connector with IRN/QR write-back and retryPossible, but you design the API integration from scratchRarely covered; most generic tax apps stop at invoicingNo FIRS concept at all
Nigerian VAT (7.5%) & WHTFull VAT + WHT tax structure with return-ready reportsBuilt to spec but at full dev cost and QA burdenSometimes VAT only; WHT usually missingGeneric tax engine, no Nigerian rates or WHT logic
Chart of accountsNigerian COA installed fresh or mapped to yoursWhatever you build; mapping is your responsibilityGeneric or country COA, limited mapping helpCountry-agnostic template only
TIN validationEnforced on `res.partner` via constrains/onchangeOnly if you scope and code itUsually a plain text field, no validationNo taxpayer-ID validation
Odoo version fitBuilt and pinned to your 17/18/19 series, Community or EnterpriseDepends on your developer's coverageOften lags new releases; may need paid upgradeShips with core but without localization
Ownership & sourceFull source + git repo handover, no lock-inYou own it, but you also carry all the riskOften encrypted/obfuscated, license-restrictedCore code, but nothing Nigeria-specific to own
Support & spec changesDefined post-go-live window + retainer for FIRS updatesYou maintain it or re-hire per changeGeneric vendor support, no Nigeria SLANo vendor accountable for FIRS compliance
Delivery modelBuild-to-order, UAT on staging, one working week from scopeLonger, unpredictable timelines and costInstant download but gaps you must fill yourselfImmediate but non-compliant out of the box

Frequently Asked Questions about Nigeria FIRS E-Invoicing & VAT Compliance

How long does delivery take?

This is a build-to-order module, so there is no instant download. Typical delivery is one working week from confirmed scope. The clock starts once we've agreed your Odoo version, WHT/VAT treatments, FIRS credentials and chart-of-accounts approach on the scoping call. We deliver to a staging instance for UAT first, then production cutover happens only after your sign-off.

Do you support Odoo Community, or only Enterprise?

Both. The module is built on the core `account` app so it runs on Community and Enterprise. A few conveniences depend on Enterprise-only apps — if any of your requirements touch those we flag it during scoping and offer a Community-compatible path, so there are no surprises after purchase.

Which Odoo versions are supported?

Odoo 17.0, 18.0 and 19.0. We pin the `__manifest__.py` version and build/test against your exact series. If you later upgrade Odoo, we can port the module as part of a follow-on engagement.

Will it overwrite my existing chart of accounts?

Only if you want it to. We can install the Nigerian localized COA fresh, or map our VAT/WHT tax structure onto your existing chart of accounts so your historical data and reports stay intact. This is one of the decisions we settle during scoping.

How does the FIRS e-invoice submission actually work?

Each posted `account.move` is serialized into the FIRS-required payload and transmitted over authenticated HTTPS to the FIRS API. The returned IRN, validation reference and QR data are written back onto the invoice, and the transmission state is tracked (submitted/validated/rejected). An `ir.cron` job can batch-submit and retry transient failures, and rejected documents surface the FIRS error for correction and re-submission.

What about support and updates after go-live?

Every engagement includes a defined post-go-live support window for bug fixes, FIRS API adjustments and questions. Because you receive the full source and git history, your own team can also maintain it. If FIRS changes its e-invoicing spec or you need new features, we handle that under a support retainer or a scoped change request.

Do we own the code?

Yes. You receive installable source for your Odoo version plus the full git repository, so you are never locked in. You can read, extend and maintain the module yourself or bring in any Odoo developer to do so.

Request a quote

Nigeria FIRS E-Invoicing & VAT Compliance

A build-to-order Odoo module that makes Nigerian companies compliant with FIRS e-invoicing, 7.5% VAT and withholding tax — with a localized chart of accounts, TIN validation and return-ready reports. ECOSIRE scopes, builds, installs and supports it on Odoo 17, 18 or 19.

  • FIRS e-invoice submission connector: serializes each posted `account.move` to the FIRS MBS payload and transmits over authenticated HTTPS/JSON-RPC
  • Stores the FIRS-returned IRN, validation reference and QR data back on the invoice, with a tracked submission state (draft → submitted → validated → rejected)
  • Nigerian VAT modelled as `account.tax` records — 7.5% standard, zero-rated and exempt treatments with correct tax-group mapping for reporting
  • Withholding tax engine that computes and posts WHT on vendor bills/payments at statutory rates (services, rent, contracts, dividends, interest)

Request a Quotation

Tell us about your Nigeria FIRS E-Invoicing & VAT Compliance requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.