Bank reconciliation is easy to picture because you have a bank statement to check against. Accounts receivable trips people up for one reason: there is no outside statement telling you what customers owe. So what do you actually reconcile against?
Accounts receivable reconciliation is the process of confirming that your accounts receivable subledger, the running record of what each customer owes, matches the AR control account in your general ledger (GL).
The subledger, usually read off the AR aging report, is the source of truth. The GL control account is the target. When the two agree, your receivables balance is trustworthy.
When they do not, the difference is a break you need to explain before you close the month.
Put simply, you are checking that the sum of every open customer invoice equals the single AR figure on your balance sheet.
This guide walks through the process step by step, works through a full example with real numbers, and shows how to resolve the discrepancies that show up most often.
Key takeaways
- You reconcile the AR subledger (aging report) against the GL control account, not against a bank statement.
- The main aim is to confirm the total of open invoices equals the receivables balance on the balance sheet.
- Unapplied cash is the single most common cause of a break, so start there.
- A clean reconciliation needs source documents, a matching pass, a discrepancy investigation, and approved adjustments.
- Foreign-currency receivables add an FX revaluation step that most guides skip.
What is accounts receivable reconciliation?
Accounts receivable reconciliation compares the detailed list of what customers owe with the summary figure recorded in the general ledger.
Every credit sale posts twice: once to an individual customer account in the subledger, and once to the trade-receivables control account in the GL.
The control account is meant to be nothing more than the sum of its parts, so the two should always tie out.
They drift apart when something touches one record but not the other. A payment gets banked but never applied to an invoice. A journal entry posts straight to the control account and bypasses the subledger.
A credit memo is issued in the billing system but not booked in the GL. Reconciliation is the routine that catches these gaps while they are still small.
This work usually sits inside the month-end close, though high-volume finance teams reconcile weekly or even daily so exceptions never pile up.
It is closely related to account reconciliation as a discipline, but the receivables version has its own quirks because customers, not banks, sit on the other side.
What do you reconcile accounts receivable against?
This is the question that stops most beginners, and the answer is worth stating plainly. You reconcile the AR aging report to the AR control account in the general ledger.
- The AR aging report lists every open invoice by customer and by age bucket (current, 30, 60, 90+ days). Its grand total is what your customers collectively owe you.
- The GL control account is the single trade-receivables line on your balance sheet.
If the aging total is $482,000 and the GL shows $482,000, you are reconciled. If the GL shows $486,500, you have a $4,500 difference to find. Unlike a bank reconciliation, there is no third-party statement.
The aging report is your internal source of truth, which is exactly why the underlying data has to be clean.
How to reconcile accounts receivable, step by step
The process is the same whether you run it monthly or continuously. Work in this order.
- Gather your source documents. Pull the AR aging report, the GL control account balance, open invoices, cash receipts, credit memos, and any write-offs for the period.
- Start with unapplied cash. Before anything else, check for payments received but not yet matched to an invoice. This resolves a large share of breaks on its own, so clearing it first saves hours downstream.
- Compare the two balances. Set the aging total against the GL control balance and note the difference. A zero difference still needs a scan for abnormal balances, such as negative or stale 90+ day amounts.
- Match transactions and investigate the gap. Trace invoices to payments and payments to invoices. Look for duplicates, misapplied payments, partial payments, unsupported credit memos, and journal entries posted directly to the control account.
- Record approved adjustments. Once you know the cause, book the correcting entry: apply the cash, reverse the duplicate, write off the bad debt, or post the FX revaluation. Never carry an unexplained difference forward.
- Review and sign off. A second person reviews the reconciliation and approves it. Separating the preparer from the reviewer is a basic control that auditors expect.
A worked example
Numbers make this concrete. Assume you are closing March for a services business.
| Record | Balance |
|---|---|
| AR aging report total | $486,500 |
| GL control account | $482,000 |
| <strong>Difference to explain</strong> | <strong>$4,500</strong> |
You investigate and find two issues:
- A customer paid $3,000 on 28 March. The deposit hit the bank and posted to the GL, which reduced the control account, but the cash was never applied to their open invoice. That invoice still shows as unpaid on the aging report, so the aging is overstated by $3,000.
- An invoice for $1,500 was entered twice in the billing system, so the subledger carries the same charge twice. Only one copy ever reached the GL, so the aging is overstated by a further $1,500.
The fix:
- Apply the $3,000 receipt to the correct invoice so the payment reduces that customer's balance.
- Reverse the duplicate $1,500 in the subledger with a credit memo.
After both corrections, the aging total falls to $482,000, matching the GL control account, and the $4,500 difference is fully explained.
The lesson repeats in almost every reconciliation: the break is rarely one big error and usually two or three small ones, most of them tied to how cash was applied.
Common discrepancies and how to fix them
Most breaks trace back to a short list of causes. Use this as a diagnostic: match the symptom to the cause, then apply the fix.
| Cause | What you see | How to fix it |
|---|---|---|
| Unapplied cash | Payment banked, invoice still open | Apply the receipt to the correct invoice |
| Partial or short payment | Invoice partly paid, balance lingers | Record the part payment; flag the remainder for collections |
| Duplicate invoice | Same charge entered twice | Reverse one copy with a credit memo |
| Unsupported credit memo | Aging drops with no backup | Confirm approval, then book or reverse it |
| Direct entry to control account | GL moves, subledger does not | Reverse the manual entry; post through the subledger |
| Timing or clearing lag | Marketplace or gateway payout trails the sale | Hold in a clearing account and clear on settlement |
| FX revaluation | Foreign invoice value shifts with the rate | Post the unrealised FX gain or loss |
The recurring theme across all of these is accounts receivable automation: the more matching happens by hand across billing, CRM and bank exports, the more breaks you create.
Customer names that differ between systems are a classic trigger, because a payment cannot auto-match when the payer in your bank feed does not equal the customer in your ledger.
Get every foreign payment matched to its invoice, automatically
AR reconciliation vs bank and payment reconciliation
These terms get used loosely, so it helps to see them side by side. Each ties a different pair of records together.
| Type | You match | Against | Answers |
|---|---|---|---|
| AR reconciliation | AR aging subledger | GL control account | Do our records of what customers owe agree? |
| Bank reconciliation | Cash book | Bank statement | Does our cash match the bank's? |
| Payment reconciliation | Payments received | Invoices or orders | Was each payment received and matched correctly? |
They overlap in practice. A bank reconciliation answers a different question again, and a payment reconciliation problem often surfaces first as an AR break. Clean invoice reconciliation upstream makes the AR tie-out far shorter.
The supplier-side equivalent is vendor reconciliation, which checks what you owe rather than what you are owed.
Reconciling foreign-currency receivables
If you invoice overseas customers, reconciliation carries an extra layer that domestic guides skip.
A receivable raised in US dollars but settled into a home currency such as rupees moves in value between the invoice date and the payment date, so the amount that lands rarely equals the amount you booked.
That gap is a foreign-exchange gain or loss, and it has to be posted for the subledger and GL to tie out.
Two things make cross-border AR harder to reconcile:
- Rate movement. An invoice booked at one rate and paid at another leaves an FX difference on every settlement, on top of any bank markup buried in the conversion.
- Matching a foreign remittance to an invoice. A wire can arrive net of intermediary fees and with a payer name that does not match your customer master, so the cash lands unapplied and the aging stops tying out.
This is where a purpose-built receiving layer helps.
Xflow gives exporters a receiving account that collects foreign payments, converts at live mid-market rates so the FX difference is transparent rather than hidden, and issues the electronic Foreign Inward Remittance Advice, or eFIRA, automatically as proof of receipt.
Paired with Xflow Invoicing and the Zoho Books integration, incoming payments arrive already tied to the invoice they settle, which removes the unapplied-cash break before it starts.
Xflow holds final Payment Aggregator - Cross Border (PA-CB) authorisation from the Reserve Bank of India (RBI) for both exports and imports, as of February 2026, so the compliance trail stays intact.
Calculate your extra earning
FX rate
INR amounts with others
Banks
FX rate
Best practices
- Reconcile more often than month-end. Weekly or continuous reconciliation keeps exceptions small and the close short.
- Apply cash first, always. Since unapplied cash drives most breaks, make it the first pass, not the last.
- Separate preparer and reviewer. Segregation of duties is a control auditors look for and it catches errors a single reviewer misses.
- Never carry forward an unexplained difference. A rolled-over gap compounds into a cleanup project later.
- Automate the matching. Let software handle high-volume payment-to-invoice matching so your team spends its time on genuine exceptions.
The bottom line
Accounts receivable reconciliation comes down to one check: does the total of your open invoices equal the receivables balance in your general ledger?
Get the source data clean, apply cash first, resolve each break at its cause, and never carry an unexplained difference forward.
For teams collecting from overseas customers, the extra FX and matching layer is where most manual effort and most breaks live, and it is the part worth automating first.
Reconcile cross-border receivables without the manual matching
RBI PA-CB authorised
Auto eFIRA & FIRC
ISO 27001 & SOC 2
Frequently asked questions
The AR aging report, which is your subledger, is reconciled against the accounts receivable control account in the general ledger. There is no external statement as there is with a bank reconciliation.
At least monthly as part of the close. High-volume teams reconcile weekly or daily so unapplied cash and exceptions never accumulate.
The most common reasons are unapplied cash, duplicate invoices, unsupported credit memos, and journal entries posted directly to the control account without going through the subledger.
It is a payment you have received and banked but not yet matched to a specific invoice. Until it is applied, the invoice looks unpaid and the aging will not tie to the GL.
Match the foreign payment to its invoice, then post the FX gain or loss for the rate movement between the invoice and payment dates so the subledger and GL agree.
No. Reconciliation confirms your records are accurate. Collections is the separate work of chasing overdue invoices to get paid.
