How to submit invoices to LHDN
Last reviewed: 2026-06-26 · Last updated: 2026-08-03
Scope: How to submit invoices to LHDN using Approve and Submit or consolidation flows.
Update: Added a demo of the bulk path for submitting draft invoices as non-consolidated.
Once invoices are inside JomeInvoice - whether created manually, uploaded via CSV, sent through SFTP, or pushed via API - you need to submit them to LHDN. There are two paths depending on whether you are submitting individual B2B invoices or consolidating B2C receipts.
| Path | Use when | Flow |
|---|---|---|
| Approve and Submit | B2B invoices - submit each invoice to LHDN immediately | Inbound → Outbound Queue → LHDN |
| Consolidate | B2C receipts - batch and submit monthly as one consolidated invoice | Inbound Draft → Tag → Convert → Submit → Outbound Queue → LHDN |
Path 1 - Approve and Submit (non-consolidated)
Use this for standard B2B invoices. The invoice goes straight from JomeInvoice to LHDN without any consolidation step.
-
Bring invoices into JomeInvoice
Via any inbound method - Create (+button), Direct Upload, SFTP, or API. At the point of entry you have two options:
- Approve and Submit - submits directly to LHDN immediately
- Save as Inbound Draft - holds the invoice in JomeInvoice for you to review and submit later
-
Submit Inbound Draft invoices (if saved as draft)
If you saved invoices as Inbound Draft and want to submit them as non-consolidated, go to the invoice module and click Bulk Actions → Submit to Non-Consolidated. JomeInvoice will submit the selected invoices to LHDN.
This demo shows the bulk path: filtering your inbound drafts, then submitting them as non-consolidated.
-
Invoice moves to Outbound Queue
JomeInvoice places the invoice in the Outbound Queue and submits it to LHDN. Status transitions from Pending → Valid (accepted) or Invalid (rejected with error).
Path 2 - Consolidate (B2C monthly submission)
Use this for B2C receipts where customers did not individually request an e-invoice. You batch all receipts for the month and submit one consolidated invoice to LHDN. The flow has three stages: Tag → Convert → Submit.
To start: go to your invoice module and click Bulk Actions → Consolidate Invoice. This opens the Select & Convert Consolidated eInvoice panel, where you choose which invoices to include: the invoice Status (Draft by default - you can also select Invalid, Error, or Cancelled), the Date Period (by Issue Date or Created Date, with a date range), and the Consolidated Format. Click Proceed & Preview to tag the matching invoices and open the review flow.
Consolidation is not limited to Drafts. Selecting the Invalid, Error, or Cancelled status lets you consolidate receipts whose individual e-invoices failed or were cancelled - see Fixing consolidation problems.
This demo runs through the whole consolidation - tagging receipts, converting them, and submitting to LHDN.
-
Stage 1 - Tag invoices
After you click Proceed & Preview, JomeInvoice tags the invoices that match your selection and presents them for review. On this screen:
- Total selected - invoices included in this consolidation
- Total excluded - invoices automatically excluded because their amount exceeds RM10,000. LHDN requires individual e-invoices for transactions above this threshold, so they cannot be consolidated.
- You can cancel the tagging of individual invoices if you want to remove specific ones from this batch before proceeding.
-
Stage 2 - Convert invoices
Set or confirm the Consolidated Format - you can choose it in the panel when you start, and still change it on the consolidated draft before converting. It controls how your receipts are structured:
Option A: Range of Receipt/Invoices per line item
Set a consolidated range limit - the maximum number of invoices per sub-consolidated invoice. The field accepts a limit from 1 to 1,000.
For example, if you have 3,000 invoices and set the limit to 300, JomeInvoice creates 10 sub-consolidated invoices, all grouped under one parent consolidated invoice.
You can delete individual sub-consolidated invoices from this view - deleted sub-invoices flow back to Inbound Draft so you can handle them separately.
Option B: Single Receipt/Invoice per line item
Each receipt becomes its own line item in the consolidated invoice. Use this when you need a more granular breakdown in the submission.
-
Stage 3 - Submit to LHDN
At the submit stage, you have three options:
- Submit - sends the consolidated invoice to LHDN. It moves to the Outbound Queue and is submitted to MyInvois.
- Export CSV - download the consolidated invoice data as a CSV before submitting, for internal records or review.
- Revert - undo this consolidation and send all invoices back to Inbound Draft. Use this if you need to make changes before submitting.
Once you click Submit and the consolidated invoice reaches LHDN, it cannot be reverted. Use the Revert option before submitting if you need to make any changes.
After submission - Outbound
Whether submitted via Approve and Submit or Consolidate, all invoices flow through the Outbound section of the module after submission. Here you can track the submission status, see LHDN validation results, and identify any invoices that were rejected.