Skip to content
Validation: What BigLedger and LHDN Check

E-Invoice Validation: What BigLedger and LHDN Check — the Buyer's Identity, the Mandatory Fields and the General TINs

Part 2 of LHDN rejected it — e-invoice validation rules and troubleshooting: the rules the buyer’s identity, the fields and the General TINs are checked against — the mandatory fields by BigLedger before anything is sent, the rest by LHDN on what arrives — which is where most rejections come from. It follows the fix loop on the first page, which says where the rejection is shown and how to resubmit. GadgetSphere’s customers run from walk-in shoppers who give nothing but a phone number, through corporate buyers with a registration number, to tourists paying with a passport, and every rule below is one that mix breaks.

Correct a record before LHDN says Valid: Save and Resubmit stops working once LHDN says Valid, and from then on only a cancellation inside 72 hours or a credit note will do (Cancelling and Correcting a Validated E-Invoice).

  1. Get the buyer’s identity right
  2. Mandatory fields
  3. General TINs

Get the buyer’s identity right — this is where most rejections come from

Every e-invoice carries, for both parties, a tax identification number (TIN) plus an identity document type and its value. Get any part of it wrong — the wrong kind of document, or the right number in the wrong shape — and LHDN refuses the e-invoice.

The rule is short:

  • Business registration number (BRN) for a company.
  • Passport for an individual who is not Malaysian — never a national identity number.
  • National identity number (NRIC) only for a Malaysian individual, and only as 12 digits with no dashes.
  • Type it. Don’t paste it.

Read the first two rules together: passport is the rule for a person, not for anyone non-Malaysian. A Singapore or Hong Kong company is not an individual, and it does not take a passport — it takes a business registration number, carrying the number its own home country issued it, alongside the EI00000000030 General TIN for a foreign supplier or EI00000000020 for a foreign buyer.

Three shapes of mistake produce those refusals:

  • A foreign customer keyed under NRIC instead of Passport. A passport number is not 12 digits, so LHDN rejects it as an invalid national identity number. Fix the identity type in two places: on the e-invoice record’s Account tab, for the document LHDN has already rejected, and on the customer record, for the next sale.
  • A national identity number stored with hyphens. The rule is 12 digits and nothing else, and the hyphens alone are enough to have the document refused — the same number without them passes.
  • A business registration number typed into the national-identity field. It is the right number in the wrong box.
The invisible one. Copying a tax number out of a browser or a PDF can bring a zero-width character along with it. The field looks perfectly correct on screen — the right digits, the right length to the eye — and LHDN rejects it every single time with an invalid-TIN error. If a tax number looks right and keeps failing, delete the field and retype it by hand.

The two error codes you will see for this class are CF324 (the identification number is not a valid national identity number) and CF358 (invalid buyer TIN). Both are fixed in two places. On the e-invoice record LHDN marked Invalid, correct the buyer on its Account tab in My E-Invoice Admin and use Save and Resubmit — the record sends its own copy of the buyer, taken when it was built, and correcting the customer changes nothing on it (why). Then correct the Customer Applet as well, so the customer’s next sale is right too.

Mandatory fields

Document header

Every e-invoice needs, at minimum:

  • Supplier: name, TIN, identity type + value, industry classification code, business activity description, address, contact number
  • Buyer: name, TIN, identity type + value, address, contact number
  • Document: e-invoice type and version, issue date/time, currency code
  • Amounts: subtotal, total excluding tax, total including tax
Contact numbers must be 8–20 characters. Very short numbers, or fields padded with text like “N/A”, fail validation.

Line items

Each line needs an item classification code (LHDN’s list of around 45 codes), an item name, a unit price, a tax type code and a tax amount. Only the item name has to be there: the other four are filled in for you before anything checks. A classification left blank on the line is read from the item record, and if the item has none either it becomes 022 – Others; a missing price or tax amount becomes zero; the tax type is taken from the document line’s own e-invoice tax type — not from the item — and the tax amount then has the last word over it.

If the line’s tax amount is blank or zero, the tax type is set to 06 – Not Applicable whatever was keyed; if there is a tax amount but the tax type is blank, or still reads 06, it becomes 01 – Sales Tax. Any other tax type keyed against a real tax amount is sent as it stands.

Classification code 004 is reserved for consolidated e-invoices. Never use it on an individual e-invoice line — LHDN marks the document Invalid even when everything else, including the buyer’s TIN, is correct.

Addresses

Both the supplier and the buyer address must carry an address line 1 (up to 150 characters), a city (up to 50) and a state. Address lines 2 and 3 (150 characters each) and a 5-character postal code are optional. Anything longer than the limit is shortened silently rather than rejected. The postcode is never checked against any list on the way to LHDN — it is cleaned, cut to five characters and sent as typed. A postcode not found message comes from the address screen’s own lookup, the platform-wide postcode list behind its typeahead, and has no bearing on whether the e-invoice goes through.

If address line 1, city or state is missing, the document is not submitted at all — it goes to a pool for you to complete.

General TINs — when you don’t have the buyer’s TIN

LHDN publishes four General TINs for cases where a real one is not available:

General TINUse for
EI00000000010General public / local buyers (mainly consolidated e-invoices)
EI00000000020Foreign buyers
EI00000000030Foreign suppliers (self-billed purchases)
EI00000000040Government / armed forces

Rules that trip people up:

  1. For individual e-invoices, always prefer the buyer’s real TIN.
  2. EI00000000010 can be used on an individual e-invoice for a local buyer without a TIN — but only together with identity type NRIC and a valid 12-digit national identity number. Any other combination is rejected.
  3. If the buyer’s identity type is a registration number, the General Public TIN is not acceptable — obtain the company’s real TIN, or, for a local buyer under RM 10,000, let the sale be consolidated instead.
  4. If the buyer’s identity type is a passport, neither escape is open. The General Public TIN is rejected with a passport, BigLedger only ever substitutes EI00000000010 and only when the identity type is NRIC, and consolidation does not rescue the document either — whichever consolidation run your company is on, the pooled receipt is swept in and reported as General Public, which is not the e-invoice the buyer wanted. Where the document ends up depends on its submission type: keyed Individual, or at RM 10,000 or more, it waits in the Individual Pool; left blank or marked Consolidated below that, it goes to the Batch Pool. Ask for the tax number while the customer is still with you. EI00000000020 is LHDN’s General TIN for foreign buyers, and if it is used it has to be keyed onto the document by hand; BigLedger never fills it in for you.
  5. The government TIN is not a general-purpose stand-in either. Using it on an ordinary individual e-invoice gets the document returned Invalid.
  6. If a buyer has a TIN but no identity value, BigLedger fills the value with 000000000000 automatically, which LHDN accepts.
For transactions of RM 10,000 or more where the buyer’s identity type is a business registration number and the TIN is blank, BigLedger searches LHDN’s registry by registration number and fills the TIN in for you when it finds a match. Below RM 10,000 no search happens — that is why a small sale with a missing TIN simply goes to a pool.

What success looks like for this part

The record you corrected reads Valid in My E-Invoice Admin → Internal Submission → To IRB E-Invoice, and, where the fault was the buyer’s identity, the record you corrected — the customer record, or the details typed on the document — carries the identity type the rules above name (a business registration number for a company, a passport for a person who is not Malaysian, a 12-digit national identity number with no dashes for a Malaysian) and a tax number that was typed rather than pasted. When you are done, run the whole page’s success check.

Common mistakes in this part

Pasting a tax number, keying a foreign customer as NRIC, storing a national identity number with dashes, and correcting only one of the two records are in the table of common mistakes on the first page, each with what you see and the fix.

Next: Which record and which address BigLedger sends.

Related documentation

Last updated on