Invoice Three-Way Matching
Match incoming invoices to purchase orders and receipts on Neblex, post clean matches to NetSuite automatically, and route exceptions to a reviewer.
The problem
Accounts payable teams match invoices to purchase orders and goods receipts by hand, often across a shared drive of PDFs and an ERP that only tells part of the story. Slow matching delays payments and month-end close, while rushed matching lets pricing and quantity discrepancies slip through. Exception handling lives in email threads with no record of who decided what.
How it runs on Neblex
A Neblex flow polls your SFTP drop for new invoice files and picks up each one exactly once, tracked with cursors and content hashing. It pulls the matching purchase order and item receipt from NetSuite, applies the tolerance rules held in Data Tables, and branches on the result.
Clean matches post to NetSuite automatically as vendor bills, with per-step retries so a transient ERP error does not lose an invoice. Discrepancies open a task in the Neblex inbox, where a reviewer sees the invoice, the PO, and the receipt side by side and approves, rejects, or adjusts. SLA timers escalate stalled exceptions, and every decision lands on a tamper-evident, hash-chained audit trail.
If a run fails partway, event-sourced run history lets you replay it from the exact step that broke, so nothing is posted twice and nothing is dropped. Flows can run on managed cloud workers, or on On-Prem Workers so invoice data is processed inside your own network.
Step by step
Pick up invoice files
The flow polls the SFTP drop and detects new invoice files via cursors and content hashing, so each file is processed once.
Fetch PO and receipt
It looks up the matching purchase order and item receipt in NetSuite using the PO number and vendor on the invoice.
Apply tolerance rules
Price and quantity variances are checked against thresholds stored in Data Tables, so finance can tune them without editing the flow.
Post clean matches
Invoices within tolerance are posted to NetSuite as vendor bills, with per-step retries covering transient API errors.
Route exceptions to review
Mismatches open a task in the inbox with full context, and SLA timers escalate anything that sits too long.
Record every decision
Approvals, rejections, and adjustments are written to a hash-chained audit trail for month-end and audit review.
Platform capabilities used
- Poll-based change detection
- SFTP file pickup
- Data Tables for tolerance rules
- Task inbox with SLA escalation
- Replay from the failed step
- Hash-chained audit trail
Common questions
Can invoice data stay inside our network?
Yes. Run this flow on an On-Prem Worker and the business data it handles is processed inside your network. The worker connects over an outbound-only connection, so no inbound access to your network is needed.
What happens if NetSuite is down mid-run?
Each step has its own retry policy, and run history is event sourced. If a run still fails, you can replay it from the exact step that broke once NetSuite is back, without reprocessing the file or double-posting the bill.
Can we change the matching rules ourselves?
Tolerance thresholds and vendor exceptions live in Data Tables that authorized finance users can edit under role-based access. Changes to the flow itself move from dev to prod through environments with promotion approvals.
Related use cases
Expense Categorization and Approval
Categorize submitted expenses, check them against policy, and route each report to the right approver based on amount and type, all in one governed flow.
FinanceMulti-Level Approval Workflows
Route purchase requests through the right chain of approvers based on amount, department, and policy, with automatic escalation when an approval stalls.
FinanceOrder-to-Cash
Sync Salesforce orders into NetSuite for fulfillment, invoicing, and revenue recognition, with order and payment status flowing back to the CRM.
Want this running on your stack?
Neblex Integration Fabric is in beta: full platform, free while in beta. Bring this workflow and we will map it to your systems.