kiira

MyInvois, explained like you've got a shop to run.

Malaysia's e-invoicing regime has five phases, four invoice types, three rejection reasons everyone hits, and one acronym (TIN) that breaks half the submissions. This guide unpacks all of it — with the parts you can safely skip marked clearly.

12 min read Updated April 2026 Reviewed by MIA-registered accountants

The ten-second version.

  1. 01

    MyInvois is LHDN's e-invoicing system. Every invoice, credit note, and debit note you issue must be submitted to LHDN in near-real-time and validated before you give it to the customer.

  2. 02

    It rolls out in phases by turnover. Phase 1 started Aug 2024 (big companies). Phase 5 (smallest businesses) begins 1 Jul 2026. You cannot opt in early except voluntarily.

  3. 03

    The format is Peppol BIS 3.0 — an international XML/JSON standard. You do not need to understand it. Your software does.

  4. 04

    There are four invoice types that matter for micros: standard B2B, consolidated B2C, self-billed, and credit/debit notes.

  5. 05

    A valid TIN (for you and your buyer) is the #1 thing that gets invoices rejected. Start collecting TINs from your repeat customers now, not the week before Phase 5.

  6. 06

    Non-compliance starts at RM200 per invoice and caps at RM20,000 per offence. Fines are per invoice, not per return.

What MyInvois actually is.

MyInvois is the web portal and API run by Lembaga Hasil Dalam Negeri (LHDN — the Inland Revenue Board) that processes every e-invoice issued in Malaysia. Think of it as a clearinghouse: your invoice goes to LHDN first, gets stamped with a unique ID, and only then is considered legally issued to your customer.

The pitch from LHDN is that real-time invoice data closes tax leakage. The reality for a micro-business is that you now have a technical obligation — the invoice you hand a customer must carry a QR code linking back to LHDN's validated copy.

Five phases, five turnover bands.

Rollout is staggered by annual turnover. You don't pick your phase — LHDN does, based on your most recent Borang B or C. Check your band below, then work backwards from the go-live date.

  1. Phase 1
    1 Aug 2024
    Live

    Turnover > RM100M

    The largest Malaysian corporations. Live and settled. Irrelevant to you unless you supply them — in which case they may require your invoices in MyInvois format even if you're not mandated yet.

  2. Phase 2
    1 Jan 2025
    Live

    Turnover RM25M–RM100M

    Mid-market manufacturers, distributors, established service firms. Live. Typical issue: integrating Peppol output with legacy SQL Account / AutoCount / SAP.

  3. Phase 3
    1 Jul 2025
    Live

    Turnover > RM500K

    SMEs. The first phase that hit a meaningful number of owner-operated businesses. Most confusion lands around consolidated B2C invoices and TIN collection.

  4. Phase 4
    1 Jan 2026
    Live

    Turnover RM150K–RM500K

    Small businesses — many kedai makan, retail shops, wholesalers. Live. Enforcement grace periods vary; check LHDN's latest circular before assuming a deadline is soft.

  5. Phase 5
    1 Jul 2026
    Upcoming

    Turnover ≤ RM150K

    The smallest micros. Freelancers, tuition centres, part-time operators, side-hustles that issue receipts. If you've never issued a formal invoice in your life, this is the phase where you start.

Note Phases have shifted before. Always sanity-check against the latest LHDN circular — or run our readiness tool, which pulls the current dates automatically.

Four shapes an e-invoice can take.

LHDN recognises one invoice 'family' with four members. Most micros use two of them. Knowing which is which prevents half of the classic rejection errors.

B2B 01 / 04

Standard e-invoice

The default. You sell to another business that has a TIN. You issue one e-invoice per sale, submit to MyInvois, hand the customer the validated PDF with the QR code.

Example

You wholesale dried chilli to a restaurant group. One invoice per delivery.

B2C 02 / 04

Consolidated B2C e-invoice

For counter sales to end-consumers who don't ask for an invoice (the 30 customers who bought teh ais today). You issue one rolled-up e-invoice per month summarising them all. Must be submitted within 7 days of month-end.

Example

A kopitiam rolls up a month of walk-in sales into one e-invoice dated 31 May.

Inbound 03 / 04

Self-billed e-invoice

You issue an e-invoice on behalf of your supplier. Required when the supplier is a foreign entity, a non-registered freelancer, or for specific transactions (royalties, e-commerce platform payouts).

Example

You pay a Bali-based designer RM2,000. Nobody in Bali knows MyInvois. You self-bill.

Adjust 04 / 04

Credit & debit notes

Corrections. If you over-charged, you issue a credit note referencing the original invoice's UUID. Under-charged? Debit note. Both go through MyInvois and inherit the original's audit trail.

Example

A customer returns RM200 of the RM800 order. You issue a credit note for RM200.

From sale to validated invoice in 4 steps.

  1. 01

    You create the invoice

    In your software. Buyer's name, TIN, BRN, line items, SST if applicable. Kiira fills most of this automatically from your customer record and product catalogue.

  2. 02

    Software submits to MyInvois

    The invoice goes to LHDN as Peppol BIS 3.0 XML (or JSON) via the MyInvois API. This happens in under a second.

  3. 03

    LHDN validates & returns a UUID

    If it passes schema + business-rule validation, you get back a Unique Identifier and a QR code. If it fails, you get a human-readable error — we translate the cryptic ones.

  4. 04

    You deliver to the buyer

    PDF with QR code + an optional e-invoice copy. The QR code lets anyone (LHDN, the buyer, an auditor) look up the validated original on LHDN's portal.

What LHDN needs on every invoice.

Miss one of these and the invoice gets rejected at submission. Collect these from your customers once, save them on the customer record, reuse forever.

About you (the seller)

Seller
  • TIN

    Your Tax Identification Number. Starts with IG/OG/C/CS depending on entity type.

  • BRN / NRIC

    Business Registration Number (SSM) or your NRIC if sole prop.

  • SST number

    Only if you're SST-registered. Not all micros are.

  • MSIC code

    5-digit industry code. Pick it once on MyInvois portal.

  • Registered address

    Must match SSM records. Common rejection reason.

About the buyer

Buyer
  • TIN

    Mandatory for B2B. For consolidated B2C, a generic "EI00000000010" stands in.

  • BRN / NRIC / Passport

    Depends on buyer type. Passport for foreign buyers.

  • Name & address

    Exactly as registered. A typo = rejection.

  • Contact number or email

    Required for B2B. Keep it on the customer record.

Per line item

Line
  • Classification code

    LHDN 3-digit catalogue. "022" = services. Map your products once.

  • Description

    What you actually sold. Not "Misc" — LHDN rejects vague entries.

  • Quantity × unit price

    Denominated in your pricing currency (typically MYR).

  • SST rate & amount

    0%, 6%, or 8% depending on service. Zero is still a value — don't leave it blank.

  • Discount (if any)

    As a line-level amount, not a percentage.

The 72-hour rule everyone misses.

When you submit, MyInvois returns either Valid (you get the UUID) or Invalid (you get an error). If it's Valid, you have a 72-hour window during which either party — you or the buyer — can cancel the invoice. After 72 hours, cancellation is closed and you must issue a credit note instead.

This matters because buyers sometimes dispute an invoice days later. If you're past the window, you can't just delete it — you have to credit-note it, which leaves a trail.

↳ The three rejection reasons that account for most errors

! E01

Buyer TIN invalid or missing

Either the TIN format is wrong, it doesn't exist in LHDN's register, or the buyer gave you a personal TIN when they needed a corporate one. Always validate TINs at the point of customer creation.

! E02

Classification code missing on a line item

Every line needs a classification code. Picking 'Other' (022) on everything is a red flag during an audit, but it's rarely rejected — picking nothing always is.

! E03

SST calculation mismatch

Amount × rate ≠ stated tax. Usually caused by rounding done in your spreadsheet but not in your submission. Don't round twice.

What it costs to get it wrong.

LHDN's statutory fines for MyInvois non-compliance are set under Section 120(1)(d) of the Income Tax Act 1967 — introduced in the 2024 Finance Act specifically for e-invoice offences. They're per-offence, not per-return, which makes them add up fast.

RM200

Minimum fine per offence

An offence is one non-compliant invoice. Repeat = multiply.

RM20,000

Maximum fine per offence

Imposed at LHDN's discretion for serious / repeated non-compliance.

6 months

Possible imprisonment

In theory, for the most egregious cases. Has not been used for micros as of early 2026.

↳ LHDN has publicly signalled leniency during the first 6 months of each new phase — but 'leniency' historically means 'warnings first, fines after'. Don't plan around it.

A realistic afternoon of prep work.

If you've got 3 hours and a lukewarm teh tarik, here's the order to do it in.

  1. 01 10 min

    Find your TIN

    Log in to MyTax (mytax.hasil.gov.my). TIN is on the top-right of your profile. If you've never registered, start here.

  2. 02 15 min

    Claim your MyInvois account

    Log in at mytax with your TIN, activate MyInvois, pick your MSIC code, confirm your registered address matches SSM.

  3. 03 30 min

    Collect your top 20 customers' TINs

    Message them on WhatsApp. Save to your customer records. This is the single highest-leverage prep task — 80% of your B2B invoices will go to these 20.

  4. 04 30 min

    Map your products to classification codes

    LHDN's catalogue has ~200 codes. For most micros, 3–5 cover everything. Kiira's catalogue suggests codes based on your product name.

  5. 05 20 min

    Issue one test invoice in sandbox

    MyInvois has a pre-production environment. Submit a dummy invoice, see the UUID come back, inspect the QR code. Builds confidence for your first real one.

  6. 06 10 min

    Decide on consolidated B2C cadence

    If you sell to walk-ins, pick a day of the month to roll up the month's counter sales. Seventh of the month works for most — well before the 30-day window closes.

Questions accountants actually get asked.

Do I need to use MyInvois if my customer never asks for an invoice?

+
Yes — from the date your phase goes live. For counter sales to consumers who don't ask, you use a consolidated B2C e-invoice that rolls up the month's walk-ins into one submission. A single e-invoice is still required; you just don't issue it per-customer.

What if I'm under Phase 5 but I want to go live sooner?

+
You can. LHDN lets any taxpayer opt in voluntarily at any time. Some micros do this because a larger customer (Phase 1 / 2) requires it. Once you opt in, you're treated as mandated — there's no going back.

Can I still issue a handwritten bill?

+
For internal records, sure. But anything you hand a customer as a 'tax invoice' must be the MyInvois-validated PDF with the QR code, once your phase is live. A handwritten slip won't satisfy an audit.

What happens if MyInvois is down when I need to issue an invoice?

+
LHDN's documented contingency is a 72-hour grace period during which you can issue a provisional invoice and submit retrospectively once service returns. Kiira queues submissions automatically — if LHDN is down, your invoice sits in the outbox and goes the moment the service is back.

Do I need to invoice my cousin who buys one bag of kuih?

+
You need to capture the sale. For walk-in / casual cash sales to consumers, consolidated B2C covers it — one invoice at month-end summarising everything. You don't need to hand your cousin a QR-coded PDF for a RM5 transaction.

Does MyInvois replace SST?

+
No. MyInvois is the invoicing layer; SST is the tax. If you're SST-registered, your e-invoices include SST lines, but SST filing (the 2-monthly SST-02 return) is separate and still goes to Customs, not LHDN.

I use SQL Account / AutoCount / Bukku — do I need to switch?

+
No. Most accounting software vendors in Malaysia have either built MyInvois integration in or connect via a middleware. If yours hasn't, that's when Kiira steps in — we can run alongside your existing books and just handle the e-invoice submission layer.
MyInvois · ready when you are

Validation preview.
Plain-language errors.
Never auto-files.

Kiira's MyInvois module shows you exactly what LHDN will see before you submit. Errors come back in English (or BM, or 中文), not XML fault codes. And nothing hits LHDN until you tap 'send'.