System Solutions

Accounting systems built for the auditors here, not a US template adapted

Cambodian chart of accounts, KHR + USD dual-currency books with no rounding drift, GDT e-VAT, withholding tax and salary tax figures ready for the monthly return. Built for auditors here, not adapted from a US template.

Why Cambodian SMBs migrate off QuickBooks and Peachtree

QuickBooks and Peachtree (Sage 50) fail Cambodian businesses on three specific pressure points: no NBC rate feed (QuickBooks Online lists KHR but draws rates from a market data provider), no GDT monthly return figures, and no multi-entity consolidation. When any one of those gaps becomes a compliance or growth bottleneck (and GDT's 2025–2026 compliance push has made all three urgent), workarounds stop being enough.

QuickBooks and Peachtree were the right tools for a different era. Month-end closed, invoices went out, accountants managed the rest. The trouble is that the rest now includes a monthly return to GDT in KHR, converting KHR/USD at the NBC daily rate on each invoice date, and managing withholding tax, which means WHT at three different rates depending on counterparty type. None of these are things QuickBooks or Peachtree do without manual workarounds.

What replaces it depends on entity count, transaction volume, government-contract exposure (CamInvoice mandate), and whether accounting alone is the scope or the books need to sit on one ledger with stock and sales. The migration conversation starts with mapping what the current system does versus what the business needs. The gap between those two lists defines the scope.

QuickBooksPeachtreeNo GDT monthly return figuresNo NBC rate feedNo multi-entity consolidationMonthly return to GDT in KHRNBC daily rate on each invoice dateWHT at three different rates
QuickBooksPeachtreeNo GDT monthly return figuresNo NBC rate feedNo multi-entity consolidationMonthly return to GDT in KHRNBC daily rate on each invoice dateWHT at three different rates
fig. 01 · three gaps in the old system, and what the month now asks of it

What does an accounting system migration cover?

A full accounting migration is not a data export. It covers six distinct work streams: chart-of-accounts (COA) mapping, opening-balance migration, accounts-receivable (AR) and accounts-payable (AP) roll, fixed-asset register rebuild, historical-report strategy, and GDT compliance setup in the new system. Each has its own risks and timelines.

COA mapping is the work most firms underestimate. QuickBooks uses a flat account list; the ledgers we build use a structured chart with account groups, tax mappings, and currency assignments. Every QuickBooks or Peachtree account needs to be mapped to its equivalent in the new system before a single transaction moves. Accounts with no clear equivalent require a decision: absorb into an existing account, create a new one, or close out the balance before migration.

Opening balances need to be reconciled to a specific cut-off date: the last closed trial balance in the old system becomes the opening entry in the new one. Open AR and AP invoices carry over, the fixed-asset register migrates with both cost and accumulated depreciation, and the customer and vendor master moves alongside them. For KHR-denominated accounts, the KHR/USD rate at the cut-off date must be documented and defensible to a GDT auditor.

Historical reports typically stay in the old system as a read-only archive. Keep QuickBooks or Peachtree available in archive mode for the ten years records must be kept, so accountants and auditors can pull prior-period data. GDT compliance setup in the new system covers the Cambodian chart of accounts, tax codes (VAT 10%, VAT 0%, VAT exempt, WHT 15%/10%/14%), NBC daily rate integration, and, if the business is B2G, CamInvoice adapter scoping. This work cannot be left until after go-live. See the CamInvoice integration scope.

Old systemCut-off dateOpening balancesOpen AR and APFixed-asset registerCustomer and vendor masterNew systemHistorical reportsRead-only archiveChart of accountsTax codesNBC daily rate
Old systemHistorical reportsRead-only archiveCut-off dateOpening balancesOpen AR and APFixed-asset registerCustomer and vendor masterNew systemChart of accountsTax codesNBC daily rate
fig. 02 · what crosses the cut-off date, what stays behind, and what is set up new

How long does an accounting system migration take?

A single-entity SMB migrating from QuickBooks to a new system takes 8–13 weeks end-to-end. Peachtree migrations typically run 10–15 weeks because Peachtree's flat-file data is harder to extract than QuickBooks's structured export formats. Multi-entity or mid-market scope adds 4–8 weeks per additional entity.

  • Week 1. Discovery: COA audit, system access, cut-off date decision, stakeholder alignment.
  • Weeks 2–3. COA mapping: every account classified, gap decisions made, migration template signed off.
  • Weeks 3–5. New system setup: Cambodian chart of accounts, tax codes, multi-currency config, bank journals.
  • Weeks 4–6. Data migration: opening balances, open AR/AP invoices, fixed asset register, customer/vendor master (including TIN field population).
  • Weeks 6–9. Parallel run: both systems run simultaneously through one full month-end cycle. Reconcile to the riel and the cent before sign-off.
  • Weeks 9–10. Cutover: close old system, switch to new system as system of record, confirm the return figures come from it.
  • Week 10+. First monthly return from the new system: your accountant checks the figures, then files.
0w4w8w12w16wQuickBooks8–13 weeksPeachtree10–15 weeksPer additional entityadds 4–8 weeks
QuickBooks8–13 weeksPeachtree10–15 weeksPer additional entityadds 4–8 weeks0w4w8w12w16w
fig. 03 · migration timelines by source system, in weeks

Common migration pitfalls in Cambodia

Most accounting migrations that stall or overrun do so because of predictable problems, all of them avoidable if caught in discovery.

  • KHR rounding drift: a difference of ±1 riel per invoice line compounds across thousands of transactions into a material filing discrepancy. The migration must document the NBC rate on each historical invoice date and round consistently in the new system.
  • Return figures left to the end: the new system has to produce the first period's monthly return figures at cutover. Set up tax codes and KHR handling in weeks 3–5 and check the figures during the parallel run, not at week 10.
  • Multi-currency reconciliation gaps: businesses that invoiced in both KHR and USD often have inconsistent exchange rates across historical invoices. The fix is to document and accept the historical variance, then enforce NBC-rate discipline in the new system from day one.
  • KH chart-of-accounts mapping errors: Cambodian account numbering does not match QuickBooks or Peachtree defaults, and accounts mapped incorrectly produce wrong VAT return totals from the first filing. The mapping must be reviewed by an accountant with GDT filing experience, not just a technical implementer.
  • TIN field gaps on customer and vendor records: GDT requires a TIN on every B2B invoice. QuickBooks does not mandate this field, and TINs are frequently missing. These must be collected before go-live, not during the first GDT filing.
  • Training underestimated: switching accounting systems is a change-management project as much as a technical one. Budget 2–5 days of structured training per accounting user before go-live, not a 1-hour walkthrough, plus 30 days of supported use post-go-live.
FAQ

Frequently asked questions: accounting system migration

Can we keep our existing QuickBooks or Peachtree data?

Yes. Historical transactions stay in the old system as a read-only archive. We migrate opening balances and open items (unpaid invoices, outstanding purchase orders) to the new system. Most businesses keep the old system on an archived workstation or cloud backup; the Law on Accounting and Auditing 2016 requires accounting records to be kept for ten years.

What happens to historical reports after migration?

Prior-period reports (trial balances, P&L, balance sheet) remain accessible in the old system; the new system starts from the cut-off date opening balance. For a multi-year comparative, you pull earlier years from the old system, later ones from the new, and combine them manually or in a reporting tool. Export critical reports in PDF and Excel before closing the old system: once the licence lapses, access may not be guaranteed.

Do we need to switch at year-end?

No, but year-end is the cleanest cut-off point because the trial balance is closed. Migrating mid-year is possible and common; it requires agreeing on a cut-off date (typically end of a completed month) and migrating an in-year opening balance rather than a full prior-year closing balance. Mid-year migrations add 1–2 weeks to reconciliation because the parallel run must agree on a mid-year opening position, not a clean year-end close.

How does the migration affect our GDT compliance?

During the parallel run, one system is the system of record for GDT filing. Do not file from both. File from the old system's figures until cutover and switch to the new system's figures the same day. Your accountant files through GDT's E-Filing either way; what changes is where the figures come from. CamInvoice, if you sell to government, is separate work: see our CamInvoice integration work.

What about withholding tax (WHT) setup in the new system?

The new system needs a WHT tax code for each rate you incur (15% on services, royalties, and interest paid to residents, 10% on rental, 14% on any Cambodian-source payment to a non-resident), each linked to a ledger account. Each vendor record must be classified by residence and payment type during the vendor-master migration, so the correct rate applies at invoice posting. It cannot be retrofitted easily after posting begins.

We sell in both KHR and USD. How is that handled?

Both currencies are native to the books we build: a KHR journal and a USD journal, each linked to the correct bank account. The NBC daily exchange rate is pulled via an automated rate feed or entered manually. For GDT filing, all amounts are reported in KHR; the books convert USD amounts at the invoice-date NBC rate. Use NBC rates consistently, not rounded or static approximations.

Can we migrate from Peachtree if we no longer have the original install files?

Usually yes. Peachtree stores its company data in flat files (.DAT / .PTB formats) that can be read without the original install CD. If the files are intact on the machine or backup, data extraction is possible; if not, recovery depends on what backups exist. In worst-case scenarios, businesses rebuild the chart of accounts and enter opening balances from the last printed trial balance and open invoices from paper records.

Should we just move to Xero, Zoho Books, or QuickBooks Online instead?

For very small businesses (under 5 staff, USD-only, no government contracts, below the GDT VAT threshold), Xero or Zoho Books are reasonable choices, and we will say so. None of them files the return for you either, so check how much Cambodian tax setup each ships. Books we build carry no per-user licence and extend into a full ERP if the business grows into inventory, manufacturing, or payroll.