MyInvois validations of LHDN (Malaysia)
75 rules, version MyInvois SDK of 25 September 2026, published by xmlvalid, after the MyInvois SDK of the Inland Revenue Board of Malaysia (LHDN) and its e-Invoice guidelines (MIT, source). Checked with MyInvois e-Invoice .
- CF345 Address Line maximum length is 150 characters. (Count: …) - the supplier's address.
- CF346 Address Line maximum length is 150 characters. (Count: …) - the buyer's address.
- CF378 Invoice currency code is required: give cbc:DocumentCurrencyCode.
- CF400 E-mail address maximum length is 320 characters - the …'s has ….
- CF401 Enter valid e-mail address - ….
- CF404 City name maximum length is 50 characters - ….
- CF405 Postcode maximum length is 5 digits in Malaysia and 50 characters elsewhere - ….
- CF406 Enter valid SST registration number - …: letters, digits and dashes, at most two numbers separated by a semicolon, up to 35 characters, or NA.
- CF407 Enter valid TTX registration number - …: letters, digits and dashes only, or NA.
- CF408 Phone Number Minimum length is 8 characters - ….
- CF409 Phone Number Maximum length is 20 characters - ….
- CF410 how to fixEnter valid phone number - …: digits with an optional leading plus, no spaces, dashes or brackets.
- CF412 Enter valid TTX registration number and maximum length is 17 characters - ….
- CV302 how to fixItemCode … does not exist in CodeType EInvoiceTypes: the e-invoice type (InvoiceTypeCode) is 01 (invoice), 02 (credit note), 03 (debit note), 04 (refund note), or 11 to 14 for the self-billed ones.
- CV316 State Codes 01-16 must be restricted to MYS only - the …'s state is … and its country ….
- CV317 how to fixState Code 17 should be used for Consolidated e-Invoice and non-Malaysian address only - the …'s address is in MYS and the document is not consolidated.
- DC501 Tax Amount currency code is not same as TaxCurrencyCode: with TaxCurrencyCode …, every cbc:TaxAmount is in …, not ….
- DC502 how to fixIf the document currency is …, all currency codes for amounts should also be …; this document has amounts in ….
- DC510 Foreign source currency does not match document currency: TaxExchangeRate's SourceCurrencyCode is …, the document currency ….
- DC512 Tax currency is not empty, therefore it should match the document currency or should be MYR: TaxCurrencyCode is … and the document currency ….
- DS301 how to fixSignature not found. Version … is signed: the document needs the signature (ds:Signature in ext:UBLExtensions) and the cac:Signature element that points to it.
- DS303 Signing time not found: the signed properties need xades:SigningTime.
- DS322 how to fixDocument digest value doesn't match digest calculated value from existing document content. Document content might have changed: the signature states …, the document's digest is … (… with the whitespace between elements).
- ERR208 General TIN (020) is not applicable for foreign supplier: EI00000000020 is for foreign buyers; a foreign supplier takes EI00000000030.
- ERR211 General TIN (020) is not applicable for foreign supplier for consolidated invoice.
- ERR213 General TIN (010) is not applicable for foreign supplier: a foreign supplier takes EI00000000030.
- ERR217 Supplier's details cannot be general TIN (010) for issuance of individual e-Invoice: with a BRN (…), give the supplier's own TIN.
- ERR220 General TIN (30) is only allowed for supplier field for self-billed scenario: ….
- ERR222 Only general TIN (010) is allowed for NRIC/ARMY: the … has an NRIC or army number and the general TIN ….
- ERR229 General TIN (030) is only allowed for foreign supplier: the buyer's TIN is EI00000000030.
- ERR236 how to fixWhere General TIN (010) and ID Type BRN/NRIC = NA, applicable for Classification Code 004 only: the document has no line classified 004 (consolidated e-invoice).
- ERR237 Buyer's details cannot be general TIN (010) for issuance of individual e-Invoice: with a BRN (…), give the buyer's own TIN.
- ERR255 General TIN (040) is applicable for BRN NA only.
- XV-MY-01 The e-invoice version (listVersionID of InvoiceTypeCode) is 1.0 or 1.1 (signed), or 1.2 or 1.3 (signed) for the Voluntary Disclosure programme, not ….
- XV-MY-02 The e-invoice code or number (cbc:ID) takes up to 50 characters; this one has ….
- XV-MY-03 The e-invoice time (cbc:IssueTime) is mandatory.
- XV-MY-04 warning The e-invoice time (cbc:IssueTime) should be in UTC, as 15:30:00Z: MyInvois reads the date and time of issue as UTC. This one is ….
- XV-MY-05 A document in another currency than MYR needs the exchange rate to MYR: cac:TaxExchangeRate with cbc:CalculationRate, the document currency as SourceCurrencyCode and MYR as TargetCurrencyCode. This one is in ….
- XV-MY-06 The exchange rate's TargetCurrencyCode is MYR, not ….
- XV-MY-07 The total tax amount (cac:TaxTotal/cbc:TaxAmount) and a tax amount per tax type (cac:TaxSubtotal) are mandatory, also when no tax is charged.
- XV-MY-08 The total excluding tax (TaxExclusiveAmount) and the total including tax (TaxInclusiveAmount) of cac:LegalMonetaryTotal are mandatory.
- XV-MY-09 warning A credit, debit or refund note gives the original e-invoice it adjusts: cac:BillingReference/cac:InvoiceDocumentReference with its number (cbc:ID) and its MyInvois unique identifier (cbc:UUID; NA when the original was issued before e-invoicing).
- XV-MY-10 warning A consolidated e-invoice (classification 004) is issued to the general public: the …'s TIN is EI00000000010, not …, with the name General Public and NA for the registration number, address and contact.
- XV-MY-11 The signature (ds:SignatureValue) does not verify with the public key of the certificate in the signature over the document digest it states.
- XV-MY-12 The certificate digest in the signed properties (xades:CertDigest) is the SHA-256 of the certificate in the signature: …, not ….
- XV-MY-13 warning The certificate's organization identifier should be the TIN of the supplier or the buyer: MyInvois rejects a document whose signer's TIN is not the submitter's (DS311). This one is ….
- XV-MY-14 The name of the supplier and of the buyer (cac:PartyLegalEntity/cbc:RegistrationName) is mandatory, up to 300 characters; the …'s is missing or longer.
- XV-MY-15 The TIN of the supplier and of the buyer is mandatory: cac:PartyIdentification/cbc:ID with schemeID TIN (a general TIN such as EI00000000010 where LHDN allows one); the … has none.
- XV-MY-16 warning how to fixA Malaysian TIN is IG and digits for an individual; for others C, CS, D, F, FA, PT, TA, TC, TN, TR, TP, J or LE, then digits without a leading zero, ending with 0; at most 14 characters. The …'s TIN, …, is not in that form.
- XV-MY-17 The registration or identification number of the supplier and of the buyer is mandatory: cac:PartyIdentification/cbc:ID with schemeID BRN, NRIC, PASSPORT or ARMY (NA where LHDN allows it); the … has none.
- XV-MY-18 warning The SST registration number of the supplier and of the buyer is a mandatory field: cac:PartyIdentification/cbc:ID with schemeID SST, NA when not registered; the … has none.
- XV-MY-19 warning The supplier's tourism tax registration number is a mandatory field: cac:PartyIdentification/cbc:ID with schemeID TTX, NA when not registered.
- XV-MY-20 The supplier's MSIC code (cbc:IndustryClassificationCode, five digits; 00000 when not applicable) is mandatory.
- XV-MY-21 warning The supplier's business activity description (the name attribute of cbc:IndustryClassificationCode) is a mandatory field.
- XV-MY-22 The address of the supplier and of the buyer (cac:PostalAddress with an address line) is mandatory, NA in the first line where LHDN allows it; the … has none.
- XV-MY-23 An address needs the city (cbc:CityName), the state (cbc:CountrySubentityCode) and the country (cac:Country/cbc:IdentificationCode), unless its first line is NA; the …'s lacks one.
- XV-MY-24 The contact number of the supplier and of the buyer (cac:Contact/cbc:Telephone) is mandatory, NA where LHDN allows it; the … has none.
- XV-MY-25 Each line needs its classification: cac:Item/cac:CommodityClassification/cbc:ItemClassificationCode with listID CLASS; line … has none.
- XV-MY-26 Each line needs the description of the product or service (cac:Item/cbc:Description), up to 300 characters; line … has none or a longer one.
- XV-MY-27 Each line needs its unit price (cac:Price/cbc:PriceAmount); line … has none.
- XV-MY-28 Each line needs its subtotal (cac:ItemPriceExtension/cbc:Amount), the unit price times the quantity; line … has none.
- XV-MY-29 Each line needs its tax amount (cac:TaxTotal/cbc:TaxAmount) and tax type (cac:TaxSubtotal/cac:TaxCategory/cbc:ID), also when no tax is charged; line … lacks them.
- XV-MY-30 warning A line's subtotal (ItemPriceExtension) is its unit price times its quantity: … in line …, not ….
- XV-MY-31 warning A line's total excluding tax (LineExtensionAmount) is its subtotal less its discounts plus its charges: … in line …, not ….
- XV-MY-32 warning A line's tax amount is the sum of its tax amounts per tax type: … in line …, not ….
- XV-MY-33 The tax scheme (cac:TaxCategory/cac:TaxScheme/cbc:ID) is OTH, with schemeID UN/ECE 5153 and schemeAgencyID 6, not ….
- XV-MY-34 A tax exemption (tax type E) needs its details: cac:TaxCategory/cbc:TaxExemptionReason, up to 300 characters, such as the exemption under the Sales Tax (Persons Exempted from Payment of Tax) Order.
- XV-MY-35 warning The total net amount (LineExtensionAmount) is the sum of the lines' totals excluding tax: …, not ….
- XV-MY-36 warning The total discount value (AllowanceTotalAmount) is the sum of the invoice's additional discounts: …, not ….
- XV-MY-37 warning The total fee or charge amount (ChargeTotalAmount) is the sum of the invoice's additional fees: …, not ….
- XV-MY-38 warning The total excluding tax (TaxExclusiveAmount) is the total net amount less the total discount plus the total charges: …, not ….
- XV-MY-39 warning The total including tax (TaxInclusiveAmount) is the total excluding tax plus the total tax amount: …, not ….
- XV-MY-40 warning The total payable amount (PayableAmount) is the total including tax less the prepayment plus the rounding amount: …, not ….
- XV-MY-41 warning The total tax amount is the sum of the tax amounts per tax type: …, not ….
- XV-MY-42 warning The tax amount of a tax type is the sum of the lines' tax amounts of that type: … for tax type …, not ….