Where the number 55 comes from
Appendix 1 of LHDN's e-Invoice Guideline sets out a numbered list of data fields for an e-invoice. It runs from 1 to 55, and that is where the phrase "55 mandatory fields" comes from.
The list is real and the count is right. The word "mandatory" is where the shorthand goes wrong.
LHDN's own heading for the table is "List of data fields required to issue an e-Invoice", and inside it, individual fields carry qualifiers:
- 20 fields are marked
[Optional]— payment terms, prepayment details, discount rate and amount, quantity, measurement, and others. - 8 fields are conditional — marked
[Mandatory, where applicable],[Mandatory for SST-registrant],[Mandatory for tourism tax registrant], or[Mandatory if tax exemption is applicable]. - 27 fields carry no qualifier and apply to an ordinary e-invoice.
So "55 mandatory fields" describes the size of the list, not the number of values you must supply on any given document. A domestic sale with no discount, no prepayment and no tax exemption does not carry 55 populated fields. LHDN also notes that taxpayers are free to add fields beyond the list where they need them.
Two further caveats worth stating plainly:
- This list is versioned. The e-Invoice Guideline is reissued regularly and the appendix is amended with it. Check the current version on the LHDN e-Invoice microsite before treating any field list — including this page — as final.
- The appendix is not the whole schema. Appendix 2 adds Annexure fields for import and export of goods and for shipments going to a recipient other than the buyer, and the MyInvois SDK defines the technical structure, code lists and validation rules that the submission itself has to satisfy.
The 55 fields, by category
LHDN groups the appendix under eight headings. Below is the full list in LHDN's own order and numbering, with the qualifier shown where the guideline marks one.
Parties (1–2)
| # | Field | Status | What it is |
|---|---|---|---|
| 1 | Supplier's Name | Required | Business or individual supplying the goods or services |
| 2 | Buyer's Name | Required | Business or individual purchasing the goods or services |
For a normal invoice, the supplier issues the document. For a self-billed invoice, the buyer issues it; the supplier and buyer remain in their respective fields.
Supplier's details (3–9)
| # | Field | Status | What it is |
|---|---|---|---|
| 3 | Supplier's TIN | Required | Supplier's TIN, or the applicable general TIN where permitted |
| 4 | Supplier's Registration / Identification Number / Passport Number | Required | 12-digit SSM business registration number for SSM-registered taxpayers; MyKad/MyTentera for Malaysian individuals; passport, MyPR or MyKAS for non-Malaysians |
| 5 | Supplier's SST Registration Number | Mandatory for SST registrants | Not applicable if you are not SST-registered |
| 6 | Supplier's Tourism Tax Registration Number | Mandatory for tourism tax registrants | Typically hotel operators and online travel operators |
| 7 | Supplier's e-mail | Optional | |
| 8 | Supplier's MSIC Code | Required | 5-digit Malaysia Standard Industrial Classification code |
| 9 | Supplier's Business Activity Description | Required | Description matching the MSIC code |
Buyer's details (10–13)
| # | Field | Status | What it is |
|---|---|---|---|
| 10 | Buyer's TIN | Required | Buyer's TIN assigned by LHDN |
| 11 | Buyer's Registration / Identification Number / Passport Number | Required | Same formats as field 4 |
| 12 | Buyer's SST Registration Number | Mandatory for SST registrants | Not applicable if the buyer is not SST-registered |
| 13 | Buyer's e-mail | Optional |
For individual buyers, LHDN provides a concession: a Malaysian individual (MyKad/MyTentera) or a MyPR/MyKAS holder may give their TIN, their identification number, or both. You do not need to extract a TIN from a walk-in customer. Where a buyer does not require an e-invoice at all and the transaction goes into a consolidated document, the buyer's name is General Public and the buyer's TIN is EI00000000010.
Address (14–15)
| # | Field | Status | What it is |
|---|---|---|---|
| 14 | Supplier's Address | Required | Registered, business or residential address |
| 15 | Buyer's Address | Required | Registered, business or residential address |
Note that LHDN treats the address as one field, not as a set of separate line, city, state and postcode fields. The MyInvois SDK does break the address into structured components with their own code lists — state codes and country codes among them — which is why the technical schema and this appendix are worth reading side by side.
Contact number (16–17)
| # | Field | Status | What it is |
|---|---|---|---|
| 16 | Supplier's Contact Number | Required | Office, mobile or fax |
| 17 | Buyer's Contact Number | Required | Office, mobile or fax |
Invoice details (18–27)
| # | Field | Status | What it is |
|---|---|---|---|
| 18 | e-Invoice Version | Required | Current e-invoice version |
| 19 | e-Invoice Type | Required | Document type — invoice, credit note, debit note, refund note, and the self-billed equivalents |
| 20 | e-Invoice Code / Number | Required | Your own internal document reference, e.g. INV12345 |
| 21 | Original e-Invoice Reference Number | Mandatory where applicable | The IRBM Unique Identifier Number of the document being adjusted. Required when issuing a credit, debit or refund note |
| 22 | e-Invoice Date and Time | Required | Normally the current date and time; see the SVDP exception below |
| 23 | Issuer's Digital Signature | Required; check version rules | v1.1 validates the signature; an authorised provider may sign using its own certificate |
| 24 | Invoice Currency Code | Required | Currency the monetary values are stated in |
| 25 | Currency Exchange Rate | Mandatory where applicable | Rate for converting a non-MYR currency to Ringgit |
| 26 | Frequency of Billing | Optional | Daily, weekly, monthly, quarterly, and so on |
| 27 | Billing Period | Optional | The interval covered, e.g. 2026-01-01 – 2026-01-31 |
For qualifying SVDP disclosures using SVDP 1.2 or SVDP 1.3, the SDK permits an earlier Issuance Date and Time from the applicable mandatory implementation date. See the SVDP guidance and confirm the treatment with your tax agent.
Field 21 is the one that catches people out. It takes LHDN's UUID for the original document, not your own invoice number — your reference goes in field 20. Getting this wrong is a common cause of rejected adjustment documents.
Field 19 uses the MyInvois document type codes:
| Code | Document | Code | Document |
|---|---|---|---|
| 01 | Invoice | 11 | Self-billed Invoice |
| 02 | Credit Note | 12 | Self-billed Credit Note |
| 03 | Debit Note | 13 | Self-billed Debit Note |
| 04 | Refund Note | 14 | Self-billed Refund Note |
Products and services (28–48)
This is the largest group and the one where most of the optional fields sit.
| # | Field | Status | What it is |
|---|---|---|---|
| 28 | Classification | Required | Category of the product or service being billed |
| 29 | Description of Product or Service | Required | |
| 30 | Unit Price | Required | Price per unit |
| 31 | Tax Type | Required | Applies at both line and invoice level |
| 32 | Tax Rate | Mandatory where applicable | Percentage or prevailing specified rate |
| 33 | Tax Amount | Required | Applies at both line and invoice level |
| 34 | Details of Tax Exemption | Mandatory if a tax exemption applies | E.g. the buyer's sales tax exemption certificate number |
| 35 | Amount Exempted from Tax | Mandatory if a tax exemption applies | |
| 36 | Subtotal | Required | Per line item, excluding taxes, charges and discounts |
| 37 | Total Excluding Tax | Required | Line and invoice level |
| 38 | Total Including Tax | Required | Invoice level only |
| 39 | Total Net Amount | Optional | Invoice level only |
| 40 | Total Payable Amount | Required | Including tax and rounding, excluding amounts paid in advance |
| 41 | Rounding Amount | Optional | Invoice level only |
| 42 | Total Taxable Amount Per Tax Type | Optional | Invoice level only |
| 43 | Quantity | Optional | |
| 44 | Measurement | Optional | |
| 45 | Discount Rate | Optional | Line and invoice level |
| 46 | Discount Amount | Optional | Line and invoice level |
| 47 | Fee / Charge Rate | Optional | Line and invoice level |
| 48 | Fee / Charge Amount | Optional | Line and invoice level |
Quantity and measurement being optional in the appendix surprises most people. In practice you will populate them for anything sold by unit, and the SDK's own validation rules and your buyers' expectations both push in that direction — but the guideline does not make them unconditional.
The tax type codes are a short list:
| Code | Tax type | Code | Tax type |
|---|---|---|---|
| 01 | Sales Tax | 05 | Sales Tax on Low Value Goods |
| 02 | Service Tax | 06 | Not Applicable |
| 03 | Tourism Tax | E | Tax exemption (where applicable) |
| 04 | High-Value Goods Tax |
Note that 06 means Not Applicable, not Service Tax. Service Tax is 02. Mixing these two up produces a document that validates but misstates the tax treatment.
Payment info (49–55)
Every field in this group is optional.
| # | Field | Status | What it is |
|---|---|---|---|
| 49 | Payment Mode | Optional | Cash, cheque, bank transfer, card, e-wallet, and so on |
| 50 | Supplier's Bank Account Number | Optional | |
| 51 | Payment Terms | Optional | |
| 52 | Prepayment Amount | Optional | |
| 53 | Prepayment Date | Optional | |
| 54 | Prepayment Reference Number | Optional | |
| 55 | Bill Reference Number | Optional | Your internal billing reference |
The Annexure fields
Appendix 2 of the guideline adds fields for two situations outside an ordinary domestic sale.
Mandatory, where applicable, for import and export of goods: the reference number of Customs Form No. 1, 9 or similar, the declaration of goods imported.
Optional, for import and export: the reference number of Customs Form No. 2 (the declaration of goods exported), Incoterms, product tariff code (goods only), Free Trade Agreement information (exports, if applicable), certified exporter authorisation number such as an ATIGA number (exports, if applicable), country of origin, and details of other charges.
Optional, where goods ship to someone other than the buyer: the shipping recipient's name, address, TIN, and registration or identification number.
LHDN notes that Annexure field requirements may be updated from time to time.
So how many fields does your invoice actually need?
Count the 27 unqualified fields, then add whichever conditional fields your transaction triggers:
- SST-registered supplier → field 5
- SST-registered buyer → field 12
- Tourism tax registrant → field 6
- Foreign currency invoice → field 25, and the multi-currency rules that go with it
- Credit, debit or refund note → field 21
- Tax exemption claimed → fields 34 and 35
- Tax rate applicable → field 32
Then add optional fields where they are useful to you or your buyer. Payment terms and bank account details are optional to LHDN and often essential to getting paid.
Where things go wrong
The failures that actually appear in rejected submissions cluster in a few places:
- TIN format and validity — including using the wrong general TIN, or supplying a TIN that does not match the registration number given alongside it.
- Field 21 populated with the wrong value — your own invoice number instead of LHDN's UUID for the original document.
- Tax figures that do not reconcile — the tax amount must follow from the rate and the taxable amount, and the totals must follow from the lines.
- Missing MSIC code or business activity description — fields 8 and 9 are easy to forget because they never change.
- Currency handled as a display setting — a non-MYR invoice needs the exchange rate and correct MYR tax reporting, not just a different symbol.
Common MyInvois rejection errors works through these with the specific fixes.
The practical takeaway
The useful mental model is not "55 things to fill in every time". It is three tiers: a core that is always required, a conditional layer driven by your registrations and the nature of the transaction, and an optional layer you populate because it is useful.
Most of the core never changes between invoices — your TIN, registration number, MSIC code, address, contact number. Configure those once. What changes per document is the buyer, the lines, and the tax treatment, and that is where attention is worth spending.
For the wider picture of how these documents move through validation, see what MyInvois is and how it works.
