Portmux is a NetSuite to QuickBooks migration service that moves your Chart of Accounts, customers, vendors, items, and historical transaction data into QuickBooks Online with reconciled balances and a clean audit trail.
NetSuite is a multi-subsidiary ERP. QuickBooks Online is a single-entity bookkeeping tool. Most "downsize" migrations from NetSuite to QuickBooks fail because they treat it like a one-to-one data transfer. We start with the chart of accounts, decide what becomes a Class vs Location vs Tag in QuickBooks, and only then move transactions. The result: opening balances tie to NetSuite trial balance to the penny, and every historical invoice, bill, and journal is searchable in QuickBooks.
NetSuite COA flattened from Subsidiary view, with intercompany accounts collapsed and account numbering preserved.
Customer records with parent/child hierarchies, billing/shipping addresses, payment terms, default tax codes, and AR balances.
Vendor records with 1099 status, default expense accounts, payment terms, attached W-9s, and AP balances.
Inventory, non-inventory, service, and assembly items with default sales/purchase accounts and current quantity-on-hand.
Open and closed Invoices with line items, applied payments, sales tax detail, and Sales Order linkage flattened.
AP Bills with expense and item lines, applied payment history, and bill credits applied against open balances.
Open SOs and POs migrated as estimates and pending POs in QuickBooks; closed SO/POs imported as historical reference.
All historical Journal Entries including auto-generated NetSuite GL impact, with intercompany JEs reclassed.
Bank account histories with reconciled status flag, transaction memos, and last-reconciled date carried forward.
NetSuite Departments, Classes, and Locations mapped to QuickBooks Classes and Locations (or Tags for QBO Plus limits).
Employee and contractor records with payroll-relevant tax info; payroll history excluded unless contracted.
Critical NetSuite Saved Searches replicated as QuickBooks custom reports; complex SuiteAnalytics flagged for redesign.
We connect to NetSuite via Token-Based Authentication and a read-only role with all standard records and Saved Search permissions. SuiteTalk REST and SOAP APIs index every record type in scope. You see a full inventory of entities, transactions, and custom segments within 72 hours.
Our finance engineers draft the Chart of Accounts mapping first, since every transaction depends on it. We agree on Class/Location/Tag mapping, opening balance date, and which subsidiaries (if multi-book) move into the QuickBooks tenant. Your controller signs off before any transaction is staged.
We load opening balances at the cutover date and post historical transactions into a staging QuickBooks file. Trial balance and AR/AP aging are reconciled to NetSuite to the penny. On cutover day, we promote the staging file to production and run the final delta of post-cutover NetSuite activity.
Every migration has its own gotchas. Here's what we plan for on this specific path.
NetSuite OneWorld has Subsidiaries, intercompany journals, and consolidated reporting. QuickBooks Online is single-entity. We pick one subsidiary as the surviving tenant, eliminate intercompany, or split into separate QBO companies if you need consolidated reporting.
NetSuite custom segments don't exist in QuickBooks. They get collapsed into Classes, Locations, or Tags depending on your reporting needs. Classes and Locations have account-level enforcement in QBO Plus that NetSuite doesn't.
NetSuite Assembly Items with multi-level BOMs don't map cleanly to QuickBooks. We flatten BOMs to single-level Inventory Assembly items and migrate current QOH only, historical build transactions are exported as reference.
NetSuite uses Tax Codes per nexus; QuickBooks Online uses Automated Sales Tax. We re-derive each customer's default tax setup, and if you use Avalara AvaTax in NetSuite, we re-link the QuickBooks Avalara connector at cutover.
Single-system migrations like NetSuite to QuickBooks run as Track A engagements: one source, one destination, up to 1M records, 4–6 weeks. Final price depends on object volume, custom field count, and integrations, scoped on a 20-minute call before any commitment. See full pricing →
Tell us what's in the source, where it's going, SaaS or custom, and when you need to be live. You'll walk away with a scoped quote, a named engineer, and a go-live date.