Why Accounts Payable Is Wrong After a QuickBooks Migration
2026-07-27 · 3 min read
When accounts payable does not match after a QuickBooks Desktop to Online migration, the cause is usually specific bills that did not migrate, or bills whose applied payments landed differently. Compare the A/P Ageing Detail from both systems bill by bill. Do not pay anything from the new file until it agrees, because a missing bill looks exactly like a bill that was already paid.
Why is A/P more urgent than A/R?
Because the failure mode costs you money immediately rather than eventually.
An A/R error means you might not chase something you are owed. An A/P error means you might pay a bill twice — once from the old file before the migration, once from the new file that has no record of the payment — or miss a payment entirely because the bill vanished. One is a delay, the other is cash out the door.
What should I compare?
The A/P Ageing Detail from both systems, matched on bill number within each vendor.
| Report | What it gives you |
|---|---|
| Trial Balance | A/P disagrees by 2,105.50 |
| A/P Ageing Summary | This vendor disagrees by 2,105.50 |
| A/P Ageing Detail | Bill 4471 from this vendor, due 30 Nov, is missing |
What are the usual causes?
| What you find | What it usually means |
|---|---|
| Bill missing in Online | Outside the migrated date range, or the vendor record did not come across |
| Open balance lower in Online | A payment was applied that should not have been |
| Open balance higher in Online | A payment did not migrate — the risk of paying twice |
| Vendor missing entirely | The vendor did not come across, taking their bills with it |
| Credit missing | Vendor credits are easy to lose and inflate what you appear to owe |
Vendor credits deserve special attention. They are less common than bills, so they are under-tested by whatever migrated your file, and their absence quietly increases what you think you owe.
Why does the timing of the migration matter so much here?
Because a payment made in the gap between exporting and going live exists in neither file properly.
If you paid a bill from Desktop on the Tuesday, migrated on the Wednesday, and the export was taken on the Monday, that payment is not in Online. The bill will sit there looking unpaid, and the obvious action — paying it — is the wrong one.
Freeze payments across the switchover, and reconcile A/P before you release that freeze.
What real files look like
A real QuickBooks A/P Ageing Summary we parsed carried 35 vendors across 5 ageing buckets — Current, 1-30, 31-60, 61-90, and 91 and over — with a single Total column. That is small enough to scan by eye and still large enough that one missing bill hides comfortably.
The Detail version of the same report runs to one row per bill. At 35 vendors averaging 6 open bills each you are comparing roughly 210 rows against another 210, matched on bill number. That is the point where eyes stop being reliable and a comparison has to be mechanical.
Two numbers worth knowing before you export: QuickBooks Desktop's CSV export silently
truncates at 32,770 rows, so use Excel for anything large. And Excel stores full
float precision, so a value displayed as 129,191.99 is 129191.98999999999
underneath — round to cents rather than truncating, or you lose a penny on nearly every
line.
Quick reference
| Question | Answer |
|---|---|
| Which report names the bill? | A/P Ageing Detail, both systems |
| Biggest financial risk? | Paying a bill twice |
| What matches across systems? | The bill number, within a vendor |
| Easiest thing to lose? | Vendor credits |
| When should I resume paying? | After A/P agrees bill by bill |
The free check matches both ageing reports for you and names every bill that is missing or has a different open balance.