- Home
- Apps
- SaaS Tools
- UK Making Tax Digital VAT
Illustrative previewA build-to-order Odoo module that files UK VAT returns under Making Tax Digital straight from your Odoo ledgers,
preserving the digital link from source transaction to the nine boxes HMRC receives. ECOSIRE scopes, builds, installs and supports it on your Odoo 17.0, 18.0 or 19.0 database.
What is UK Making Tax Digital VAT?
A build-to-order Odoo module that files UK VAT returns under Making Tax Digital straight from your Odoo ledgers, preserving the digital link from source transaction to the nine boxes HMRC receives. ECOSIRE scopes, builds, installs and supports it on your Odoo 17.0, 18.0 or 19.0 database. 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
Built to order, done for you
No DIY setup — a working app, built, installed and supported by ECOSIRE.
- 1
You order
Start with a one-time build price. We scope it with you at kickoff.
- 2
We build & install
ECOSIRE builds, configures and installs it on your Odoo.
- 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
UK VAT-registered businesses are required to keep digital records and file VAT returns through Making Tax Digital software — and the part that catches most Odoo users out is not the filing itself, it is the digital link. Odoo core will happily produce a VAT report you can read on screen and export to spreadsheet, but the moment a figure is retyped, copy-pasted, or adjusted in Excel before it reaches HMRC, the unbroken digital audit trail HMRC expects is gone. Odoo's own tax report is also built around a generic tax-grid model: it has no concept of HMRC obligation periods, no view of what you actually owe or have paid, no handling of the Flat Rate Scheme's fixed percentage, no Cash Accounting basis switch, and no partial exemption or fuel scale charge workflow. In practice UK teams end up bridging out to a third-party spreadsheet tool, which reintroduces exactly the manual step the legislation was written to remove.
This module closes that gap inside Odoo. We build a dedicated uk.mtd.vat.return model (a models.Model with @api.depends computes) that derives every one of the nine boxes directly from account.move.line and the UK tax grids on account.tax, so each box value is a stored computed field with a drill-down back to the originating journal items. There is no export-and-retype step: the numbers submitted are the numbers Odoo computed. Around that we build the HMRC integration layer — OAuth 2.0 authorisation with token storage and refresh, the mandatory fraud-prevention header set, retrieval of open obligations, submission of the return, and read-back of liabilities and payments — each exposed as its own model so a failed call is a stored record with a status and an HMRC correlation ID, not a lost log line. Submission is guarded: a period cannot be filed twice, a filed return is locked, and the underlying journal entries for that period can be flagged so late postings surface as a correction rather than silently changing a submitted figure.
On top of the filing core we build the scheme-specific behaviour a UK finance team actually needs. Flat Rate Scheme returns compute turnover-based output tax at your agreed percentage with the limited-cost-business test and the first-year discount handled as configurable parameters. Cash Accounting drives the box calculation from payment reconciliation rather than invoice date, using the reconciled account.partial.reconcile links so the basis switch is data-driven rather than a separate report. Partial exemption support adds a recoverable-proportion calculation with a standard-method annual adjustment, and fuel scale charges post as a scheduled adjustment entry against a dedicated tax so the charge lands in the right boxes without a manual journal. Everything is visible: list, form and pivot views (XML, with an OWL component for the obligations panel), a QWeb PDF submission receipt for your records, and a full posting audit so anyone can reconstruct why box 6 says what it says.
Security and access follow standard Odoo practice — ir.model.access.csv entries for a VAT Filer and a VAT Manager group, record rules scoping returns to the correct res.company for multi-company groups, and HMRC credentials stored per company rather than globally. Automated actions (ir.cron) refresh obligations and liabilities on a schedule so the dashboard reflects HMRC's view without anyone clicking. The whole module is exposed over the standard XML-RPC/JSON-RPC API, so an external process or a scheduled action can trigger a draft-return computation if you want filing to be part of a wider close routine. It runs on Odoo Community and Enterprise; where Enterprise's accounting reporting engine is present we plug into it rather than duplicating it, and on Community we ship the equivalent report views ourselves — the __manifest__.py declares the correct dependency set for whichever edition and series (17.0, 18.0 or 19.0) you run.
This is a build-to-order product, not an instant download. You request a quotation, we run a scoping call to confirm your VAT scheme, group structure, chart of accounts and tax grid setup, and how your data currently reaches HMRC. From confirmed scope, typical delivery is one working week: we develop against your Odoo version, deliver to a staging database for UAT with a dry-run submission against HMRC's sandbox, then install on production with a documented rollback. You receive the full source, technical and user documentation, a training session, and a post-go-live support window.
What you get
- Complete installable module source for your exact Odoo series (17.0, 18.0 or 19.0), Community or Enterprise
- Installation and configuration on your environment, including HMRC application credentials setup, tax grid mapping and scheme configuration
- Technical documentation: model and field reference, `__manifest__.py` dependencies, security groups and record rules, HMRC endpoint map and error-handling behaviour
- End-user guide plus a live training session for your finance team covering the authorise → compute → review → submit → reconcile cycle
- UAT on a staging database including a dry-run submission against the HMRC sandbox, with a signed-off test script and a documented rollback plan
- Post-go-live support window covering defect fixes, filing-run assistance and HMRC error triage
- Git repository handover with full commit history, so your team or any future developer owns the code outright
- Handover session with your accountant or agent if required, walking through the audit trail from journal item to submitted box
Who this is for
Finance Manager / Financial Controller at a UK VAT-registered SME
Runs the quarterly VAT cycle in Odoo but currently exports to a spreadsheet and files through a bridging tool. Needs the return computed and submitted from the ledger itself, with a drill-down they can defend if HMRC asks how box 6 was derived, and a locked record of every filing.
Group Finance Lead in a multi-company Odoo estate
Manages several UK entities, some on different VAT schemes, inside one Odoo database. Needs per-company HMRC credentials, record rules that stop one entity's return being visible or filable from another, and a single obligations dashboard across the group.
Odoo-using business on a special VAT scheme
On the Flat Rate or Cash Accounting Scheme, or partially exempt, where Odoo's generic tax report simply does not produce the right numbers. Needs the scheme logic built into the computation — flat-rate percentage, payment-basis boxes, recoverable proportion and the annual adjustment — rather than reconstructed by hand each quarter.
Accounting practice or outsourced finance team filing on behalf of clients
Files for multiple Odoo-based clients and needs a repeatable, auditable process: obligations visible per client, submissions evidenced with HMRC correlation IDs and receipts, and a PDF pack per period that can go straight into the client file.
How UK Making Tax Digital VAT Compares
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| Digital link to HMRC | Unbroken — submitted figures are the same computed fields Odoo derived from journal items | Achievable, but the link discipline depends entirely on how your developer builds it | Often a report export the finance team still bridges through a spreadsheet | Produces a tax report on screen and a spreadsheet export; no submission path |
| HMRC API integration | OAuth 2.0 with token refresh, full fraud-prevention headers, obligations, submission, liabilities and payments | Built from scratch; the fraud-prevention header set alone is a substantial specification to get right | Usually submission only, with obligations and liabilities missing or read-only | None — Odoo core has no HMRC connection |
| VAT scheme coverage | Standard, Flat Rate, Cash Accounting and partial exemption built and tested against your own periods | Whatever is specified; scheme edge cases typically surface after the first live quarter | Standard scheme assumed; special schemes usually out of scope | Generic tax grids only — no scheme concept |
| Fit to your chart of accounts and tax setup | Mapped to your actual tax grids and accounts during scoping, before a line is written | Fits by definition, at the cost of designing the whole solution yourself | Assumes a stock UK localisation; deviations mean forking or manual adjustment | Depends on you configuring the l10n_uk grids correctly, unaided |
| Audit trail and evidence | Submission records with HMRC correlation ID, payloads, receipt and a QWeb PDF; box-level drill-down | Only if explicitly specified and paid for | Typically a confirmation message; limited stored evidence | Report drill-down exists, but nothing about a submission because none occurs |
| Multi-company and access control | Per-company credentials, VAT Filer / VAT Manager groups, record rules preventing cross-entity filing | Frequently deferred to phase two and retrofitted | Often single-company or global credentials | Standard Odoo accounting rights; no filing-specific roles |
| Cost and timeline | Fixed quotation after scoping; typically one working week from confirmed scope | Open-ended discovery, build and rework; usually the longest and least predictable path | Low licence cost up front, with bridging tools or manual effort absorbing the difference | No build cost, but no filing capability — a separate MTD tool is still required |
| Ownership and ongoing maintenance | Full source and git repository handed over; optional maintenance for Odoo and HMRC API changes | You own it and you maintain it, including every future HMRC API change | Vendor-controlled; you wait for their release when HMRC changes something | Maintained by Odoo, but the MTD gap is not on their roadmap to close |
Frequently Asked Questions about UK Making Tax Digital VAT
How long does delivery take, and what does the process look like?
This is a build-to-order module, not an existing download. After you request a quotation we hold a short scoping call (typically 30 minutes) to confirm your Odoo version and edition, VAT scheme, company structure, chart of accounts and current tax grid setup. From confirmed scope, typical delivery is one working week. That covers development against your specific version, delivery to a staging database, UAT with a dry-run submission against HMRC's sandbox, and then a production install with a documented rollback plan.
What support and updates are included after go-live?
Every build includes a post-go-live support window covering defect fixes, assistance on your first live filing runs, and triage of any HMRC error responses. Beyond that window we offer an optional annual maintenance agreement covering compatibility with your Odoo point releases and any changes HMRC makes to the MTD VAT API or its fraud-prevention header requirements. You also receive the full git repository, so your own team can maintain the code if you prefer.
Does this satisfy HMRC's digital links requirement?
The module is designed so no manual step sits between your Odoo journal entries and the figures sent to HMRC. Each of the nine boxes is a computed field derived from `account.move.line` records via your UK tax grids, and the same computed values are what the submission call sends — there is no export, no spreadsheet, no retyping. The submission record retains the request payload and HMRC correlation ID so the link is evidenced end to end. Your own record-keeping upstream of Odoo still has to be digital; we will review that with you during scoping.
Which Odoo versions and editions does it work with?
We build for Odoo 17.0, 18.0 and 19.0, on Community or Enterprise. The `__manifest__.py` declares the dependency set appropriate to your edition — on Enterprise we integrate with the existing accounting reporting engine rather than duplicating it, and on Community we ship the equivalent report views within the module. One build targets one series; if you plan to upgrade Odoo we can quote the port at the same time.
We are on the Flat Rate Scheme (or Cash Accounting, or partially exempt). Is that covered?
Yes — scheme handling is part of the build rather than an afterthought. Flat Rate computes output tax on turnover at your agreed percentage with the limited-cost-business test and first-year discount as parameters. Cash Accounting drives the boxes from payment reconciliation rather than invoice date. Partial exemption adds a recoverable-proportion calculation with a de minimis test and a standard-method annual adjustment posted as its own entry. Tell us your scheme at scoping and it is configured and tested against your own historical periods.
Can we test before filing anything real to HMRC?
Yes, and we insist on it. The module ships with a sandbox toggle that points the whole flow — OAuth authorisation, obligation retrieval, submission — at HMRC's test service. UAT on your staging database includes a dry-run submission and a comparison of the computed boxes against your last manually prepared return, so you sign off on numbers you already recognise before the first live filing.
How is access controlled, and can we run several UK companies from one database?
Access is controlled with standard Odoo security: `ir.model.access.csv` entries for a VAT Filer group (compute and review) and a VAT Manager group (authorise and submit), plus record rules scoping returns and HMRC credentials to the correct `res.company`. Multi-company groups get per-entity credentials and a consolidated obligations view, with no cross-entity filing possible from the wrong company context.
Related Modules

UAE Payroll & WPS SIF Generator
Localized UAE payroll for Odoo with one-click MOHRE WPS SIF files, EOSB gratuity, AED structures and visa/Emirates ID expiry tracking.

Uganda EFRIS Compliance for Odoo
A build-to-order Odoo module that registers your invoices and receipts with URA's EFRIS from inside Odoo, returning the FDN, verification code and QR onto the customer-facing document. ECOSIRE scopes, builds, installs and supports it for your exact Odoo version and chart of accounts.

UPI Dynamic QR Payment for Odoo
Auto-generate dynamic UPI QR codes at Odoo checkout and POS with amount, VPA and order reference pre-encoded for instant collection.

USA 1099 & E-File Pack
Track vendor 1099-NEC and 1099-MISC amounts continuously inside Odoo instead of rebuilding them in a spreadsheet every January. ECOSIRE builds, installs, and supports this module for your Odoo 17, 18, or 19 database after a scoping call.
UK Making Tax Digital VAT
A build-to-order Odoo module that files UK VAT returns under Making Tax Digital straight from your Odoo ledgers, preserving the digital link from source transaction to the nine boxes HMRC receives. ECOSIRE scopes, builds, installs and supports it on your Odoo 17.0, 18.0 or 19.0 database.
- Nine-box VAT return computed as stored `@api.depends` fields on a dedicated `uk.mtd.vat.return` model, each box drilling down to the originating `account.move.line` records
- Unbroken digital link from source transaction to submitted figure — no spreadsheet export, retype or bridging step anywhere in the filing path
- HMRC OAuth 2.0 authorisation per `res.company`, with encrypted token storage, automatic refresh, and re-consent prompting before token expiry
- Full mandatory fraud-prevention header set constructed and sent on every HMRC call, with the header payload retained on the submission record for audit