- For eCommerce businesses, e-invoicing is not only about issuing one invoice after checkout. Online orders may need to become individual e-invoices, monthly consolidated e-invoices, refund notes, credit notes or debit notes, depending on buyer details and order status.
- If the buyer provides a TIN, BRN or the other required details, the transaction is handled as an individual, non-consolidated e-invoice. If the buyer does not request one, the order stays under general public transactions and is submitted through the monthly consolidated e-invoice within 7 calendar days after month end [e-Invoice Specific Guideline v4.8, para 3.6.2].
- A buyer has until the last day of the transaction month to request an individual e-invoice; after that, the seller may proceed with consolidation [v4.8, para 3.6.10].
- Marketplace sales are different: for Shopee, Lazada and TikTok Shop transactions, the platform operator issues the e-invoices, not the seller [v4.8, para 14.4.5].
- For Shopify and WooCommerce stores, orders can sync into the e-invoice workflow automatically. Platforms without a direct connector are covered by API, SFTP, CSV bulk upload or manual creation.
Do eCommerce Businesses Need to Submit e-Invoices in Malaysia?
Yes, but the workflow depends on where the sale happens. For marketplace sales on Shopee, Lazada and TikTok Shop, the marketplace operator issues the e-invoices for platform transactions [e-Invoice Specific Guideline v4.8, Section 14.4]. If you sell through your own website, such as Shopify, WooCommerce or a custom store, your business manages the e-invoice workflow for those direct sales itself.
This is where multi-channel sellers get confused. Each channel routes differently:
| Sales channel | Who issues the e-invoice | Your route to LHDN |
|---|---|---|
| Shopee / Lazada / TikTok Shop | The marketplace operator | None needed — keep the platform’s records |
| Own Shopify store | You | Direct connector |
| Own WooCommerce store | You | Direct connector |
| Custom website or app | You | API |
| ERP or order management system | You | API or SFTP |
| Platform without a connector | You | CSV bulk upload |
| WhatsApp, phone or manual orders | You | Manual creation |
Your implementation phase is set by total annual revenue across all channels, not per channel. Marketplace revenue counts toward the threshold even though the platform issues those e-invoices. For the marketplace side in detail, see our guide for Shopee, Lazada and TikTok Shop sellers.
What Online Store Transactions Must Be Handled?
eCommerce businesses should not only think about normal sales invoices. Online store transactions involve different e-invoice treatments depending on buyer details and order status: B2B orders, B2C buyer-requested individual e-invoices, general public receipts, monthly consolidated e-invoices, refund notes, credit notes, debit notes, returns, cancellations, shipping charges, vouchers and partial refunds.
From an e-invoice point of view, the key question is not whether the order is B2B or B2C. It is whether the buyer is identified with proper details (TIN, BRN, NRIC, company name) or treated as general public:
| Buyer situation | Treatment | Deadline |
|---|---|---|
| Buyer provides TIN / BRN / required details | Individual (non-consolidated) e-invoice | On issuance |
| Buyer requests via QR or link within the transaction month | Converted from consolidated to individual | Request by last day of the month |
| No details provided, no request | General public — monthly consolidated e-invoice | Within 7 calendar days after month end |
| Single transaction exceeding RM10,000 | Always individual — consolidation not allowed | Effective 1 Jan 2026 [v4.8, Table 3.6] |
Shipping charges, vouchers and discounts are treated as invoice line items. Refunds, returns, cancellations and partial refunds require the correct adjustment document: a refund note, credit note or debit note. The RM10,000 rule applies to every business regardless of phase.
Connect your online store to LHDN MyInvois
Shopify, WooCommerce, API, SFTP or CSV, JomeInvoice connects your order data to MyInvois without replacing your store.
How an Online Order Becomes an LHDN e-Invoice
A proper eCommerce e-invoice workflow connects online order data to LHDN without repeated manual entry. In general, the order moves through this flow:
Online store order → draft invoice → buyer detail check → individual or consolidated e-invoice → LHDN submission → status update
Shopify, WooCommerce, API, SFTP or CSV order data enters JomeInvoice first. From there, the invoice is either submitted as an individual e-invoice or held for monthly consolidated submission, depending on the buyer details. The sections below walk through each stage.
How Shopify and WooCommerce Orders Sync
Shopify
For Shopify sellers, the work is connecting Shopify order data to LHDN MyInvois. JomeInvoice’s Shopify integration converts completed Shopify orders into LHDN-compliant e-invoices without manual processing. Shopify order data already carries most of what an e-invoice needs: customer name, billing and shipping address, order amount, shipping fee, discounts and vouchers, product line items, refund status, and company details or TIN/BRN where collected.
This removes the copy-paste loop between Shopify, spreadsheets, accounting software and the MyInvois Portal. It matters for brands selling through their own Shopify site, because marketplace rules do not cover direct website sales. For the compliance side of running a Shopify store, who is the supplier of record, and what buyer data the checkout can capture, see our Shopify e-invoice guide for Malaysia.
WooCommerce
In the WooCommerce workflow, the sync trigger is the order status changing to Completed. When the merchant marks an order as Completed in the WooCommerce Admin Panel, the order automatically syncs to JomeInvoice, and the WooCommerce order number becomes the invoice number: Order #212 stays #212.
At the same time, WooCommerce sends the customer an Order Completed email containing their receipt and a Request e-Invoice link, which leads to the e-invoice request form. After syncing, the invoice appears in the workspace under Sales > Invoices > WooCommerce > Consolidated > Unprocessed. All WooCommerce orders start there by default, whether or not the buyer later requests an individual e-invoice.
For why the WooCommerce storefront is so often the channel that never got connected, and what an LHDN review finds there, see our WooCommerce e-invoice guide.
What If Your Platform Is Not Shopify or WooCommerce?
Not every online store uses Shopify or WooCommerce. Some sellers run other platforms, custom websites, marketplace exports, order management systems, ERPs or manual spreadsheets. Those cases are covered by four routes:
- API: custom stores and ERPs push order data programmatically
- SFTP: structured, scheduled data transfer for higher volumes
- CSV bulk upload: the store exports order data; no integration build needed
- Manual creation: special cases and one-off transactions
Good e-invoicing software should not force every seller onto one platform. Some businesses are ready for direct integration, some for API, some still need CSV upload. The best workflow is the one that fits the seller’s actual operation.
B2B, B2C, Individual Buyer and General Public: The Difference
Many businesses describe eCommerce orders as B2B or B2C. Useful commercially, but e-invoicing needs a more precise cut: is the buyer specifically identified, or general public?
Individual buyer e-invoice
Applies when the buyer provides the required details (TIN, BRN, NRIC, company name; see what a TIN is and how validation works). This buyer may be a company purchasing from your store, a sole proprietor buying for business use, an individual requesting an e-invoice for tax relief, or any customer who provides details at checkout or through a QR code or request link. With valid details, the transaction is treated as a non-consolidated e-invoice.
General public transaction
Applies when the buyer does not request or provide details. These transactions group into the monthly consolidated e-invoice using the general public TIN EI00000000010 [v4.8, Appendix 1]. Most B2C customers never request an individual e-invoice at checkout. The seller still needs a way to track those receipts and submit them correctly through consolidation.
How B2C Buyer Requests Work Through QR Code or Link
One major challenge for online stores is the buyer who purchases first and requests an e-invoice later, for a company claim or tax purposes. JomeInvoice supports a buyer request flow using a QR code or link: every receipt your customer receives, paper or digital, can carry a QR code or link pointing to the e-invoice request form.
The process works like this:
- Seller issues a normal paper or digital receipt carrying the QR code or request link.
- The buyer scans the code or opens the link.
- Receipt number, date and amount are pre-filled from the order data.
- The buyer fills in the required details, name, email, contact number, address, individual TIN, and company name plus BRN if requesting under a company.
- The buyer submits before the last day of the transaction month.
- The system checks the invoice number, date and amount against the seller’s record.
- On a match, the request is approved and the individual e-invoice is submitted to LHDN. On a mismatch, the request is rejected and the buyer is notified to resubmit.
A buyer who purchases on 15 May can request until 31 May. After that, the seller proceeds with consolidated submission [v4.8, para 3.6.10]. Once a valid request is processed, the invoice status flips from Consolidated to Non-Consolidated automatically, no manual review per request. Merchants track everything under Sales > Requests.
How Monthly Consolidated e-Invoice Submission Works
Not every B2C customer requests an individual e-invoice. The rest go through monthly consolidation, following the consolidated e-invoice rules:
- The store receives B2C orders during the month; orders land as draft records.
- Buyers who request individual e-invoices are pulled out of the consolidation pool.
- Remaining general public transactions stay under consolidation.
- The seller reviews the monthly consolidated draft, converts and submits it. LHDN’s deadline is 7 calendar days after month end [v4.8, para 3.6.2].
Inside JomeInvoice: Sales > Invoices > WooCommerce > Consolidated > Unprocessed, then Bulk Action → Consolidate Invoices, apply filters (date, currency, branch), proceed, review and approve. One submission covers the previous month’s qualifying transactions.
This structure also prevents double counting: a transaction already issued as an individual e-invoice sits in Non-Consolidated status and never enters the consolidation pool. For sellers with many small orders, this is the single most important part of the workflow. Note the exception: any single transaction exceeding RM10,000 cannot be consolidated at all [v4.8, Table 3.6].
Refunds, Returns, Vouchers and Shipping Charges
eCommerce is not always a straight sale. Returns, cancellations, partial refunds, vouchers and separate shipping charges all affect the e-invoice record:
| Scenario | e-Invoice treatment |
|---|---|
| Shipping charge | Line item in the invoice |
| Voucher or discount | Reflected in line items; totals must match the final payable amount |
| Refund or return | Refund note, linked to the original invoice by offset reference |
| Quantity, price or billing correction | Credit note or debit note |
| Cancellation after 72 hours of validation | Adjustment document (cancellation window has closed) |
In the WooCommerce flow: the merchant opens the order, clicks Refund, enters the amount and reason, chooses Refund Manually and sets the status to Refunded. The refund syncs automatically, and a new Refund Note appears under Sales > Refund Notes > WooCommerce > Consolidated, carrying its own reference number and linking back to the original invoice through the offset reference. Invoice cancellation is not supported in this workflow, refund notes are used instead.
Credit and debit notes cover the adjustment cases: quantity changes, price corrections, added delivery fees, partial returns and billing errors.
Is Submission Fully Automatic?
Partly. It is worth being precise about which part. Order sync from Shopify and WooCommerce is automatic. Buyer request matching against invoice number, date and amount is automatic. The consolidated-to-individual conversion on a valid request is automatic.
The monthly consolidated e-invoice still requires the seller to review, convert and submit the consolidated record by the deadline. That is deliberate: merchants get automation for daily order handling while keeping control over the month-end submission that closes their books.
What About Shopee, Lazada and TikTok Shop Sellers?
For marketplace sales, the platform operator issues the e-invoices; sellers do not issue anything for those transactions [v4.8, para 14.4.5]. But sellers should still keep two document types from the Seller Centre:
- Self-billed e-invoices: issued by the platform to you for your sales payouts [v4.8, Section 14.5]
- Normal e-invoices: issued by the platform to you for commissions, advertising fees and service charges [v4.8, Section 14.6]
If you sell on both Shopee and your own WooCommerce store, the marketplace handles its side while you handle direct website sales, and your total revenue across all channels still determines your implementation phase. The full breakdown of who issues what, including the three e-invoices behind every marketplace order, is in our marketplace seller guide.
How JomeInvoice Works as e-Invoicing Software for eCommerce
JomeInvoice acts as the middle layer between online stores and LHDN, built on direct MyInvois integration. For eCommerce businesses it supports: direct connectors for Shopify and WooCommerce, API for custom stores, SFTP for structured transfer, CSV bulk upload for unsupported platforms, manual creation for special cases, auto-sync, buyer request matching, automatic consolidated-to-individual conversion, LHDN submission, status tracking, and one-click monthly consolidated submission.
Each business runs a different setup: one Shopify store, multiple WooCommerce sites, marketplace plus own website, ERP-driven, or still exporting CSVs. The point is connecting whatever exists to MyInvois without replacing it.
Why Manual MyInvois Submission Does Not Scale
Manual submission works for a very small store with a handful of orders. As volume grows, the failure modes stack up: re-entered customer details, missing TIN or BRN, wrong invoice amounts, shipping mismatches, vouchers not reflected, refunds not adjusted, duplicate consolidated submissions, late month-end filing, and no tracking of Pending, Valid or Invalid status.
The goal is not just to submit e-invoices. It is a repeatable workflow that handles orders, requests, refunds and consolidation without overwhelming the team. For the wider compliance picture, see the complete LHDN e-invoice guide and the self-billed e-invoice scenarios.
Frequently Asked Questions
Q: How long does a buyer have to request an individual e-invoice?
Until the last day of the transaction month. A purchase made on 15 May must be requested by 31 May. After that, the seller may decline and the transaction goes into consolidated submission [v4.8, para 3.6.10].
Q: Do eCommerce businesses need to submit e-invoices in Malaysia?
Yes, based on business type, sales channel, revenue phase and transaction workflow. For own-website sales on Shopify or WooCommerce, sellers manage their own e-invoice submission.
Q: How do online stores submit e-invoices in Malaysia?
Manually through the MyInvois Portal, or through e-invoicing software. JomeInvoice supports direct integration, API, SFTP, CSV upload and manual creation depending on the store setup.
Q: Do Shopify sellers need e-invoice software in Malaysia?
Yes, in practice: Shopify sellers with their own store need a way to submit direct website sales to LHDN. The Shopify connector syncs orders into the e-invoice workflow for preparation and submission.
Q: Does WooCommerce support e-invoice in Malaysia?
Yes, through the WooCommerce integration. Orders sync when marked Completed, and the order number carries through as the invoice number.
Q: What if my platform is not Shopify or WooCommerce?
API, SFTP, CSV bulk upload or manual creation, depending on your data structure and workflow.
Q: What is a consolidated e-invoice for eCommerce?
A monthly grouping of general public B2C transactions into one e-invoice submission. B2C receipts not requested as individual e-invoices go into monthly consolidation, submitted within 7 calendar days after month end.
Q: How do B2C customers request an e-invoice from an online store?
By scanning a QR code or opening a request link on their receipt, then filling in the required buyer information before the end of the transaction month.
Q: What happens if the buyer request details do not match the seller’s record?
The request is rejected if the invoice number, date or amount does not match. On a match, the individual e-invoice is submitted to LHDN and returned validated.
Q: Is eCommerce e-invoice submission fully automatic?
Partly. Order sync and buyer request matching are automated. The monthly consolidated e-invoice still requires the seller to review, convert and submit it.
Q: Do Shopee, Lazada and TikTok Shop sellers need to issue e-invoices themselves?
No. The marketplace operator handles issuance for platform sales. Sellers keep the platform’s self-billed e-invoices for payouts and normal e-invoices for fees as records.
Q: Is this workflow suitable for both SMEs and large enterprises?
Yes. SMEs typically use CSV upload or the Shopify and WooCommerce connectors; larger businesses use API, SFTP, ERP and multi-store workflows.
Start managing eCommerce e-invoices properly
Order sync, buyer requests, monthly consolidation, refund notes and status tracking in one platform.
Disclaimer: This article is for general informational purposes only and does not constitute legal or tax advice. LHDN guidelines are subject to updates. Always refer to the latest official LHDN e-Invoice Guidelines at myinvois.hasil.gov.my and consult a qualified tax professional for advice specific to your business.
Last updated: 10 July 2026 | Written by Yinn Sheng Ng, Head of Marketing