How to Submit Consolidated e-Invoices in Odoo
· Odoo, Post Installation
With Malaysia’s MyInvois rollout, many SMEs face the same question:
“We have many small cash or walk-in sales — how do we submit them correctly without issuing hundreds of individual e-Invoices?”
E-Invoicing is no longer a feature in your WMS , it is a must-have for accurate production and operations.
This is exactly where Consolidated e-Invoicing comes in.
In this post, we walk through a real, working setup of consolidated e-invoicing in Odoo for Malaysia — including backend preparation, system configuration, submission steps, and common errors you’re likely to face.
This is written from implementation experience, not theory.
What Is a Consolidated e-Invoice
A consolidated e-Invoice allows businesses to:
- Combine many small B2C transactions
- Submit them as one summary e-Invoice
- Typically used for walk-in, retail, or cash sales
- Reduce operational overhead
- Stay compliant with LHDN / MyInvois rules
This is not meant for:
- B2B invoices
- Named customers with known TIN
- Large individual transactions
In Odoo, this capability is enabled via Malaysia-specific localisation modules.
If you are still thinking if WMS is suitable for your company, consider this guide for a start.
Backend Preparation (BTS – What Must Be Done First)
Before touching the UI, make sure your backend and integration layer are ready.
1. Update Sky & Restart Services
- ✅ Update Sky services
- ✅ Restart the relevant Odoo services
This ensures your environment is clean before pulling new localisation logic.
2. Pull Consolidated e-Invoice Module
Make sure the consolidated logic is available:
git fetch —depth=1 origin 17.0
Then pull:
- l10n_my_edi_consolidated
This module handles consolidated e-invoice generation for Malaysia.
3. Update MyInvois Integrator (Representative Appointment)
From MyInvois portal:
- Ensure the correct Integrator
- Ensure Representative Appointment is properly assigned
If this is missing, submissions may silently fail or be rejected.
4. Backup Database (Non-Negotiable)
Before installing or updating localisation modules:
- Take a full database backup
Especially important for production systems
Odoo Configuration (Malaysia e-Invoicing Essentials)
5. Install Required Modules
Ensure the following modules are installed:
- Malaysia – e-Invoicing
- l10n_my_edi_consolidated
6. Update Company Information
Under Company Settings:
- ✅ TIN number
- ✅ BRN (Business Registration Number)
Missing or incorrect company identity is a common cause of validation errors.
7. Create “No Tax Applicable” Tax
Even if a product has no tax, MyInvois still requires a tax structure.
Create a tax such as:
- Name: No Tax Applicable
- Rate: 0%
- Usage: Sales
This avoids validation failures for non-taxable items.
8. Update Products (Non-Taxable Items)
For products without SST or tax:
- Assign “No Tax Applicable”
- Do not leave tax fields empty
Empty tax fields are invalid in e-Invoice UBL validation.
How to Submit a Consolidated e-Invoice in Odoo
Once configuration is complete, the operational flow is straightforward.
Step 1 – Identify Invoices to Consolidate
- Select eligible invoices (typically small B2C / cash sales)
- Ensure they fall within the same consolidation period
H3: Step 2 – Use Consolidation Action
- Go to Invoices
- Select invoices
- Click Action → Consolidated e-Invoice
Step 3 – Review the Wizard
In the consolidation wizard:
- Cross-check totals
- Confirm tax amounts
- Verify classification and structure
Then click: 👉 Generate e-Invoice
Step 4 – Verify on MyInvois Portal
Always double-check submission status on:
- https://myinvois.hasil.gov.my or (for testing)
- https://preprod.myinvois.hasil.gov.my
Do not rely solely on Odoo UI feedback.
Common Errors & How to Fix Them
These are real-world issues you will likely encounter.
❌ Error: “Classification is invalid”
Cause:
- Incorrect or missing classification code
- Product or line not mapped correctly
Fix:
- Verify classification code usage
- Ensure consolidated e-invoice is correctly tagged
- Re-check Malaysia localisation logic
❌ Error: “LineItem_ItemPriceExtension_Amount is invalid”
Cause:
- Mismatch between line subtotal and computed amount
- Rounding or tax misconfiguration
- Incorrect tax assignment
Fix:
- Review ubl_20_CommonLineType
- Ensure tax and price extension calculations align
- Check that “No Tax Applicable” is properly configured for zero-tax items