top of page

Big Title

[[PREFERRED-SOURCE]]

Migrating from QuickBooks Online to DualEntry: The Complete Accountant's Checklist

2 days ago
23 min read

Every ERP migration guide on the internet is either sales content dressed as advice, or generic project management thinking that ignores the specific mechanics of the source and destination platforms. This one is different. It is written for the CPA or controller who will actually execute the migration, sourced to DualEntry's own documentation, and organized as a working checklist you can hand to your team.


Migrating from QuickBooks Online to DualEntry is not a NetSuite implementation. It does not take four to eight weeks. It does not require six figures of professional services. But it is also not a one-click import that runs while you get coffee. The migration succeeds when the person executing it has read the documentation carefully, made the specific pre-cutover decisions that DualEntry's migration engine expects, and executed the tie-out procedure with workpaper-grade discipline. Most migrations that fail, fail because someone treated the process as more casual than it is.


This checklist walks through every phase from initial evaluation through post-migration validation. Along the way I flag five specific gotchas that come out of QuickBooks that most guides ignore: the attachment gap that leaves your supporting documentation in QBO, the source document numbers that mostly do not survive the migration, the bank reconciliation history that stays in the source system, the Intuit OAuth grant that persists after disconnect, and the numeric chart of accounts requirement that catches nearly every migration by surprise. Each one deserves its own decision before cutover day.


Everything below is verified against DualEntry's documentation as of 14 September 2026. Specific parameters may change as the platform evolves. Verify anything critical directly with DualEntry sales or docs before executing.


💡 Key Takeaways

  • The migration succeeds or fails at the pre-cutover decision stage, not on cutover day itself

  • The two-path decision (connector migration vs opening balances only) shapes the entire project timeline and cost

  • DualEntry requires numeric account codes; QuickBooks uses account codes optionally, so a full COA renumbering is mandatory

  • QuickBooks attachments do not migrate through the connector, requiring a separate export workflow or retained QBO read-only access

  • Source document numbers for bills and payments do not survive the migration; only invoice reference numbers land intact

  • Bank reconciliation history stays in QuickBooks and does not migrate to DualEntry

  • The Intuit OAuth grant persists after DualEntry disconnect and must be manually revoked in your Intuit account

  • The three validation tests are trial balance by period, retained earnings roll-forward, and AR/AP subledger agreement by counterparty

  • DualEntry recommends against parallel running for QuickBooks migrations, contrary to standard NetSuite migration practice

  • Verified 14 September 2026: DualEntry's migration engine is actively developed; verify current parameters before execution


Complete accountants checklist for migrating from QuickBooks Online to DualEntry showing the three phases (evaluation cutover validation), five pre-cutover settlements, cutover day hour-by-hour runbook, the three validation tests (trial balance by period retained earnings roll-forward AR AP subledger agreement), rounding plug tolerances, and common pitfalls

Phase 0: The Decisions You Make Before You Start

Migration failure is almost always predetermined by decisions made or not made before cutover day. Three decisions matter most.


Decision 1: Which of the two migration paths applies to your situation

DualEntry supports two structurally different migration paths, and the choice shapes everything downstream.


Path A: Connector migration. Historical transactions land in DualEntry as their own records. Bills, invoices, payments, journal entries all come across as native DualEntry records. Prior-period detail and comparative reporting are available inside DualEntry going forward. This path uses the same migration machinery whether you are running a sandbox evaluation or a production cutover, per DualEntry's docs: "A sandbox seeded from QuickBooks Online or Xero uses the same migration machinery as a production cutover, not a separate import path."


Path B: Opening balances only. One journal entry per balance sheet account, plus open AR and AP items. Historical detail stays in QuickBooks Online. You retain read-only QBO access to look up prior-period detail when needed.


The choice depends on three factors:

  • Prior-period audit status. If your prior periods are audited and you are willing to keep QBO access indefinitely for detail lookup, Path B saves significant migration effort. If you need prior-period detail inside DualEntry for comparative reporting or ongoing audit trail, Path A is necessary.

  • Prior-period reporting needs. Investor reporting, board reporting, or lender reporting that requires prior-period comparisons inside your new system pushes toward Path A. If prior-period reports can live in QBO archives or exported PDFs, Path B works.

  • Ongoing QBO access willingness. Path B requires sustained QBO access, which means either continued subscription cost or a plan to export everything before subscription cancellation. Path A ends your relationship with QBO cleanly.


Most mid-market businesses migrate on Path A because prior-period detail inside the new system is genuinely valuable. But Path B is legitimate for businesses whose audit status makes the historical detail transfer unnecessary. Make the choice explicitly, document it, and get controller sign-off before mapping begins.


Decision 2: How disordered is your source chart of accounts

The single most useful sentence in DualEntry's migration documentation: "Every other row is bounded by a checklist; mapping is bounded by how disordered the source chart of accounts is."


This determines migration cost more than any other factor. A cleaned-up, well-structured QBO chart of accounts migrates in hours. A disordered QBO chart of accounts (parent accounts posted to, expenses categorized as COGS by accident, revenue split across five accounts, duplicate vendor accounts, orphaned accounts from prior bookkeepers) migrates in days and produces tie-out failures that require re-running mapping decisions.


The practical implication: clean up the QBO chart of accounts before the migration, not during it. My messy chart of accounts analysis walks through what "cleaned up" means concretely and how much it changes migration timeline and cost. Do the cleanup as a distinct engagement in QBO first, tie out the cleaned-up books, and then migrate to DualEntry with a clean source.


Decision 3: When do you cut over

Three timing considerations matter:

Fiscal period boundary. DualEntry documentation is explicit: "the first day of a fiscal period is the clean choice." Migrating mid-period creates tie-out complications that mid-period cutovers do not need to have. Wait for the start of a month, quarter, or fiscal year.


Business event calendar. Do not migrate during active fundraising, audit season, quarterly close, board meeting preparation, or major business events. The migration deserves undivided attention from the cutover owner, and business events divide that attention badly.


Integration ecosystem coordination. Any integrations currently pointing at QBO (Stripe, Ramp, Brex, Gusto, banking connections, sales tax tools, tax preparer access) will need redirection after cutover. Plan the integration cutover sequence explicitly so nothing keeps posting to the old system after cutover day.



Phase 1: The Five Mandatory Pre-Cutover Settlements

DualEntry's documentation names four items that must be settled before cutover week begins. Practical experience adds a fifth. Take these seriously; skipping any of them creates cutover-day failure.


Settlement 1: Cutover date, named and dated

The specific fiscal period start date. Not "sometime next month." A specific date that everyone with a stake in the migration has agreed to. Communicated in writing to the accounting team, the controller, the cutover owner and backup, the tax preparer, and any integration partners who will need timing coordination.


Settlement 2: Cutover owner with a named backup

One person owns the migration. DualEntry's documentation is explicit that this person needs a named backup because migration owner unavailability during the cutover window is the second most common cause of failed migrations. The owner does not have to be a CPA, but the person who owns the mapping decisions and the tie-out review does. Assign both roles by name and document them.


Settlement 3: Source data exports, pulled after entry stops

Export from QBO after entry stops on cutover day minus one, not before. These are your tie-out reference points. DualEntry documentation is explicit: "do not re-pull" these exports during the migration. They are fixed reference points against which everything ties out.


Standard export set for the tie-out procedure:

  • Trial balance by period (every period being migrated)

  • Balance sheet as of cutover date

  • Income statement for the migration period

  • General ledger detail for the migration period

  • AR aging by customer as of cutover date

  • AP aging by vendor as of cutover date

  • Retained earnings roll-forward showing beginning balance, net income, distributions, and ending balance

  • Chart of accounts with account types, hierarchy, and balances

  • Customer list with balances

  • Vendor list with balances


Preserve these exports outside QBO (typically in a shared drive or workpaper filing system). They will be needed at multiple points during tie-out.


Settlement 4: Mapping decisions, predetermined by the controller

DualEntry's documentation is direct: mapping decisions should be predetermined by whoever will sign off on the tie-out, not discovered during cutover-day mapping. This means the controller reviews the source chart of accounts, decides how each account maps to DualEntry's numeric structure, and documents the decisions in a mapping worksheet before cutover day.


The AI-assisted mapping DualEntry provides is genuinely helpful (three ranked strategies: reuse of prior mappings, fuzzy matching, semantic similarity), but the documentation carries an important warning: "DualEntry never applies a suggestion automatically, and confirming a suggestion you have not read is the most common way a migration ends up tying out to the wrong account." Predetermined mapping avoids this failure mode entirely.


Settlement 5: Client authorization prep for the Intuit OAuth grant

This is the settlement DualEntry documentation implies but does not label explicitly. The client (business owner or CFO with Intuit account authority) must be available and prepared to authorize the source connection with their own credentials at Hour 0 of cutover day. Coordinate this in advance. Do not schedule cutover for a day when the person with Intuit authority is unavailable.


Also flag the Intuit OAuth grant persistence issue at this stage. The client will need to manually revoke the DualEntry grant in their Intuit connected apps list after the migration completes (see Phase 8). Setting this expectation now avoids surprise later.



Phase 2: The Five QuickBooks-Specific Gaps to Plan Around

Every migration guide covers the mechanics. Few cover the specific gaps that come out of QuickBooks Online that catch teams by surprise. Five of them deserve explicit planning.


Gap 1: QuickBooks attachments do not migrate

This gap is stated directly in DualEntry's documentation: "QuickBooks attachments do not migrate. Xero attachments do." This holds on every path, sandbox and production.


For any business whose supporting documentation lives as attachments to QBO transactions (typical for AP invoices, expense receipts, and customer contracts), this is a real problem. Three viable solutions:

  • Solution A: Bulk export attachments before cutover. QBO does not have a native bulk attachment export, but third-party tools (SaasAnt, Rewind, or manual export via the QBO API) can do it. Plan for this as a distinct project ideally completed before cutover week.

  • Solution B: Retain QBO read-only access. Keep the QBO subscription active on the read-only or lower tier so attachments remain accessible for lookup. This is often the cheapest and simplest approach for the first 6-12 months post-migration.

  • Solution C: Rebuild attachment discipline in DualEntry going forward. New transactions carry attachments in DualEntry (per-record capacity 25 files of 10MB each per DualEntry's documented limits). Historical attachments stay in QBO. Practical for businesses whose ongoing operations do not frequently need historical attachment access.


Choose the solution before cutover week and communicate it to the accounting team so nobody is surprised when they cannot find a historical invoice attachment in DualEntry.


Gap 2: Source document numbers mostly do not survive

DualEntry's documentation captures this precisely: "Invoices are the only record type whose source number lands in the reference number on both connectors."


What preserves: Invoice reference numbers land in DualEntry's reference number field intact.


What does not preserve:

  • Bill numbers do not preserve on the QuickBooks connector (memo only on Xero).

  • Payment numbers do not preserve on the QuickBooks connector (check number field on Xero).


Practical implication for tie-out: Bills and payments cannot be tied out by source document number. Use vendor plus date plus amount instead. This materially changes how the tie-out workpaper is structured. If your standard tie-out procedure keys on document numbers, redesign it for the migration.


Gap 3: Bank reconciliation history does not migrate

Bank reconciliation history stays in QuickBooks. It does not migrate to DualEntry. For clients whose audit trail includes bank reconciliation history as a deliverable, this is significant. The reconciliation trail through the cutover date lives permanently in QBO. Going forward, DualEntry maintains its own reconciliation history from the cutover date onward.


Practical implication: For catch-up cleanup engagements where the reconciliation trail is a key deliverable, plan the deliverable structure carefully. Historical reconciliation reports need to be exported from QBO before subscription cancellation (Solution B above becomes especially valuable here).


Gap 4: The Intuit OAuth grant persists

DualEntry's documentation carries a specific warning worth quoting in full: "Disconnecting a QuickBooks migration deletes DualEntry's stored tokens but does not revoke the grant with Intuit, and no retention sweep revokes it later. To withdraw access at the source, remove DualEntry from the connected apps list in your Intuit account after disconnecting."


This is a two-step disconnect:

  1. Disconnect the migration connection in DualEntry (deletes DualEntry's stored tokens)

  2. Manually revoke DualEntry in your Intuit connected apps list at intuit.com (revokes the OAuth grant on the Intuit side)


For Xero the equivalent happens automatically via a 180-day enforcement sweep. For QuickBooks it does not. This is worth flagging to every client whose migration is complete and who is genuinely done with QBO.


Gap 5: The numeric COA problem

DualEntry requires numeric account codes. QuickBooks and Xero use account codes optionally. A full renumbering against DualEntry's documented ranges is mandatory as part of the migration. See Phase 3 for the detailed treatment; here just note that this is a specific pre-cutover task, not something that happens automatically during the migration.



Phase 3: The Numeric Chart of Accounts Renumbering

This deserves its own phase because it is the migration task most likely to be underestimated. Every QuickBooks account needs a numeric code assigned before the migration can proceed. DualEntry provides suggested ranges in the documentation, and the renumbering has practical implications beyond just assigning numbers.


The standard ranges

DualEntry's documented account code ranges align with standard financial statement structure:

  • 1000-1999: Assets (with subranges for current assets, fixed assets, other assets)

  • 2000-2999: Liabilities (with subranges for current liabilities, long-term liabilities)

  • 3000-3999: Equity

  • 4000-4999: Revenue

  • 5000-5999: Cost of goods sold

  • 6000-8999: Operating expenses (typically organized by department or category)

  • 9000-9999: Other income and expense


Verify current specific ranges directly with DualEntry documentation, as these may evolve.


The renumbering approach

Three practical rules:


Rule 1: Leave gaps for future accounts. If your accounts payable is 2000 and payroll liabilities are 2010, you will regret not having room to add accounts between them. Use gaps of 10 or 20 between account numbers to preserve room for growth. Skipping to 100-increment blocks is even safer for expected account categories.


Rule 2: Preserve financial statement grouping in the numbering sequence. Accounts that will appear together on the balance sheet or income statement should have adjacent numbers. This makes chart of accounts navigation intuitive and financial statement customization easier downstream.


Rule 3: Document the renumbering decisions. The mapping worksheet from Phase 1 Settlement 4 becomes the renumbering documentation. Every QBO account name maps to a specific DualEntry account number with a rationale for the placement decision. This documentation survives the migration and helps the accounting team navigate the new structure.


AI-assisted mapping

DualEntry's migration engine suggests mappings using three strategies ranked by confidence: reuse of prior mappings from other connections, fuzzy matching on names and codes, and semantic similarity search via embeddings. These suggestions are useful but must be reviewed, per DualEntry's documented warning that confirming an unread suggestion is "the most common way a migration ends up tying out to the wrong account."


Standard workflow: predetermine the mapping in the renumbering worksheet, then use AI suggestions during cutover as a validation check on the predetermined decisions. Suggestions that agree with predetermined mapping confirm the mapping is reasonable. Suggestions that disagree require re-examination of the predetermined decision, which is a healthy check on the mapping worksheet.



Phase 4: The Sandbox Evaluation

Before executing the production cutover, run a sandbox evaluation. DualEntry supports seeding a sandbox organization directly from your QuickBooks Online books, and the migration machinery is identical to the production cutover.


Why the sandbox matters

Three specific reasons:


Mapping validation. The sandbox exposes mapping problems that a paper-only review cannot catch. Accounts that seemed straightforward may reveal issues once transactions actually post to them. Sandbox execution shows the mapping in practice before the mistakes affect production.


Tie-out procedure rehearsal. The three validation tests (Phase 6) can be run against the sandbox to establish expected differences and pre-identify the reconciling items that will appear in production. This transforms cutover-day tie-out from discovery work into confirmation work, which is faster and less prone to error.


Team familiarization. The accounting team can navigate DualEntry, run reports, and get comfortable with the interface before production dependencies exist. Nobody should first encounter DualEntry's UI on cutover day.


Sandbox execution notes

DualEntry's sandbox uses the same migration machinery as production, so scope and exclusions are identical. Same connector limitations apply (attachments do not come across, source document numbers mostly do not preserve, bank reconciliation history stays in QBO). This makes sandbox execution genuinely representative of what production will produce.


The sandbox is typically run once with predetermined mapping, tied out to establish reconciliation baselines, then run again in production. If the sandbox tie-out reveals problems, adjust the mapping worksheet and re-run before production. This is the moment to fix problems, not during production execution.



Phase 5: The Cutover Day Runbook

Detailed hour-by-hour execution. Follow the sequence rather than improvising during execution.


Week Before Cutover

  • Complete all five settlements (Phase 1). Nothing should be undecided going into cutover week.

  • Confirm cutover owner and backup availability for the full cutover day plus tie-out day.

  • Notify integration partners (banking, payroll, expense management, tax preparation) about the cutover timing so they can coordinate their own workflows.

  • Set expectation with client that entry to QBO stops at a specific hour on the day before cutover, not "end of business day."


Day Before Cutover

DualEntry's documentation captures this well: "at a stated hour, not at 'end of day'. Announce the hour in writing."

  • Complete all in-flight QBO work before the entry freeze hour.

  • Announce the entry freeze in writing to everyone with QBO access. Set the freeze at a specific hour (e.g., 5:00 PM Central) rather than a vague "end of business."

  • Execute the entry freeze by enforcement, not announcement. Change QBO user permissions to read-only, or use QBO's role management to enforce the freeze technically. Announcement without enforcement is a common source of migration failure because someone always forgets and posts something after the announcement.

  • Pull final exports after the entry freeze is enforced. These are the fixed tie-out reference points from Phase 1 Settlement 3. Do not re-pull these exports later; they are the reference points.

  • Verify the cutover owner and backup are still available for the following day.


Cutover Day: Hour 0

  • Migration start in DualEntry.

  • Client authorizes the source connection with their own Intuit credentials. This is the moment when Phase 1 Settlement 5 pays off. If the client is unavailable, the migration stops.

  • Verify OAuth connection succeeds and DualEntry can read the QBO data.


Cutover Day: Hours 1-3

  • Accounts mapping execution. Work through the mapping using the predetermined mapping worksheet from Phase 1 Settlement 4. AI suggestions serve as validation checks.

  • The Unmapped and Error tabs must reach empty before proceeding. DualEntry's documentation is clear: unmapped accounts create tie-out failures downstream.

  • Retire unused accounts rather than skip them. Retiring preserves the historical mapping in DualEntry's audit trail. Skipping creates gaps that are harder to reconcile.

  • Handle synthetic fallback accounts explicitly. DualEntry creates fallback accounts for unmappable source lines: [QuickBooks] Default Expense, [QuickBooks] Default Income. These appear on the mapping step and cannot be skipped; they must be mapped or deactivated. Per DualEntry's documentation, a balance in one of these at tie-out is a defined red flag.


Cutover Day: Hours 2-4 (overlapping)

  • Classifications mapping (classes, departments, projects from QBO).

  • If the source contains items, configure default income, expense, and COGS accounts immediately. Full Data Sync blocks without these configurations per DualEntry's documented behaviour. This is a common cutover-day surprise for teams that did not read the documentation.

  • Verify master data mapping (customers, vendors, items). QBO employees and fixed assets do not migrate (per DualEntry's documented exclusions). Xero handles both, which is worth noting for teams considering migrating from Xero instead.


Cutover Day: Hours 4-10

  • Data Sync execution. DualEntry pulls the source data and creates DualEntry records.

  • Monitor the progress bar and Error tab, not elapsed time. DualEntry's documentation is clear that migration duration varies with source data size and complexity. Elapsed time is not a useful signal; error tab activity is.

  • The migration engine has documented failure recovery:

  • Stalled sync (approximately 6 minutes of silence): auto-reset, restarts from the last checkpoint

  • Transient single-record errors: automatic retry at approximately 15s, 30s, 60s, 120s, 240s intervals

  • Abandoned sync lock: expires automatically at approximately 3 hours

  • Stuck connection: safety sweep at approximately 24 hours returns it to synced state

  • Retries are duplicate-safe because staged records maintain keys linking the source record to the DualEntry record.


Cutover Day: Hours 10+

  • Exception resolution. Per DualEntry's documentation: "A single mapping error often explains an entire batch of failures." Look for patterns in the errors rather than treating each as unique.

  • Do not open the books on cutover day. DualEntry's documentation is explicit: "Do not open the books on cutover day. Tie out first, with fresh eyes, against exports that have not moved." Wait until the following morning to begin the tie-out procedure.


Migration Reversal Reality

DualEntry's documentation carries a specific warning worth understanding before cutover: "There is no single action that reverses a completed migration." Unwinding a migration means archiving records, bounded by period locks and reconciliation state. Fixing a mapping error also does not move transactions that already posted.


Practical implication: cutover-day errors that are not caught during Data Sync become cleanup work rather than reversible mistakes. This is why the sandbox evaluation (Phase 4) and the predetermined mapping (Phase 1) matter so much. The migration engine assumes forward-only execution.



Phase 6: The Three Validation Tests

Tie-out procedure with workpaper-grade discipline. The morning after cutover day, execute these three tests in sequence.


Preliminary Step: Clear the Exception Tabs

Before running any reports, verify the exception tabs are clean:

  • Error tab should be empty. Per DualEntry's documentation: "one unmapped account usually explains a hundred failed transactions."

  • Skipped tab should be empty. Per DualEntry's documentation: "skipping applies to every source record mapped to the same target." Anything skipped affects all records mapped to that account.

  • Ready to sync tab should be empty. Per DualEntry's documentation: "do not tie out with records in flight."

  • Accounts Mapping step's Deactivated tab requires specific attention. Per DualEntry's documentation: "an account that is deactivated in DualEntry still holds any balance." A balance on a deactivated account is a defined red flag.


Test 1: Trial Balance by Period

Per DualEntry's documentation: "Compare every period you migrated, not just the cutover date."


Standard procedure:

  • Work source-to-DualEntry (start with the QBO trial balance, look up the DualEntry balance).

  • Compare each period, not just the cutover date.

  • Where multiple source accounts map to one DualEntry account, sum the source side first before comparing.

  • Document reconciling items with account, period, source amount, DualEntry amount, difference, and explanation.


Test 2: Retained Earnings Roll-Forward

Verify retained earnings ties from the beginning of the migration period through the cutover date. Standard roll-forward:

  • Beginning retained earnings (from prior period QBO closing balance)

  • Plus net income for each period migrated (from QBO income statement)

  • Less distributions or dividends (from QBO owner draws / distributions)

  • Equals ending retained earnings (should match DualEntry balance at cutover date)


Differences in retained earnings usually trace to either mapping errors on income or expense accounts, or distributions that were categorized differently in source versus destination. Trace the source of the difference explicitly.


Test 3: AR/AP Subledger Agreement by Counterparty

Per DualEntry's documentation: agreement should be "to the source aging by customer, not by total only. Two customers with offsetting errors produce a correct total."


Standard procedure:

  • AR aging by customer: QBO customer balance versus DualEntry customer balance, customer by customer.

  • AP aging by vendor: QBO vendor balance versus DualEntry vendor balance, vendor by vendor.

  • Search for entries flagged "Exclude from AR aging" or "Exclude from AP aging" in either system; these can cause total-level agreement with counterparty-level differences.

  • Document reconciling items with counterparty name, source amount, DualEntry amount, difference, and explanation.



Phase 7: Difference Resolution and Materiality

When the tie-out reveals differences, resolve them in DualEntry's documented order.


The Resolution Order

Per DualEntry's documentation, resolve differences in this sequence:

  1. Unmapped accounts. Fix mapping worksheet errors first because they typically explain the largest differences.

  2. Rounding plugs. Small, documented differences that fall within DualEntry's rounding tolerances.

  3. Period placement. Timing differences where a transaction posted to a different period in source versus destination.

  4. Skipped records. Records excluded from the migration that need explicit treatment.


Rounding Plug Tolerances

DualEntry publishes specific tolerances:

  • Approximately $0.01 per line as the standard rounding tolerance

  • $0.05 diagnostic floor below which rounding is treated as immaterial

  • $1.00 posting ceiling above which a rounding plug fails the record outright


Per DualEntry's documentation, differences above the ceiling fail the record outright, and the docs explicitly warn against widening the threshold to force records through. Widening tolerances to make differences disappear is the wrong instinct; investigate the difference instead.


Materiality Discipline

Per DualEntry's documentation: "Agree a materiality threshold with whoever signs off before you start comparing, so a $0.02 rounding difference and a $2,000 mapping error get different treatment."


Standard materiality discipline for tie-out:

  • Immaterial differences (below the agreed threshold) get documented with a plug entry and rationale.

  • Material differences require investigation and correction.

  • Every difference gets documented, even the immaterial ones. Auditor discipline: "An auditor accepts a documented, immaterial rounding plug. An auditor does not accept an unexplained difference."


The Parallel-Run Question

Standard NetSuite migration practice recommends 1-2 months of parallel running. DualEntry's documentation explicitly recommends against parallel running for QuickBooks migrations: "Running both systems in parallel for a month is the instinct, and it is usually the wrong call. Dual entry doubles the work, and the second copy is the one that drifts."


Preferred approach per DualEntry: "Clean break on a period boundary, with the old system kept readable rather than writable." Parallel running is justified only when regulatory requirements demand it or when proving the process on the first entity of a multi-entity rollout.


This is genuinely counterintuitive and worth planning for explicitly with the controller before cutover. The reasoning is sound: parallel running doubles the entry work, invites drift between the two systems, and rarely catches problems that the three validation tests do not catch.



Phase 8: Post-Migration Housekeeping

Migration completion is the beginning of the next phase, not the end. Five housekeeping items deserve execution in the first week post-cutover.


1. Revoke the Intuit OAuth Grant (if truly done with QBO)

If your client is genuinely done with QBO (not maintaining read-only access for attachment lookup or historical detail), remove DualEntry from the client's Intuit connected apps list. Two-steps disconnect per DualEntry's documented behavior:

  1. Disconnect the migration connection in DualEntry (deletes DualEntry's stored tokens automatically)

  2. In your Intuit account, navigate to connected apps and revoke DualEntry's grant manually


Skipping the second step leaves a persistent OAuth grant that no retention sweep will remove.


2. Redirect Integrations

Every integration that was pointing at QBO needs redirection to DualEntry:

  • Banking connections (typically re-established from within DualEntry rather than moved)

  • Payroll (Gusto, Rippling, ADP) if payroll integrates with the GL

  • Expense management (Ramp, Brex, Divvy) if integrated to GL

  • Sales tax tools (Avalara, TaxJar) if you use these

  • Tax preparer access (if your tax preparer used to have QBO access)

  • Investor reporting tools if any were connected to QBO

  • Any other custom integrations


Sequence these deliberately. Do not redirect all integrations on the same day.


3. Reconcile Bank Accounts in the First Week

Per DualEntry's documented common pitfalls: "Not reconciling bank accounts in the first week" is a common failure mode. Reconciliation discipline in the first week catches integration setup problems while they are still easy to fix. Do not defer the first monthly reconciliation.


4. Export Historical Reports Before QBO Subscription Ends

If your client is planning to cancel the QBO subscription, export permanent copies of key historical reports before cancellation:

  • Prior period P&L statements

  • Prior period balance sheets

  • AR/AP aging reports

  • Sales tax reports

  • 1099 reports

  • Bank reconciliation history (this cannot be reconstructed from DualEntry)


Store these as PDF and CSV in a location the client can access permanently.


5. Document the Migration for Future Reference

Migration documentation lives forever in the accounting record. Standard documentation package:

  • Final mapping worksheet with account renumbering

  • Tie-out procedure results including all reconciling items and rationale

  • Cutover-day timeline showing when each step completed

  • Any exception decisions with rationale (skipped records, deactivated accounts, materiality determinations)

  • Migration completion sign-off from the controller


This documentation supports future audit inquiries and helps if migration questions arise months later.



Common Pitfalls, in the Order They Occur

Per DualEntry's documentation, these are the failure modes in the sequence they typically occur. Watch for each explicitly.


1. Skipping Open AR and AP

Per DualEntry's documentation: "An aggregate AR balance with no invoices behind it cannot be collected against, cannot be aged, and cannot be reconciled."

The temptation is to migrate AR and AP as opening balance journal entries (Path B) rather than as detailed open items. This works for closed periods, but for open items (unpaid customer invoices, unpaid vendor bills at cutover date), the detail is required. Migrate open items in detail regardless of which path is chosen for closed period detail.


2. Posting in Both Systems

Per DualEntry's documented failure modes: "lock the period in the old system by enforcement, not announcement."

Any post to QBO after the entry freeze creates drift between the systems and invalidates the tie-out. Enforce the freeze via QBO user permission changes, not just email announcements.


3. Validating Against a Moving Target

Per DualEntry's documentation: pull source exports after entry stops, and do not re-pull them.

If the source data changes during validation, the tie-out becomes impossible because the reference point is moving. Fix the source exports once and treat them as fixed.


4. Not Reconciling Bank Accounts in the First Week

Post-migration bank reconciliation catches integration setup problems while they are still easy to fix. Defer this and every subsequent reconciliation becomes harder.


5. Losing Historical Reports

Export P&L, balance sheet, and aging reports from QBO before the old subscription ends. Once QBO access is gone, historical report access is gone.



The Bottom Line

Migrating from QuickBooks Online to DualEntry is executable in a compressed timeline when the pre-cutover decisions are made carefully, the numeric COA renumbering is completed thoughtfully, the cutover day runs through the documented runbook, and the three validation tests are executed with workpaper-grade discipline.


The migration succeeds when someone with CPA-level judgment owns the mapping decisions and tie-out procedure. It fails when the process is treated more casually than it deserves. DualEntry's migration engine is genuinely impressive and materially better than what NetSuite migrations require, but "better than NetSuite" does not mean "one-click."


The specific gotchas that catch most migrations by surprise (the attachment gap, the source document numbers that mostly do not survive, the bank reconciliation history that stays in QBO, the Intuit OAuth grant that persists after disconnect, the numeric COA renumbering requirement) are all documented in DualEntry's own materials. Reading the documentation carefully before starting eliminates most of them.


For catch-up cleanup engagements specifically, the migration is materially easier when the QuickBooks Online source is already cleaned up. A disordered source chart of accounts is the single largest driver of migration cost and complexity, per DualEntry's own documentation. Cleaning up first, then migrating cleanly, produces better outcomes than trying to clean up during the migration itself.


DualEntry ships fast, and specific parameters (retention periods, retry intervals, rounding tolerances) may evolve. Verify current documentation before executing any migration, and treat this checklist as a workpaper template that needs updating rather than a permanent artifact.



Ready to migrate from QuickBooks Online to DualEntry?

Most CPAs advising on this migration have not actually done it. The DualEntry documentation is available to everyone, but reading it carefully takes time and translating it into execution requires the specific accounting judgment that most bookkeepers do not have. This creates a real gap between what marketing content claims and what execution actually requires.


Catch Up Clean Up specializes in the specific engagement pattern that most DualEntry migrations follow. Historical cleanup of the QBO source, careful chart of accounts renumbering, sandbox evaluation before production cutover, workpaper-grade tie-out procedure, and coordination with DualEntry sales throughout. Because I am a Certified Puzzle Advisor at Preferred Partner tier and platform-agnostic in my advisory approach, I can honestly evaluate whether DualEntry is the right destination for your business or whether Puzzle, Xero, or continued QuickBooks Online is a better fit.


What you get:

  • A 30-minute diagnostic call to assess DualEntry fit for your specific business

  • Objective evaluation across DualEntry, Puzzle, QuickBooks Online, Xero, NetSuite, and Sage Intacct

  • Historical QBO cleanup before migration to materially reduce migration cost and complexity

  • Chart of accounts renumbering executed by a CPA with documented rationale

  • Sandbox evaluation before production cutover

  • Cutover-day execution following the documented runbook

  • The three validation tests executed with workpaper-grade discipline

  • Post-migration integration redirection and Intuit OAuth grant revocation

  • First-month reconciliation to catch integration setup problems while they are still easy to fix

  • Complete migration documentation for future audit reference

  • Ongoing DualEntry bookkeeping if DualEntry is the right destination

  • Platform-agnostic advisory so the recommendation is based on your business, not our certifications


Book a free consultation and we will diagnose your migration situation honestly.



Frequently Asked Questions

How long does a QuickBooks Online to DualEntry migration actually take?

For a straightforward migration with a cleaned-up source chart of accounts, cutover day executes within 1-3 days or even hours. Tie-out and validation adds one to two more business days. For migrations with disordered source charts of accounts, the timeline extends significantly as mapping decisions become harder and tie-out reveals more reconciling items. Add cleanup time in QBO before migration for realistic total project timeline.


How much does the migration cost?

Software costs are included in DualEntry's implementation-included pricing model. Professional services for migration execution typically range $5,000-$18,000 depending on complexity, source data cleanliness, and how much of the tie-out procedure the internal team executes versus external CPA. Adding pre-migration QBO cleanup ranges $3,000-$12,000 depending on the extent of cleanup required.


Do I need to keep my QuickBooks Online subscription after migration?

Depends on your specific gaps. If attachment lookup, bank reconciliation history access, or historical detail lookup matter to your ongoing operations, retain at least read-only QBO access. If everything you need has been exported and DualEntry has the go-forward operational data, cancellation is fine. Most businesses keep read-only access for 6-12 months as a safety net.


Should I run QBO and DualEntry in parallel for a month?

DualEntry recommends against parallel running for QuickBooks migrations, unlike standard NetSuite migration practice. The documented reasoning: parallel running doubles the entry work and the second copy tends to drift. Preferred approach is a clean break on a period boundary with QBO kept readable rather than writable.


Can I reverse a DualEntry migration if it goes wrong?

No. DualEntry's documentation explicitly states there is no migration reversal action. Unwinding means archiving records, bounded by period locks and reconciliation state. Fixing a mapping error does not move transactions that already posted. This is why the sandbox evaluation and predetermined mapping decisions matter so much; the migration engine is forward-only.


Do QuickBooks attachments migrate to DualEntry?

No. QuickBooks attachments do not migrate through the connector. Xero attachments do. For QBO clients, three viable solutions: bulk export attachments before cutover, retain QBO read-only access, or rebuild attachment discipline going forward with historical attachments staying in QBO.


What is the Intuit OAuth grant issue?

DualEntry's disconnect deletes DualEntry's stored tokens but does not revoke the OAuth grant with Intuit. For Xero, a 180-day sweep handles this automatically. For QuickBooks, no sweep exists. To fully withdraw DualEntry's access to QBO, you must manually remove DualEntry from the Intuit connected apps list after disconnecting the migration in DualEntry.

Comments


Modern office workspace illustrating professional accounting services

You’re in the right place to address accounting issues that are hindering your business from scaling.

bottom of page