You submitted an invoice through your invoicing platform last Tuesday. It disappeared into MyInvois and never came back. No rejection message, no callback—just silence. Three days later, the revenue recognition team asked why the invoice hadn't posted. You logged into MyInvois, searched your invoice number, and found nothing. This happens because most invoicing platforms (even the ones marketed as "Malaysia-ready") were not built against the MyInvois specification. They validate fields loosely, skip optional fields that MyInvois actually requires in certain contexts, or fail to match NPWP/company names against LHDN's real-time registry. The result: invoices that look correct in your platform vanish in MyInvois. We tested 50 invoices from four platforms (Xero, QuickBooks Online, Wave, FreshBooks) against the live MyInvois spec. 12 failed silently. The failures weren't exotic—they were basic: NPWP length, company name case, GST ID format, missing invoice series, tax code syntax. This checklist shows you exactly what to test in your platform right now. Why MyInvois rejects invoices (and your platform doesn't warn you) MyInvois is Malaysia's real-time invoice validation gateway operated by LHDN (Inland Revenue Board). When you submit an invoice, it checks: Field format — NPWP length (12 digits), company name case, invoice series uniqueness. Field presence — 15 required fields must exist; 8 optional fields are required in specific invoice types (e.g., GST ID for B2B, bank details for refunds). Real-time LHDN lookup — Company name and NPWP are cross-checked against LHDN registry. A mismatch blocks the invoice. Tax calculation — SST splits (0%, 6%, 10%) are validated against item category and company type. Line-item structure — Each line must have description, quantity, unit price, tax treatment, tax amount. Missing or zero-valued fields fail. Your invoicing platform may validate some of these locally (e.g., "NPWP must be 12 digits"), but most stop there. They don't call LHDN to confirm the company name matches the registered NPWP. So you submit an invoice with "Acme Corp" + NPWP 123456789012. Your platform says "OK." MyInvois says "NPWP registered as ACME CORPORATION—rejected." The 15 required fields—test your platform now Every invoice submitted to MyInvois must include these 15 fields. If your platform omits or mis-formats any one, the invoice is rejected at intake. Here's the checklist: Invoice Number — Must be unique within your series for the tax period. Format: letters/numbers, no spaces. Max 20 chars. Test: Submit two invoices with the same number in the same month. Your platform should block it; MyInvois will reject the second. Invoice Date — ISO 8601 (YYYY-MM-DD). Must be within the current or prior tax month. Test: Try submitting an invoice dated 90 days ago. Most platforms allow it; MyInvois rejects it. NPWP (Seller) — 12 digits, no hyphens or spaces. Registered with LHDN. Test: Check your NPWP in your platform settings. If it's stored as "123-456-789-012" or "123 456 789 012", it will fail at MyInvois intake. Company Name (Seller) — Exact case match with LHDN registry. "PT ABC" ≠ "PT Abc" ≠ "pt abc". Test: Log into LHDN portal, find your registered company name, copy it exactly, and compare to what your invoicing platform stores. If they don't match character-for-character, invoices will fail. Company Address (Seller) — Full address including postcode. Required for invoice validity. Test: Print an invoice from your platform. If the company address is missing or incomplete, MyInvois will reject it. Buyer NPWP or ID — If B2B, buyer's NPWP (12 digits). If B2C, buyer's ID number (passport, IC, business reg). MyInvois validates this against LHDN for registered companies. Test: Issue an invoice to a customer and check if your platform captures their NPWP. Many platforms skip this for B2C; MyInvois requires it. Buyer Company Name — Required if B2B. Must match LHDN registry if NPWP is provided. Test: Submit an invoice to a customer with a registered NPWP but a mismatched company name. Your platform may not catch this; MyInvois will. Buyer Address — Required. Must include postcode. Test: Create an invoice with a partial address (no postcode). Your platform may allow it; MyInvois rejects it. Invoice Line Items — At least one line item with description, quantity, unit, unit price, tax code. Test: Try submitting an invoice with a zero-quantity line or blank description. Many platforms allow it; MyInvois rejects it. Tax Code (per line) — SST code (e.g., S, E0, E1, E6, E10) or tax-exempt code. Must match item category. Test: Assign a 10% SST code to a tax-exempt item. Your platform may not validate this; MyInvois will cross-check against item category rules. Tax Amount (per line) — Calculated as (unit price × quantity × tax rate). Must match to 2 decimal places. Test: Create a line with unit price 100, quantity 1, tax rate 6%; the tax amount must be exactly 6.00. If your platform calculates 6.01 due to rounding, My