top of page
  • Writer's pictureTek Siong, Hock

Odoo E-Invoice for Malaysia

Updated: Jun 20

First batch of the E-Invoice Tax-payers will be kickstarted in 1st of Aug 2024, and Excelroot is proud to announce our upgrade service offer to any Odoo user company in Malaysia.

Three type of the e-Invoice flow

  1. Standard e-Invoice - Usually for B2B company that selling to other businesses. This will require each invoice, credit note, debit note or refund note to be submitted to the e-Invoice portal. Each invoice has to contain buyer's TIN and BRN (Business Registration Number).

2. Consolidate e-Invoice - Usually for B2C company that selling to individual or walk-in customer. Selling company has to consolidate the multiple sales into a single invoice. Invoice will contain name "General Public" and dummy TIN "EI00000000010" and BRN "NA", specific MSIC and classification.

3. Self-billed e-invoice - any local Malaysia company that has received vendor invoice from Foreign company has to create the self-billed invoices to submit to the e-Invois portal. In this case, the buyer will be the local Malaysia company. This is corresponding to the vendor bill in Odoo.

There are 4 Type of Invoices, namely, Invoice, Credit Note, Debit Note and Refund Note.

In the Odoo, there is no concept of the Refund Note and therefore we would use the CN, instead. Refund note is typically used in the retail business, when fully refund to the customer.


E-Invoice Flow

  1. Submit invoices (invoice/CN/DN/Refund Note) via "Submit Document' API. In our current design, user will click on "Send e-invoice" button to submit explicitly. This is to reduce the user mistake that will inevitably force them to cancel the Invoice. At the point of submission, the content of the invoice may not be fully validated by the e-Invois portal, so e-invoice status is "Submitted".

2. Validation Notification via email from the E-Invois portal to te buyer and seller.

3. Odoo will retry to call the "Get Submission" API to get the status of the submitted invoice, via background schedule that is running every 10 minutes. If all is good, the e-invoice status will be updated to "Validated". If something goes wrong, the e-invoice status will be updated to "Invalidate".

4. Upon validated, Odoo user can print the invoice in pdf with QR code on the top right corner, and send to the Buyer (Customer). Invoice will have the QR code generated based on the submitted invoice UUID. Buyer may validate the invoice by scanning the QR code with any QR code App and upon clicking the generated URL, will be redirect to the submitted invoice in the E-Invois portal.

5. If user wish to cancel the invois, a cancel reason must be entered. Upon clicking "Cancel" button, call the 'Cancel Document" API. If cancelled is successful, the -einvoice status will be "Cancelled", standard Odoo invoice status will also be updated to Cancelled.

The format of the e-invoice QR code URL is {envbaseurl}/uuid-of-document/share/longid

Odoo E-Invoice In Action


Odoo upgrade activities to be performed on e-Invoice

Apart from upgrade the Odoo, there are some activities to be performed to complete the e-invoice operation.

a) Set up TIN, BRD, Address and other info on all the customers.

b) Request for the client ID and client secret for e-Invois portal sandbox and production.

c) Update invoice print pdf with QR code, TIN and BRN.

d) Product mapping to the classification code, which has to send along in the invoice line item.

e) Update mapping of Tax type (Sales, Service or Tourism), Tax Exemption, and other tax related information.

134 views0 comments

Recent Posts

See All


bottom of page