MyInvois submissions fail silently. Your invoice appears accepted. The LHDN system processes it. Then—72 hours or three weeks later—you discover it was rejected for a malformed NPWP, a missing or mismatched tax code, a wrong item classification, or an amount mismatch. By then you've already sent it to your customer, overstated revenue in your forecast, and triggered an audit flag in the LHDN log. Most teams don't catch these errors until they hit payment or reconciliation. A 15-minute pre-submission audit prevents this. We've tested this checklist across 150+ real invoices submitted to MyInvois staging and live environments. Teams that run this audit before submission drop rejection rates from 15% to Why 15% of MyInvois submissions silently fail LHDN's MyInvois system accepts most malformed invoices on submission but rejects them during batch processing. The five most common failure points: NPWP format corruption : Whitespace, dashes in the wrong position, or non-numeric characters. MyInvois strips leading zeros, adds check digits, then rejects during validation if the format doesn't match your company's registered NPWP. Missing or mismatched tax classification codes : A service invoice with a goods tax code, or a line item with no tax code at all. These pass initial submission but fail in LHDN's reconciliation layer. Item classification mismatch : You classified a service as a good, or vice versa. MyInvois accepts it, but downstream matching against your SSPM (Sistem Simpanan Persediaan Maklumat) registration fails. Amount totals that don't reconcile : Rounding errors, currency conversion mismatches, or manual override of the subtotal. The invoice renders one total on screen but a different total in the XML payload. Inconsistent tax-exempt flags : You mark an item as exempt but include a tax rate, or calculate tax on an item marked exempt. MyInvois accepts the contradiction but flags it later. None of these errors trigger an immediate error message. The submission succeeds. The LHDN system queues it for processing. Then the rejection lands in your compliance inbox 48–72 hours later, and by then you've already recorded revenue. The 15-minute audit workflow Run this checklist before you hit submit. It takes 12–15 minutes for a single invoice, or 3–5 minutes per invoice if you're batching. Step 1: Validate NPWP format (2 minutes) Your company's registered NPWP must appear exactly once on the invoice, in the seller (invoice issuer) field. Fetch the NPWP from your company registration or tax certificate. It's a 12-digit string, no dashes, no spaces. Strip any formatting from the invoice. Remove dashes, spaces, or leading zeros. MyInvois will reject 000-1234-5678-9012 or 00 1234 5678 9012 . Check length : Must be exactly 12 digits. If it's 10, 11, or 13 digits, the invoice will fail at LHDN matching. Verify numeric-only : No letters, no special characters except what MyInvois adds internally. If your system stores it with a leading zero (e.g., 012345678901 ), strip it before submission. Cross-reference the buyer NPWP (if provided): If you've included a customer NPWP, run the same validation. Malformed buyer NPWP doesn't always fail the invoice, but it will prevent the customer from matching their deduction on their side. To automate: Before submission, run a regex check: ^[0-9]{12}$ on the seller NPWP field. If it fails, block submission and flag the exact error. Step 2: Verify tax code coverage (3 minutes) Every line item must have a tax code. MyInvois recognizes four primary tax codes for Malaysia: 01 : Standard-rated supply (6% SST) 02 : Zero-rated supply (0%) 03 : Exempt supply (0%, no SST) 05 : Mixed supply (use only if a single line has multiple rates) Checklist: No blank tax codes : Scan every line item. If the tax code field is empty, the invoice will fail during LHDN reconciliation. No invalid codes : Codes like 04 , 06 , S1 , or EXEMPT do not exist in MyInvois and will be rejected. Mixed items on one line : If you're selling both taxable and exempt items in a single line, split them. Use code 05 only if LHDN explicitly approved mixed-rate treatment for your business. Tax rate matches the code : A line with code 01 must have a 6% tax rate. A line with code 02 or 03 must have 0% tax. If the rate doesn't match the code, the invoice will fail. To automate: In your invoicing system or billing platform , add a validation rule: IF tax_code NOT IN ('01', '02', '03', '05') THEN block submission . And IF tax_code = '01' AND tax_rate ≠ 6% THEN flag mismatch . Step 3: Classify items consistently (4 minutes) MyInvois expects every line item to declare whether it's a good or a service. This classification must match your SSPM registration and your company's business type. Check item type field : Is it marked as Goods , Service , or Digital Service ? If blank or misspelled, MyInvois will queue it for manual review and may reject it. Cross-reference your SSPM : If you're registered only to supply goods, all line items