Reconciling Your Billing System to the Ledger

Who it's for: finance assistants, accountants and controllers in SaaS teams who use a billing system (such as Stripe Billing, Chargebee or Recurly) alongside a ledger (such as Xero, QuickBooks, Sage or NetSuite).

What you'll get: a monthly reconciliation process for billings and debtors, a worked example with reconciling items and correcting journals, where AI helps, and a risks and controls table.

Reading time: about 11 minutes. Keep it open next to both exports.

Why the billing system and the ledger drift apart

In most SaaS companies the billing system raises the invoices and the ledger just receives them through a sync. Syncs fail quietly. A missing tax code, a new customer not mapped, a credit note dated on the wrong side of month-end, and suddenly revenue, deferred revenue and debtors are all slightly wrong. A monthly reconciliation catches it while the list is short, rather than at year-end when the auditors find it for you.

Key terms

  • Billing system: the tool that holds subscriptions and raises invoices and credit notes. It's the source of customer billing data.
  • Ledger (general ledger): the accounting system that holds the company's books. It's the book of record for the accounts.
  • Sync or integration: the connection that copies invoices, credit notes and payments from the billing system into the ledger.
  • Net billings: invoices raised in the month less credit notes, before VAT.
  • Debtors (accounts receivable): amounts customers owe, including VAT.
  • Reconciling item: a specific, explained difference between two reports, with an owner and a fix (or a reason no fix is needed).

What you're actually reconciling

There are three separate checks. Many teams only do the first, which is how the other two go wrong for months.

Check Billing system report Ledger report Where AI helps
1. Billings Invoices and credit notes dated in the month, net of VAT Credits to revenue and deferred revenue from sales invoices in the month Matching invoice numbers across both lists
2. Debtors Open invoices (aged debtors) at month-end Trade debtors control account balance Finding invoices paid in one system but open in the other
3. VAT Tax charged on invoices in the month VAT output tax postings from sales Spotting invoices with missing or unexpected tax codes

Deferred revenue has its own reconciliation (see the related guides below), but it depends on this one. If billings are wrong, the deferred revenue schedule will be wrong too.

The monthly reconciliation, step by step

Step What "done" looks like
☐ Confirm the billing system has closed the month: all renewals, usage invoices and credit notes raised No invoices for the month still waiting to be issued
☐ Check the sync log for errors and retry any failed records Error list is empty, or every remaining error is noted
☐ Export invoices and credit notes from the billing system for the month, with invoice number, customer, date, net, VAT and currency Export saved with the date and time it was run
☐ Export the same period's sales invoices and credit notes from the ledger, with the billing reference Export saved alongside the billing system one
☐ Compare totals: net billings, VAT and gross, by currency Total difference calculated for each currency
☐ Match line by line on invoice number to find the items behind any difference Every unmatched invoice or credit note listed
☐ Classify each item: sync failure, timing, rate, duplicate, manual entry Each item has a cause and an owner
☐ Post correcting journals or fix the sync, then re-run the ledger report Unexplained difference is nil
☐ Repeat for debtors: billing system aged debtors vs ledger trade debtors Balances agree, or differences listed and explained
☐ Get the reconciliation reviewed and signed off Reviewer's name and date on the working paper

AI shortcut: give an approved AI tool both exports as CSV files and ask it to match on invoice number, then list (1) invoices in the billing system but not the ledger, (2) the reverse, (3) matched invoices where the amount, date or currency differs. Ask for a summary table with totals that tie to both reports. Check those totals yourself before trusting the detail.

The usual causes, and what to do about each

Cause What it looks like Typical fix
Sync failure Invoice in billing system, missing from ledger Fix the mapping (customer, tax code, product) and re-sync
Timing Credit note raised on the last day, landed in the ledger dated the next month Correct the date so it sits in the right month
Exchange rate Same invoice, slightly different sterling amount Document the rate source in each system; align settings if the difference keeps growing
Duplicate Same invoice posted twice after a retry Delete or reverse the duplicate
Manual entry Invoice raised straight in the ledger, bypassing the billing system Raise it properly in billing, or agree a documented exception
Payment mismatch Paid in the ledger, still open in billing (or the reverse) Mark it paid in the system that's behind

Worked example: MonthEndClub Co Ltd, October

MonthEndClub Co Ltd (a fictional UK SaaS company) uses a billing system synced to its ledger. Here's the October billings check.

Step 1: compare totals

Net billings, October £
Billing system: invoices 412,600
Billing system: credit notes (8,400)
Billing system: net billings 404,200
Ledger: net sales invoices posted for October 395,865
Difference to explain 8,335

Step 2: find the items

Matching on invoice number turns up three items.

Item Cause Effect on ledger vs billing (£)
INV-1045, annual subscription for a UK customer Sync failed: no tax code on new customer Ledger lower by 9,600
CN-212, downgrade credit on a monthly plan, raised 31 October Synced on 1 November and dated November Ledger higher by 1,350
INV-1052, US customer billed in US dollars Billing system and ledger used different exchange rates Ledger lower by 85
Net difference explained 9,600 − 1,350 + 85 = 8,335

The explained total matches the difference, so nothing is left unexplained.

Step 3: post the corrections

INV-1045. Fix the customer's tax code and re-sync, or post the invoice. It's an annual subscription billed in advance, so it goes to deferred revenue. VAT at the standard rate of 20% (as at October 2026) is £1,920.

Account Dr Cr
Trade debtors £11,520
Deferred revenue £9,600
VAT output tax £1,920

Then check the deferred revenue schedule picks up any October release for this contract.

CN-212. Re-date the credit note to 31 October. The effect in October is:

Account Dr Cr
Revenue £1,350
VAT output tax £270
Trade debtors £1,620

Make sure it's removed from November, or it will be counted twice.

INV-1052. No journal. The ledger is the book of record and its rate follows the company's FX policy. The £85 is documented as a rate difference. If rate differences grow month on month, a common approach is to align the two systems' rate sources.

Step 4: the debtors check

Debtors at 31 October £
Billing system: open invoices (including VAT) 286,400
Ledger: trade debtors before corrections 274,915
Add: INV-1045 posted 11,520
Less: CN-212 moved into October (1,620)
Ledger: trade debtors after corrections 284,815
Remaining difference 1,585

The remaining £1,585 is two items: a customer paid £1,500 by bank transfer, which was matched in the ledger but never marked paid in the billing system (so billing still shows it open), and the £85 rate difference on INV-1052 (US customers are outside the scope of UK VAT here, so there's no VAT on it). The fix for the first is to mark the invoice paid in the billing system, otherwise the customer gets a dunning email for money they've already paid. Check: 284,815 + 1,500 + 85 = 286,400.

AI shortcut: for the debtors check, give an approved AI tool the billing system's open invoice list and the ledger's open items list and ask which invoices are open in one but not the other, and whether any payments in the bank export match those amounts. You confirm each match against the bank statement.

If you report under US GAAP (ASC 606)

The reconciliation itself is the same. Revenue recognition for subscriptions is broadly the same under ASC 606 and IFRS 15, so the corrections above would typically be the same too. The main differences tend to show up elsewhere, such as in contract costs and disclosures.

Common mistakes and audit watch-outs

  • Only reconciling totals. Two errors can cancel out. Match line by line at least monthly.
  • Ignoring the sync error log. It's the cheapest early warning you have. Check it before you export anything.
  • Fixing the ledger but not the billing system. If a payment is recorded only in the ledger, the customer still gets chased.
  • Leaving "known differences" for months. An explained difference still needs a fix date. Old items turn into unexplained ones when people leave.
  • Manual invoices raised outside billing. They skip the billing system's controls and its deferred revenue data.
  • Reports run at different times. A billing export from Day 1 and a ledger export from Day 3 won't agree. Note the run time on both.
  • Trusting an AI match list without checking totals. AI can drop rows or mismatch similar invoice numbers. Tie its totals back to both source reports before using it.

Tools that can help

Billing systems such as Stripe Billing, Chargebee and Recurly each offer native integrations with ledgers such as Xero, QuickBooks, Sage and NetSuite, and most have a sync log worth checking every month. Excel or Google Sheets with a lookup on invoice number is enough for the matching in smaller teams. An approved AI assistant can do the first pass of matching and classification. None of these replace the reconciliation; they just make the list of differences shorter and faster to find.

Key risks and controls

Risk Control How to evidence it
Invoices missing from the ledger Monthly line-by-line billings reconciliation Signed reconciliation with nil unexplained difference
Revenue in the wrong month Cut-off check on credit notes and invoices dated near month-end List of items dated last 2 and first 2 days, reviewed
Sync failures going unnoticed Sync error log checked before close Screenshot or export of the log, dated
Debtors overstated or customers chased in error Monthly debtors reconciliation between systems Reconciliation showing each open difference and fix
AI matching errors AI totals tied back to source reports; person reviews exceptions Tie-out shown on the working paper, reviewer sign-off

Rates, thresholds and rules in this guide

Figures were checked against the pages below in October 2026. They change regularly (often each April or at Budget time), and we can't guarantee they're still current or right for your situation. Always check the official page before relying on them.

Key takeaways

  • Reconcile three things monthly: billings, debtors and VAT.
  • Check the sync error log first; it often explains most of the difference.
  • Match line by line on invoice number, not just totals.
  • Every reconciling item gets a cause, an owner and a fix.
  • Fix both systems, not just the ledger.
  • Let AI do the matching; a person checks the totals and signs off.

FAQs

Which system is right when they disagree?

Neither by default. The billing system is usually the source for what was invoiced, and the ledger is the book of record for the accounts. Each difference is investigated and the system that's wrong gets fixed.

How often should the billing system be reconciled to the ledger?

Monthly, as part of the close, is common practice. Teams with high volumes or frequent sync issues often run a lighter check weekly so month-end isn't a surprise.

What's an acceptable difference?

Many teams set a small threshold for rounding and rate differences, but the aim is nil unexplained difference. A difference you can explain is fine for now; one you can't explain isn't.

Can AI do this reconciliation for me?

AI is good at the matching and at grouping differences by likely cause. It can't confirm why a sync failed or approve a journal. Use only company-approved tools for customer data, check its totals against both reports, and keep the review and sign-off with a person.

Related guides

More in Revenue guides.


From the Club

For when two systems finally agree. The Team Mug · The Dad Hat

Join the Club. New guides, early access and members-only batches. Join here.

This guide is general information about common practice. It isn't tailored to any business, and standards, tax rules and figures change. Check your own circumstances, the latest rules and, where needed, a qualified professional before acting.

Last reviewed: October 2026.