Your first Indonesian contractor just sent you an invoice. You enter the NPWP (Nomor Pokok Wajib Pajak—Indonesia's tax ID) into your system, approve it, and pay them. Six months later, an audit letter arrives: the NPWP format was wrong, the withholding rate didn't match their profession, and the GL shows no audit trail. The fine sits at ₹2,80,000. NPWP validation is not a nice-to-have. It's the gate that sits between invoicing, withholding, GL reconciliation, and audit survival. Get it wrong at contractor #1, and you'll repeat the same mistakes across ten more hires. This playbook walks you through the 14-day checklist: how to collect and validate NPWP format, match against LHDN's database in real-time where available, assign withholding rates by profession, tag invoice line items for audit, and what to do when NPWP is missing or malformed. Why NPWP validation happens before invoicing, not after Most teams treat NPWP validation as an accounting task that happens after an invoice lands. By then, it's too late. The contractor has invoiced, you've coded it, and reversing it costs time and credibility. NPWP validation must happen at the moment you onboard a contractor—before they ever send an invoice. Here's why: Withholding rates depend on profession. A designer and a construction consultant have different PPh21 rates (sometimes 2–30% depending on income source and labor classification). Get the profession wrong, and your withholding is either overpaid (contractor friction) or underpaid (audit risk). GL splits are locked at invoice entry. If NPWP is invalid, you can't split the gross invoice amount into net-to-contractor and withholding-payable-to-LHDN. Your GL will never reconcile. LHDN audit trails demand contemporaneous records. Validation must happen before invoicing, so your audit log shows you checked NPWP on day 1, not day 180. Days 1–3: Collect and format-validate the NPWP NPWP is a 15-digit number formatted as XX.XXX.XXX.X-XXX.XXX (for individuals) or XX.XXX.XXX.XXX-XXX.XXX (for business entities). The first two digits are the tax office code ; the middle section is a unique identifier; the final three digits are the serial check digits . Step 1: Request NPWP in writing. Send the contractor an onboarding checklist that includes: Full legal name (as it appears on NPWP card) NPWP (15 digits, with or without dashes) Date issued and expiration date (if contractor has a copy) Profession/classification (freelancer, consulting, construction labor, etc.) Annual income estimate in IDR Step 2: Strip formatting and validate the digit pattern. Remove all dashes and spaces. Check that you have exactly 15 digits. Most teams skip this and regret it—a contractor copy-pastes from their invoice template with a typo, and you don't catch it until GL reconciliation. Step 3: Verify the first two digits against LHDN's tax office directory. The first two digits represent a specific tax office (KPP—Kantor Pelayanan Pajak). LHDN publishes these codes; they range from 01 (Jakarta) to 80+ (regional offices). If the first two digits don't match a real KPP code, the NPWP is either mistyped or fabricated. Stop here and ask for a corrected copy. A contractor gives you NPWP 99.123.456.7-123.456. The first two digits (99) don't map to any LHDN tax office. Request a photo of their NPWP card before proceeding. Days 3–7: Match against LHDN's taxpayer registry (if available) Indonesia's LHDN maintains a searchable registry of active NPWPs. Access is restricted and slow, but a few paths exist: Direktur Jenderal Pajak (DJP) online search: LHDN publishes an AI-assisted verification tool at npwp.kemenkeu.go.id (as of 2024), but it's not real-time and queries can take 2–5 days. Many large teams submit batch requests to their regional LHDN office or a tax consultant. Tax consultant API: If you're hiring 10+ contractors monthly, hire a local Indonesian tax consultant or use a compliance platform (e.g., Nitrobox, Benchmarking, or PT Mitra Konsultan Indonesia) that maintains an LHDN API connection. These cost ₹8,000–25,000 per month but return NPWP validation in real-time with profession, registration status, and withholding history. Contractor self-verification: Ask the contractor to confirm their NPWP directly on the LHDN public portal and send you a screenshot. This is free and immediate, though contractors often resist (privacy concern). Make it non-negotiable for onboarding. Document the method you used and the date. If LHDN ever audits, you need proof that you verified NPWP on day 3, not day 180. Days 7–10: Assign withholding rates by profession and income classification This is where most teams fail. NPWP alone doesn't tell you the withholding rate. Indonesia's tax code (UU No. 8 of 1997) specifies different withholding rates (Pasal 21 or PPh21) based on: Employment type: Is the contractor a permanent employee (rare for contractors), temporary staff (occasional invoice), or non-employee service provider (most common)? Income source: Is inco