Check month-end client balances by confirming transaction dates, reviewing account balances, checking foreign currencies, and reconciling payments and credits before sending reminders.
Key takeaways
- Confirm the reporting cut-off for invoices, payments and adjustments.
- Save each client's account balance at the close date.
- Separate foreign-currency amounts from their converted values.
- Resolve differences before asking for payment.
You open a client's file to send a reminder, the number in your head is one amount, the number in your accounting software is another, and the client's own records show a third. Before you write a single polite "just checking in" email, you need to know which number is right.
Month end is the natural time to get this straight. Your totals are closing, your reports are about to be read by someone else, and any mistake you leave in place will carry into the next period. This post walks through four checks you can run on each client's balance before you chase a payment. Together they stop you from asking someone for money they already paid, or from missing an amount that has been quietly sitting past due.
Before you start: separate income from unpaid balances
Income recognition and what a client owes are separate questions.
The Odoo accounting documentation states plainly that both accrual and cash basis accounting are supported in Odoo.
For chasing, an invoice can be outstanding at month end even though payment is not yet due. Changing the income-recognition basis does not change the client's unpaid obligations.
Write down the reporting cut-off and transaction-posting rules you use for your month-end sheet. Then apply them the same way to every client. Consistency matters more than which method you choose.
Once you know the reporting rules, you can run the four checks below.
Check 1: confirm the cut-off for every invoice and payment
The first check is about timing. You want to be certain which invoices and payments belong to the month that is closing.
Start with the invoices. Look at every invoice dated in the last few days of the month and in the first few days of the next month. Confirm that each one sits in the period you think it does. A common problem is an invoice created on the last day of the month but dated the 1st, or an invoice created in one month and sent in the next.
Next, look at payments. Check the date the money reached your bank account, not the date the client says they sent it. A payment sent on the last day of the month may not clear until the next one. Decide which date your month-end balance uses and apply it to every client.
Finally, look for anything that is not an invoice or a payment but still moves the balance: credit notes, refunds, write-offs, and adjustments. These often get posted late. A credit note issued on the 3rd of the next month for a job done in this month belongs to some period, and you need to decide which one before you chase anyone.
When you finish this check, you should be able to say for each client: "These invoices are in this month, and these payments are in this month." If you cannot say that, do not send a reminder yet.
Check 2: pull each client's balance from the account report
The second check is to get the balance from the right place. Many people look at a total on a dashboard or an invoice list and assume it is the client's balance. It may not be.
In Odoo, an accounting report displays the balance of customers and suppliers. That is the kind of report you want for this job.
Run the report for the month end you are closing. Do not run it for "today" and then try to work backwards, because the figures will have moved. Set the end date to the last day of the month, and set the start date so that you see the full history of open items. Export or print the result so you have a fixed copy to compare against.
Then read the report for each client, line by line. Look for three things. First, open invoices that you think are paid. Second, payments that are not yet matched to any invoice. Third, amounts that appear twice, once as an invoice and again as a journal entry or a copy from an earlier import.
Write down the closing balance for the client as the report shows it. This is the number you will test in the remaining checks. Do not change it yet. Your goal in this step is only to see the number clearly.
Check 3: look at balances in a foreign currency
The third check applies only if you invoice clients in more than one currency. If every client pays in your home currency, you can skip ahead, though it is still worth knowing that this check exists.
When a balance is held in a foreign currency, the amount in that currency stays the same, but its value in your home currency can move from one month end to the next. The Frappe documentation for ERPNext gives a clear worked example. It describes a case where at month end, Nova still holds EUR 1,000 in its Euro Bank account, and it shows how the home-currency value changes with the exchange rate. In the example, if the balance was recorded at 1 EUR = 1.10 USD and the closing rate is 1.15, its USD value has risen from 1,100 to 1,150.
The point for your client balances is simple. A client who owes you 1,000 units of a foreign currency still owes you 1,000 units. What has changed is what that amount is worth in the currency you report in. If your month-end report converts that balance using the rate from the day you invoiced, the number you show may not match the number a fresh calculation gives at the close.
The Frappe example treats this change as a separate adjustment. Revaluation updates the company-currency carrying value without changing the EUR 1,000 balance. It also identifies the USD 50 unrealized gain so finance can review and post an accurate period-end adjustment, which means the amount owed stays the same while its value changes.
For your own checks, this means three things. First, confirm that the foreign-currency amount for each client matches the invoices, without any conversion. Second, separately, confirm the home-currency value you use at month end and the rate behind it. Third, quote amounts to the client in the currency they were invoiced in.
Keep the two numbers apart in your notes: the foreign-currency amount, which the client actually owes, and the converted value, which is what your books show. Only the first one is what you ask them to pay. For related billing checks, see foreign currency invoices.
Check 4: tie the parts back to the total
The fourth check is a reconciliation. You have a balance for each client from Check 2. Now you need to confirm that the balance is built from the right pieces and that the pieces add up to the figure in your books.
Start with applied payments. Each payment that you have matched to an invoice should reduce that invoice. Make sure none of the matches are wrong. A common error is a payment matched to the wrong invoice, which makes one invoice look paid and another look overdue. If the client paid two invoices with one transfer, check that the total was split across them correctly.
Next, look for unapplied cash. This is money that has arrived from a client but has not been linked to any invoice. It may be a payment without a reference, a deposit, or an overpayment. Before you chase, work out whether the payment belongs to this client and, if so, which invoice it should pay. Cash already posted to the client's account may already reduce the net balance, even while an invoice appears unpaid. See deposits and partial payments for related checks.
Then check credit notes and refunds. If a client has a credit note that has not been used, it may reduce what they owe you or it may be a balance that you owe back to them. Either way, the figure you use in a reminder should reflect it. Chasing a client for an invoice that you have already credited is one of the fastest ways to lose their goodwill.
Once every piece is accounted for, add them up and compare the result with the closing balance from your account report. The two should match exactly. If they do not, the difference is the problem to solve. Do not guess. Find the entry that makes up the gap, because a small difference often points to a single duplicate, a missed payment, or a rounding issue in a foreign-currency conversion.
It is also worth doing this across the whole book, not just client by client. Add up all client balances and compare the total with your receivables figure in the general accounts. Investigate differences in the entries, report scope and reconciliation settings.
Putting the four checks into a routine
Running four checks for every client each month can feel like a lot. A simple routine keeps it manageable.
First, choose your month-end date and posting rules, and write them at the top of a single working document. Keep it the same every month so that comparisons are fair.
Second, run the account report for the close date and save a copy. This is your fixed reference. If you need to change the books later, you can see what the balance was when you first checked it.
Third, work through the clients in order of the amount they owe, starting with the largest. A mistake on a large balance matters more. Small clients with few transactions often need only a quick look.
Fourth, keep a short list of exceptions. Each time a balance does not match, write down the client, the amount, and what you found. Over a few months, this list will show you patterns. Perhaps one payment method always arrives late, or one client always sends payments without a reference.
Fifth, and most important, do not send reminders until the checks are done. A reminder based on a wrong balance is worse than no reminder at all.
What to say when you do chase
Once you are confident in the balance, the chasing itself can be short and clear. A good reminder states the client's name, the amount due, the invoices it covers, and the agreed payment due dates. If there is a payment or credit that the client might not know about, mention it. For example, you might say that you have applied a payment to one invoice and that the remaining amount covers two others.
Include a client-specific statement or filtered list of open items, excluding other clients' information and internal-only entries. This is the simplest way for a client to check the figure against their own records. If the foreign-currency check showed that the amount is in a currency other than your home currency, state it in that currency.
Avoid language that suggests the client is at fault until you know that they are. If you find out that you were wrong, say so, correct the balance, and send an updated statement. A clean correction builds more trust than a reminder that turns out to be incorrect.
Common mistakes to avoid
Several mistakes come up again and again when people check month-end balances. Knowing them in advance makes the checks faster.
The first mistake is mixing dates. An invoice dated one month and recorded in another, or a payment received late but dated early, causes a balance to be right for the wrong month. Choose one date rule and stick to it.
The second mistake is trusting the summary. A total on a dashboard can hide the detail that explains it. Always look at the account records or the open items behind a balance before you act on it.
The third mistake is ignoring small amounts. A small balance can signal a rounding error or a duplicate, so clear differences at the close.
The fourth mistake is skipping the total check. Individual balances can each look fine while the sum disagrees with the books.
The fifth mistake is chasing before you have finished. If the checks later show that an invoice was paid or credited, you will have to send a correction.
Illustrative example: checking one client
Here is how the four checks might look for one client. Suppose a small design studio sends a client two invoices for 1,100 and 50 in the last week of the month and receives one payment in the first days of the next month.
At Check 3, the client is in the same currency as the studio, so there is no conversion to check. The studio notes that and moves on.
At Check 4, the studio adds the two open invoices and compares the total of 1,150 with the client balance in the account report. The figures agree. It also checks that the whole book's receivables total matches the general accounts. It does, so the studio is ready to send a statement.
Start with one client today
Start with one client, work through the four checks, and then repeat for the rest.
Common questions
Does the accounting basis change what the client owes?
No, changing the income-recognition basis does not change unpaid client obligations. Use invoices, payments, credits and agreed due dates to check the amount due.
Should a currency adjustment change the payment request?
No, request the amount owed in the invoice currency. Keep its converted value separate for your month-end records.
What if the totals do not match?
Investigate the difference before sending a reminder. Check the underlying entries, report scope and reconciliation settings.