MyInvoisUBL 2.1Mandatory FieldsTutorial

The 55 MyInvois Fields — Which Are Actually Mandatory

LHDN lists 55 e-invoice data fields, but 20 are optional and 8 are conditional. The full list by category, and what each MyInvois field is for.

F
Finvo Team
12 min read

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)

#FieldStatusWhat it is
1Supplier's NameRequiredBusiness or individual supplying the goods or services
2Buyer's NameRequiredBusiness 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)

#FieldStatusWhat it is
3Supplier's TINRequiredSupplier's TIN, or the applicable general TIN where permitted
4Supplier's Registration / Identification Number / Passport NumberRequired12-digit SSM business registration number for SSM-registered taxpayers; MyKad/MyTentera for Malaysian individuals; passport, MyPR or MyKAS for non-Malaysians
5Supplier's SST Registration NumberMandatory for SST registrantsNot applicable if you are not SST-registered
6Supplier's Tourism Tax Registration NumberMandatory for tourism tax registrantsTypically hotel operators and online travel operators
7Supplier's e-mailOptional
8Supplier's MSIC CodeRequired5-digit Malaysia Standard Industrial Classification code
9Supplier's Business Activity DescriptionRequiredDescription matching the MSIC code

Buyer's details (10–13)

#FieldStatusWhat it is
10Buyer's TINRequiredBuyer's TIN assigned by LHDN
11Buyer's Registration / Identification Number / Passport NumberRequiredSame formats as field 4
12Buyer's SST Registration NumberMandatory for SST registrantsNot applicable if the buyer is not SST-registered
13Buyer's e-mailOptional

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)

#FieldStatusWhat it is
14Supplier's AddressRequiredRegistered, business or residential address
15Buyer's AddressRequiredRegistered, 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)

#FieldStatusWhat it is
16Supplier's Contact NumberRequiredOffice, mobile or fax
17Buyer's Contact NumberRequiredOffice, mobile or fax

Invoice details (18–27)

#FieldStatusWhat it is
18e-Invoice VersionRequiredCurrent e-invoice version
19e-Invoice TypeRequiredDocument type — invoice, credit note, debit note, refund note, and the self-billed equivalents
20e-Invoice Code / NumberRequiredYour own internal document reference, e.g. INV12345
21Original e-Invoice Reference NumberMandatory where applicableThe IRBM Unique Identifier Number of the document being adjusted. Required when issuing a credit, debit or refund note
22e-Invoice Date and TimeRequiredNormally the current date and time; see the SVDP exception below
23Issuer's Digital SignatureRequired; check version rulesv1.1 validates the signature; an authorised provider may sign using its own certificate
24Invoice Currency CodeRequiredCurrency the monetary values are stated in
25Currency Exchange RateMandatory where applicableRate for converting a non-MYR currency to Ringgit
26Frequency of BillingOptionalDaily, weekly, monthly, quarterly, and so on
27Billing PeriodOptionalThe 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:

CodeDocumentCodeDocument
01Invoice11Self-billed Invoice
02Credit Note12Self-billed Credit Note
03Debit Note13Self-billed Debit Note
04Refund Note14Self-billed Refund Note

Products and services (28–48)

This is the largest group and the one where most of the optional fields sit.

#FieldStatusWhat it is
28ClassificationRequiredCategory of the product or service being billed
29Description of Product or ServiceRequired
30Unit PriceRequiredPrice per unit
31Tax TypeRequiredApplies at both line and invoice level
32Tax RateMandatory where applicablePercentage or prevailing specified rate
33Tax AmountRequiredApplies at both line and invoice level
34Details of Tax ExemptionMandatory if a tax exemption appliesE.g. the buyer's sales tax exemption certificate number
35Amount Exempted from TaxMandatory if a tax exemption applies
36SubtotalRequiredPer line item, excluding taxes, charges and discounts
37Total Excluding TaxRequiredLine and invoice level
38Total Including TaxRequiredInvoice level only
39Total Net AmountOptionalInvoice level only
40Total Payable AmountRequiredIncluding tax and rounding, excluding amounts paid in advance
41Rounding AmountOptionalInvoice level only
42Total Taxable Amount Per Tax TypeOptionalInvoice level only
43QuantityOptional
44MeasurementOptional
45Discount RateOptionalLine and invoice level
46Discount AmountOptionalLine and invoice level
47Fee / Charge RateOptionalLine and invoice level
48Fee / Charge AmountOptionalLine 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:

CodeTax typeCodeTax type
01Sales Tax05Sales Tax on Low Value Goods
02Service Tax06Not Applicable
03Tourism TaxETax exemption (where applicable)
04High-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.

#FieldStatusWhat it is
49Payment ModeOptionalCash, cheque, bank transfer, card, e-wallet, and so on
50Supplier's Bank Account NumberOptional
51Payment TermsOptional
52Prepayment AmountOptional
53Prepayment DateOptional
54Prepayment Reference NumberOptional
55Bill Reference NumberOptionalYour 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:

  1. TIN format and validity — including using the wrong general TIN, or supplying a TIN that does not match the registration number given alongside it.
  2. Field 21 populated with the wrong value — your own invoice number instead of LHDN's UUID for the original document.
  3. 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.
  4. Missing MSIC code or business activity description — fields 8 and 9 are easy to forget because they never change.
  5. 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.

Related Articles