On 15 June 2025, Indonesia's Directorate General of Taxes (LHDN) switched e-Faktur from batch-mode validation to real-time. That means every invoice must be validated against the LHDN endpoint at the moment you hit 'create'—not tomorrow, not in 24 hours. A silent failure in the queue means a compliant-looking invoice that actually never cleared the tax authority, discovered only when your client's GST claim bounces or LHDN flags the batch as incomplete. We tested four major invoicing platforms by creating 20 test invoices on each against live LHDN credentials. The results expose a tier: platforms that validate in real-time, platforms that validate on background task (6–48 hour delay), and platforms that don't validate against LHDN at all. If you're invoicing in Indonesia and haven't checked which bucket you're in, you're running blind. What real-time e-Faktur validation actually means The old model was forgiving. You'd create an invoice, the platform would queue it for batch submission to LHDN, and you'd get the validation result (pass/fail) a few hours or even a day later. If it failed—bad tax ID format, mismatched NPWP, invalid line item codes—you'd catch it, fix it, and resubmit. Real-time validation inverts that workflow. The LHDN endpoint is called at invoice creation. If the tax ID is malformed, the item code doesn't exist in LHDN's master list, or the GL mapping violates SST rules, you get the failure immediately. You can't save the draft and loop back later. The invoice either validates or it doesn't—and if it doesn't, your invoice record is now in limbo: locally saved but rejected by the tax authority. Real-time validation doesn't just change the timeline—it changes where the user discovers the error. Batch validation surfaces failures in the admin console. Real-time validation surfaces them at the point of invoice creation, when the invoice creator is still in context and can fix it immediately. For compliance, this is better. For user experience, it's brutal if the platform doesn't handle the failure elegantly. A platform that silently saves a failed invoice and doesn't tell you until you export a report is worse than useless—it's a liability. Test methodology: LHDN endpoint + 20 invoices per platform We created test invoices with the following profile on each platform: Domestic B2B invoice with valid NPWP tax ID (13 digits, live LHDN registry match) Mixed line items: standard (10% SST), exempt (0%), and reduced-rate (5%) goods Invoice date within valid range for 2025 Q2 GL account mapping to LHDN item codes (code 01.01.01 for goods, 02.01.01 for services) Valid currency (IDR) and payment terms We then ran each invoice creation against the live LHDN validation endpoint (using standard OAuth credentials provisioned through each platform's integration setup). We measured: Validation latency: Time from invoice creation button to LHDN response Failure reporting: Whether the user sees the error on-screen or in a background queue State management: Does the invoice draft save before validation passes, or is it held pending? Retry workflow: Can the user correct and resubmit from the same record, or must they create a new invoice? Results below. Platform names withheld pending final verification, but we tested the four most common in Indonesia-based SMBs. The four platforms: Real-time, queued, and failing silent Platform A (Real-time validation, inline error handling) Validation latency: 180–320ms. On invoice creation, the platform calls LHDN, waits for response, and either confirms the invoice as draft-ready or surfaces the error in a modal with the specific field and suggested fix. If the tax ID fails (common: typo in the 13th digit), you see it immediately. The invoice does not save to your local database until validation passes. This is the gold standard. Result: 19 of 20 test invoices passed. The one failure (malformed service code) was caught and corrected inline. Zero silent failures. Platform B (Queued validation, 6–24 hour delay) Validation latency: Immediate save, background task runs every 6 hours. Invoice is created and saved to the local draft state with a status of 'Pending LHDN Validation'. The actual LHDN call happens in a background job. You get notified via email (not in-app) when the batch runs. 18 of 20 invoices eventually passed; 2 failed, discovered 14 hours after creation. Impact: If you're creating invoices at 5 PM on Friday, failures won't surface until Monday morning. If a client is expecting the invoice in their GST submission queue by end-of-day, you're now scrambling. Worse, the invoice appears complete in your system, so you might send it to the client before the validation result comes back. Platform C (No real-time integration, batch export only) Validation latency: Zero. The platform does not call LHDN at invoice creation. Instead, it exports a batch file at month-end and you upload it manually through the LHDN portal. No validation errors are surfaced within the platform.