Home / Doing Business in Malaysia / Taxation / E-invoicing

🧭 Practical ✓ Published: 22 Jul 2026 6 min read Next review 22 Jul 2027

e-Invoice Data Fields Reference

All 55 required e-Invoice fields with mandatory or optional status, the annexure fields, LHDN code lists, and the validator that rejects each kind of error.

30-second answer Reviewed 22 Jul 2026

LHDN requires 55 data fields to issue an e-Invoice, grouped into eight categories. Most are mandatory; twenty are optional and eight are conditionally mandatory — the SST and tourism tax registration numbers, the original e-Invoice reference, currency exchange rate, tax rate, and the two tax exemption fields. An annexure adds mandatory customs form references for imports and exports of goods.

  • 55 fields in Appendix 1, grouped into eight categories, plus an annexure in Appendix 2
  • XML or JSON, both conforming to UBL 2.1
  • Eight fields are conditionally mandatory rather than always required
  • The e-Invoice date and time must be the current date and time
  • Seven validators run — three immediate, four in the background
  • Code lists for e-Invoice type, tax type, currency, MSIC, state and UoM are published in the SDK
  • A defective e-Invoice can be replaced by a substitute within three days under s.82C(8) ITA 1967

Who this applies to: Developers building a MyInvois integration, ERP consultants mapping master data, and finance teams debugging rejected submissions.

On this page
Full explanation ≈6 min

Every rejected submission traces back to one of two things: a field LHDN treats as mandatory that your ERP treats as optional, or a code value that is not in LHDN’s list. This page is the field list, as published in Appendices 1 and 2 of the e-Invoice Guideline version 4.7.

Format is XML or JSON, both conforming to UBL 2.1. LHDN groups the 55 fields into eight categories: Address, Business Details, Contact Number, Invoice Details, Parties, Party Details, Payment Info, and Products / Services.

The 55 fields

M = mandatory · C = conditionally mandatory · O = optional

Parties and party details

#FieldStatusNote
1Supplier’s NameM
2Buyer’s NameMGeneral Public on a consolidated e-Invoice
3Supplier’s TINMGeneral TIN codes apply where unavailable
4Supplier’s Registration / Identification / Passport NumberMSSM registrants use the new 12-character BRN only
5Supplier’s SST Registration NumberCMandatory for SST registrants
6Supplier’s Tourism Tax Registration NumberCMandatory for tourism tax registrants
7Supplier’s e-mailO
8Supplier’s MSIC CodeM5-digit numeric; 00000 where not available for a foreign supplier
9Supplier’s Business Activity DescriptionM
10Buyer’s TINM
11Buyer’s Registration / Identification / Passport NumberM
12Buyer’s SST Registration NumberCMandatory for SST registrants
13Buyer’s e-mailO

Address and contact

#FieldStatus
14Supplier’s AddressM
15Buyer’s AddressM
16Supplier’s Contact NumberM
17Buyer’s Contact NumberM

Invoice details

#FieldStatusNote
18e-Invoice VersionMSVDP 1.2 / 1.3 only for voluntary disclosure
19e-Invoice TypeMSee code list below
20e-Invoice Code / NumberMSupplier’s own reference
21Original e-Invoice Reference NumberCMandatory on credit, debit and refund notes
22e-Invoice Date and TimeMMust be the current date and time
23Issuer’s Digital SignatureMService provider’s certificate where one is used
24Invoice Currency CodeM
25Currency Exchange RateCMandatory where the currency is not ringgit
26Frequency of BillingO
27Billing PeriodO

Products and services

#FieldStatusNote
28ClassificationM3-digit code from LHDN’s catalogue
29Description of Product or ServiceMReceipt reference numbers on a consolidated e-Invoice
30Unit PriceM
31Tax TypeMLine and invoice level
32Tax RateC
33Tax AmountMLine and invoice level
34Details of Tax ExemptionCMandatory if an exemption applies
35Amount Exempted from TaxCMandatory if an exemption applies
36SubtotalMLine level only
37Total Excluding TaxMLine and invoice level
38Total Including TaxMInvoice level only
39Total Net AmountOInvoice level only
40Total Payable AmountMInvoice level only
41Rounding AmountOInvoice level only
42Total Taxable Amount Per Tax TypeOInvoice level only
43QuantityO
44MeasurementO
45Discount RateO
46Discount AmountO
47Fee / Charge RateO
48Fee / Charge AmountO

Payment info

#FieldStatus
49Payment ModeO
50Supplier’s Bank Account NumberO
51Payment TermsO
52Prepayment AmountO
53Prepayment DateO
54Prepayment Reference NumberO
55Bill Reference NumberO

Annexure fields

FieldStatusApplies to
Reference Number of Customs Form No. 1, 9 etc.MandatoryImport of goods
Reference Number of Customs Form No. 2OptionalExport of goods
Shipping Recipient’s Name / Address / TIN / Registration or Passport NumberOptionalGoods shipped to someone other than the buyer
IncotermsOptionalImport and export of goods
Product Tariff CodeOptionalGoods only
Free Trade Agreement informationOptionalExport only, if applicable
Authorisation Number for Certified Exporter, e.g. ATIGA numberOptionalExport only, if applicable
Country of OriginOptionalImport and export of goods
Details of other chargesOptionalImport and export of goods

LHDN notes that annexure requirements may be updated from time to time.

Code lists

e-Invoice Type

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

Tax Type

CodeType
01Sales Tax
02Service Tax
03Tourism Tax
04High-Value Goods Tax
05Sales Tax on Low Value Goods
06Not Applicable
ETax exemption, where applicable

General TIN (e-Invoice Specific Guideline, Appendix 1)

CodeUse
EI00000000010General Public — Malaysian individual with MyKad only; buyer on a consolidated e-Invoice; supplier on a consolidated self-billed e-Invoice
EI00000000020Foreign buyer or foreign shipping recipient
EI00000000030Foreign supplier, self-billed
EI00000000040Government, state and local authorities, statutory bodies, exempt institutions

The SDK also publishes classification codes, country codes, currency codes, MSIC codes, payment modes, state codes and units of measurement.

Validators and what trips them

ValidatorTimingTypical cause of failure
StructureImmediateMalformed XML or JSON, or a document that does not match the required structure for that type and version under UBL 2.1
Core FieldsImmediateA mandatory field is absent
CodeImmediate and backgroundA currency, tax type or other code value that is not in LHDN’s list
SignatureBackgroundDigital signature fails verification
TaxpayerBackgroundA TIN referenced in the document is not valid as at the document’s issuance date
Referenced DocumentsBackgroundA credit, debit or refund note points at a document that is not a valid e-Invoice at the time of issuance
Duplicate DocumentBackgroundA near-identical document was already submitted — error code DS302

Document status moves Submitted → Valid or Invalid. Submitted means only that the structure and core field checks passed; the background validators can still fail it.

Transport-level errors use standard HTTP mappings: BadRequest and BadArgument (400), Unauthorized (401), Forbidden (403), NotFound (404), TooManyRequests (429, with a Retry-After header), InternalServerError (500), NotImplemented (501), ServiceUnavailable (503).

Correcting a bad document

  • Within 72 hours of validation — the supplier may cancel, or the buyer may request rejection and the supplier then cancels. After 72 hours, neither is possible.
  • Within three days of issuing a defective e-Invoice — s.82C(8) of the Income Tax Act 1967 allows a substitute e-Invoice.
  • After that — issue a credit, debit or refund note e-Invoice referencing the original in field 21.

Common mistakes

  • Sending the old SSM registration number. Field 4 requires the new 12-digit BRN for SSM registrants.
  • Back-dating field 22. LHDN requires the current date and time; a back-dated document fails.
  • Leaving MSIC blank for a foreign supplier. Use 00000, not an empty value.
  • Using tax type 06 to mean exempt. 06 is Not Applicable; exemption is E, and it pulls fields 34 and 35 into mandatory status.
  • Retrying a failed submission unchanged. The duplicate validator will raise DS302 rather than accept it.
  • Treating a Submitted response as success. Only Valid is success.

What’s next

Map fields 3, 4, 5, 8, 10, 11 and 12 against your customer and supplier master data before writing any code — those seven are where clean-up time actually goes. Then decide the transmission route, because the Portal fills these fields by form and the API makes them your problem.

Sources & history 5 sources
⚑ Awaiting expert verification

The following are deliberately unstated or described only qualitatively until confirmed by a subject-matter expert:

  • The full published list of granular validation error codes (CF, DS, ST prefixes) — the SDK documents the seven validator categories and standard HTTP error codes but does not publish an exhaustive code-to-condition table
  • Per-endpoint API rate limits — the SDK refers to Integration Practices without stating numeric limits on the FAQ page

Sources

  1. e-Invoice Guideline (Version 4.7) — Appendices 1 and 2 — LHDN
  2. MyInvois SDK — document validation rules — LHDN
  3. MyInvois SDK — code lists — LHDN
  4. MyInvois SDK — standard error response — LHDN
  5. e-Invoice Specific Guideline (Version 4.8) — Appendix 1, list of general TIN — LHDN

Change history

Version Date Change By
01.00 20 Jul 2026 Approved and published.
More in E-invoicing View all 7 →
Related knowledge