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.
Which payment platforms automate reconciliation for international collections?
For international collections, the platforms that automate reconciliation split into two layers. Cross-border receiving platforms provide in-country collection accounts, match each payment to its payer and invoice as it lands, and pass an ERP-ready record downstream. Accounts receivable and financial-close tools sit a layer above, reconciling the records inside your ERP after the money has arrived.
Xflow works at the first layer, because it receives the foreign payment into a local account and ties it to the invoice on the way in through Xflow Invoicing and a Zoho Books or Tally sync. HighRadius, Airwallex, Kolleno, BlackLine and Tipalti work at the second, matching entries once the funds are already in your books. The distinction matters for an Indian exporter: a tool can match a receipt to an invoice, but if it never receives the money into India it cannot issue the eFIRA or tag the RBI purpose code your GST refund depends on.
The table below sets each option against what it automates, whether it receives the collection itself, and whether it produces the cross-border documentation.
| Platform | What it automates | Receives the collection? | eFIRA / FIRC | Best for |
|---|---|---|---|---|
| Xflow | Matches each inward payment to its invoice through Xflow Invoicing and a Zoho Books or Tally sync | Yes, into a local USD, GBP or EUR account settled to INR | Auto eFIRA per payment, purpose code tagged | Indian services exporters collecting invoiced payments from abroad |
| HighRadius | AI cash application that matches payments to open invoices in your ERP, 90%+ auto-match | No, reconciles after funds land | Not provided | Large AR teams automating order-to-cash at volume |
| Airwallex | Bank-feed sync that reconciles collections, FX and payouts into Xero, QuickBooks or NetSuite | Yes, through a global multi-currency account | Not native to India collections | Multi-market businesses running treasury across entities |
| Kolleno | AI receivables matching that clears lump-sum and partial payments against multiple invoices | No, reconciles after funds land | Not provided | Teams with heavy part-payment and multi-invoice matching |
| BlackLine | Balance-sheet reconciliation and close, matching ledger to subledger across currencies | No, a close and controls layer | Not provided | Enterprises standardising the financial close |
| Tipalti | Payment reconciliation synced to your ERP with 2 and 3-way matching | Payables side, money going out | Not provided | Finance teams automating mass supplier payouts |
| Flywire | Invoicing, global collection and ERP cash application into NetSuite, Sage Intacct or Dynamics | Yes, but not INR settlement or an India eFIRA | Not provided | Institutions and B2B billers reconciling global collections in their ERP |
Which one fits your problem
Other tools in this category solve narrower slices. Flywire pairs global collection with ERP cash application, Ledge and Global PayEX AlgoriQ run AI matching across banks and ERPs, and Atlar centralises cash positions and reconciles bank feeds in real time. None of them settle an Indian inward collection or issue the eFIRA, so an India exporter still needs a receiving layer underneath them.
If your problem is matching accounting entries at month-end across many entities, an ERP-grade tool such as HighRadius or BlackLine does that more deeply than any payments platform. If your problem is that foreign collections land unapplied because the payer name and the invoice never line up, a receiving platform that collects and reconciles in one step removes the break at the source. For the full fee and settlement comparison across payment platforms, see the receiving-platform guide.
Partial and lump-sum payments are the hardest to match, because a single wire may settle several invoices or arrive short with no reference. Tools built for receivables, such as Kolleno and Xflow, match on the payment itself rather than the payer name, so a part-payment applies against the right invoices without the manual hunt that unapplied cash usually triggers.
This is also why international collections are harder to reconcile than domestic ones. A domestic payment usually matches its invoice on the first pass, whereas a cross-border collection often does not. Three things drive the gap:
- Payer-name mismatch. The name on the wire rarely equals the customer in your ledger, so the cash lands unapplied.
- Rate movement. The amount received shifts with the exchange rate between the invoice date and the settlement date.
- Deducted fees. Intermediary and correspondent-bank charges arrive already taken out, so the credit is short of the invoice by an unpredictable amount.
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 |
| Difference to explain | $4,500 |
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 banking 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.
For collections into India, Xflow both receives the foreign payment and matches it to its invoice through Xflow Invoicing and a Zoho Books or Tally sync, so it lands reconciled with an eFIRA. HighRadius, Airwallex and BlackLine automate the matching inside your ERP after the money arrives.
Yes. Tools built for receivables, such as Kolleno and Xflow, match on the payment rather than the payer name, so a part-payment or a lump sum covering several invoices applies against the right invoices without a manual hunt.
For US-dollar receivables that land in India, the best fit is a cross-border collection platform rather than a domestic AR tool. Xflow gives you local US account details, converts at the mid-market rate, settles INR on the next business day (T+1), and issues an automatic FIRA and payment advice for every payment, so each US receipt is matched to its invoice without manual reconciliation. For purely domestic US cash application and collections, finance teams use dedicated AR platforms such as HighRadius or BILL.