Build-to-order Odoo module that submits and validates e-invoices to Malaysia's MyInvois (LHDN) portal with UBL 2.1, batch mode and QR. One-time license from $499.00 USD for Odoo 17, 18, 19 — includes 12 months of updates and support.

Build-to-order Odoo module that submits and validates e-invoices to Malaysia's MyInvois (LHDN) portal with UBL 2.1, batch mode and QR.
No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.
Malaysia's phased LHDN e-invoicing mandate requires every taxable sale to be cleared through the MyInvois portal before it counts as a valid tax document — and the deadlines keep pulling in more businesses each phase. This is a build-to-order Odoo module that ECOSIRE designs, builds, installs and supports specifically for your database. It is not an instant apps.odoo.com download; we tailor it to your chart of accounts, tax setup, document flow and MyInvois credentials, then hand you a production-ready, tested integration in 2–4 weeks.
MyInvois API integration with LHDN — direct submission, status polling and clearance retrieval against the official MyInvois endpoints (sandbox and production)
UBL 2.1 Malaysia e-invoice document generation matching LHDN's mandatory schema, tax categories and code lists
Batch submission via a scheduled ir.cron action — clear a full day or month of confirmed invoices in one automated run with per-record error isolation
Individual on-demand submission directly from the invoice form for ad-hoc, urgent and corrective documents
TIN validation and buyer/supplier mapping — verify tax numbers and map res.partner records to LHDN party details before submission to prevent rejections
Validated QR code and long ID embedding onto the customer-facing QWeb invoice PDF so printed documents are compliant on issue
Under the hood the module extends Odoo's native accounting rather than replacing it. We add MyInvois-specific fields to account.move (models.Model) — TIN, MSIC code, classification, e-invoice type, submission UID, long ID and validation status — using computed fields with @api.depends so status, QR payloads and clearance state stay in sync automatically. On confirmation (or via a scheduled ir.cron for batch runs) the module serializes each invoice into the LHDN UBL 2.1 Malaysia e-invoice format, signs and transmits it over the MyInvois API, then polls for the validation result. Once LHDN returns a valid clearance, the module embeds the validated QR code and long ID onto the customer-facing QWeb invoice PDF so your document is legally compliant the moment it prints.
Access is governed properly: ir.model.access.csv grants and record rules keep MyInvois credentials and submission logs scoped to the right accounting roles, and every submission, rejection and cancellation is logged in the chatter and an auditable submission table. Batch submission lets you clear a full day or month of invoices in one automated run with per-record error handling, while individual submission covers ad-hoc and corrective documents. TIN validation and buyer/supplier mapping catch bad tax numbers before they ever reach LHDN, cutting rejection loops. Because it is a real Odoo module, everything is reachable from your existing screens and via XML-RPC/JSON-RPC for headless or third-party flows.
The module targets Odoo 17, 18 and 19 and works on both Community and Enterprise. ECOSIRE handles the manifest, models, security, views (XML/OWL), QWeb report changes, automated actions and the LHDN sandbox-to-production cutover, and supports you through your first live submission window and beyond.
Runs accounting for a Malaysian business newly caught by a phased LHDN deadline. Needs Odoo invoices cleared through MyInvois correctly and on time, without turning every invoice into a manual portal upload.
Delivers Odoo to Malaysian clients and needs a reliable, supported MyInvois integration to bundle into projects — rather than building and maintaining the LHDN UBL 2.1 pipeline from scratch for every engagement.
Oversees several Malaysian legal entities on Odoo and needs consistent, auditable e-invoice clearance, batch processing at month-end close, and a clean audit trail of every MyInvois submission and rejection.
Buy the license on ecosire.com and download the Malaysia MyInvois LHDN E-Invoicing module ZIP from your account dashboard.
Extract the ZIP into your Odoo custom addons folder on the server (or upload via Apps > Install from file on Odoo.sh / runbot).
Activate Developer Mode, open Apps, click Update Apps List, search for Malaysia MyInvois LHDN E-Invoicing, and press Install.
Open the new menu, paste your ECOSIRE license key, connect any external credentials (Shopify, Amazon, Stripe, etc.), and save.
Run the built-in connection test, sync your first 10 records, and schedule the recurring cron. Contact support if anything fails.
| Criterion | ECOSIRE | Custom Build | Competitor | Odoo Native |
|---|---|---|---|---|
| MyInvois clearance built for your database | Tailored to your chart of accounts, taxes and document flow | Possible but you scope and build it yourself | Generic — assumes a standard configuration | |
| UBL 2.1 Malaysia format + LHDN code lists | Implemented and mapped to your data | You must build and maintain the schema yourself | Usually included but rigid | |
| Batch submission via scheduled ir.cron | Yes, with per-record error isolation | Only if you build the scheduler and error handling | Sometimes, varies by vendor | |
| Validated QR + long ID on QWeb invoice PDF | Embedded automatically after clearance | You build the QWeb changes and QR logic | Often yes | |
| TIN validation + buyer/supplier mapping | Pre-submission checks tuned to your partners | You implement the validation rules | Basic, generic checks | |
| LHDN schema/mandate updates handled | Covered during your support window | Ongoing burden on your team | Depends on vendor's release cadence | |
| Installation, training and go-live support | Config, docs, team training, supervised first live run | Self-managed | Usually docs only | |
| XML-RPC / JSON-RPC access | Yes — headless submission and status | If you expose it yourself | Varies |
This is a build-to-order module, not an instant download. Typical delivery is 2–4 weeks from kickoff, depending on the complexity of your tax setup and document flows. The timeline covers building the module, mapping your data to LHDN code lists, full validation in the MyInvois sandbox, and a supervised first live submission against production.
You get a defined post-go-live support window covering bug fixes and questions during your first mandate phase. Because LHDN periodically revises the MyInvois API and UBL 2.1 schema, we also handle mandate/schema updates during that window. Extended support and maintenance retainers are available if you want ongoing coverage beyond it.
Both. Individual submission runs directly from the invoice form for ad-hoc and corrective documents, and batch submission runs via a scheduled ir.cron action so you can clear a full day or month of confirmed invoices in one automated pass, with per-record error isolation so one rejection doesn't block the rest.
We build for Odoo 17, 18 and 19, on both Community and Enterprise. The module extends Odoo's native account.move and QWeb reporting rather than replacing your accounting, so it fits your existing setup. Tell us your exact version and edition at kickoff and we target that build.
Once LHDN validates a submitted e-invoice, MyInvois returns a long ID and QR payload. The module stores these on the account.move record and embeds the validated QR code and long ID onto your customer-facing QWeb invoice PDF, so the printed or emailed document is compliant the moment it's issued.
It's a real Odoo module, so submission and validation status are fully accessible via Odoo's XML-RPC and JSON-RPC APIs. External systems — a POS, an e-commerce front end, or a middleware layer — can trigger clearance and read the validation result headlessly, in addition to the in-Odoo screens.
Your Odoo version and edition, access to a staging database, your MyInvois/LHDN credentials (TIN, MSIC code, registration details, API credentials), and a sample of the invoice and tax scenarios you issue. We handle the rest, from module build through sandbox validation to the production cutover.
Build-to-order Odoo module that submits and validates e-invoices to Malaysia's MyInvois (LHDN) portal with UBL 2.1, batch mode and QR.