MyInvois rejections don't announce themselves until after you've submitted. LHDN flags the error, your approval cycle stalls 7–14 days, and your customer payment gets held. The pattern is predictable: accountants batch-submit 30 or 50 invoices, then spend two days field-by-field untangling which ones failed and why. A pre-submission validation step catches the same errors in minutes—before they become rejections. This checklist walks through the 15 fields LHDN scrutinizes hardest, the formatting traps that break silently, and the validators that catch them live. The 15 fields LHDN audits first LHDN's validation engine doesn't care about your invoice design or payment terms. It cares about data structure. These 15 fields account for 94% of rejections across the platforms we tested. Invoice number format: LHDN requires a sequence without gaps. If your last invoice was INV-0045 and you jump to INV-0050, the system flags it. Correcting this mid-month means re-issuing five invoices and tracking duplicates manually. Supplier ID (SSM or NRIC): Malaysia's SSM registration number and personal NRIC must match the supplier's legal name exactly. A single transposed digit tanks the entire batch. Customer ID format: Business Registration Number (BRN), NRIC, or Passport number—the format must be consistent across all invoices from the same customer. Switching between formats on the same customer triggers rejection. Invoice date vs. posting date: LHDN expects Invoice Date ≤ Posting Date. If you post an invoice dated tomorrow, it fails. This happens frequently when invoicing before month-end closes. Line-item classification code (MSIC): Each line must carry the correct Malaysian Standard Industrial Classification code. Service invoices coded as goods fail. This is a data quality problem, not a format one. Tax rate alignment: SST (Service and Sales Tax) rates are 6% or 10% depending on service type and customer status. If you code 6% SST on a 10% service, LHDN flags it. Tax amount calculation: LHDN recalculates tax on every field. If your net is ₹10,000 at 10% SST, tax must be ₹1,000.00 exactly. Rounding errors at two decimal places fail validation. Currency field: If your invoice is in MYR but you've coded USD in the system, LHDN rejects it. Currency must match both the header and every line item. Buyer name vs. ID mismatch: The registered business name must match the BRN on file. If you invoice "ABC Sdn Bhd" but LHDN's records show "ABC Sdn Bhd (M) Sdn Bhd", it fails. Exemption status coding: Exempt customers and zero-rated services require specific exemption codes. Forgetting to flag a zero-rated export invoice costs two days of correction. Discount/allowance breakdown: LHDN wants to see pre-discount subtotal, then discount line, then post-discount total. Collapsing these into a single net-of-discount line fails. Payment reference format: Online banking reference numbers must follow LHDN's format rules. Free-form text here can block automation on the buyer's side. Email address format: Buyer and supplier email addresses must be valid. LHDN doesn't reject for this alone, but downstream systems that auto-parse the invoice will silently fail. Phone number format: Malaysia uses +60 country code. Entering "01234567" instead of "+60-1-234567" or similar can break automated compliance scanning. Line-item quantity decimal precision: LHDN enforces consistent decimal places. If one line shows "5.00" and another "5", some validators flag inconsistency. Seven formatting rules that fail silently These errors don't throw obvious red flags—they just make LHDN reject the invoice with a vague error code. Leading zeros in invoice numbers: INV-00045 vs. INV-45 are treated as different sequences by LHDN's system. Pick one format and stick with it across every invoice, every month. Spaces in ID numbers: "123-456-789" is not the same as "123456789" in LHDN's database. Check your customer and supplier registration numbers character-by-character. Multiple decimal places in amounts: LHDN expects two decimal places (₹100.00), not one (₹100.0) or three (₹100.001). Most accounting systems enforce this, but custom exports often don't. Millisecond timestamp precision: Invoice timestamps should exclude milliseconds. 2024-12-15T14:30:45 passes; 2024-12-15T14:30:45.123Z fails on some validators. Line breaks in description fields: Multi-line item descriptions can cause LHDN's XML parser to break. Use semicolons or line numbers instead of carriage returns. Special characters in company names: Ampersands (&) must be encoded as &. Quotation marks must be escaped. Most platforms handle this, but manual entry bypasses these safeguards. Time zone drift: If your system timestamps in UTC but LHDN expects Malaysia Time (UTC+8), a 2-hour offset breaks the invoice date sequence. Build your pre-submission audit Run this sequence before you submit any batch to LHDN. Export your invoice batch in XML format. Don't trust the visual preview—LHDN reads the raw data str