Quick answer
Xero records a contra entry through a clearing account rather than a special transaction type. Create a contra clearing account (bank type, no feed), then record a payment on the sales invoice into that account and a payment on the supplier bill out of it, same amount, same date. Both documents show as paid to the extent of the offset, the clearing account nets to zero, and only the remaining difference is settled through the real bank.
When contra entries come up
Any relationship where the same party sits on both sides of your ledger: the marketing agency you supply services to that also bills you for ad spend, the landlord you invoice for maintenance work, franchise arrangements, and intercompany trading between commonly owned entities. Without a contra mechanism, both sides carry inflated accounts receivable and accounts payable, chase payments that will never be made in full, and reconcile transfers that cross in the mail. One agreed offset replaces all of that with a single net settlement.
Setting up the clearing account
Once per organisation:
- In the chart of accounts, add a new account named something like Contra Clearing.
- Make it a bank account type without connecting any feed (or a current asset that accepts payments). Bank type keeps it visible on the dashboard where a non-zero balance stands out.
- Leave it out of your reporting groups for cash; it is plumbing, not money.
A dedicated account matters because the test of a completed contra is that this account returns to exactly zero. Reusing a general suspense account buries that signal.
Recording the offset
Suppose the customer-supplier owes you 5,000 on an invoice and you owe them 3,000 on a bill, and both sides have agreed to net.
- Open the sales invoice and record a payment of 3,000, paid into Contra Clearing, dated the agreed offset date, referenced “Contra vs bill [number]”.
- Open the bill and record a payment of 3,000, paid from Contra Clearing, same date, referenced against the invoice.
- Check Contra Clearing shows zero.
- The invoice remains open for the 2,000 difference, which the counterparty pays through the bank and you match from the feed as a normal customer payment.
Where several invoices and bills net in one agreement, record one clearing payment per document; the account still zeroes if the two sides tally. No manual journal is needed, and avoiding journals here is the point: payments on the documents keep receivables, payables, and the contact history accurate, where a journal against the AR and AP control accounts would bypass the documents entirely and leave them looking unpaid.
Checks before and after
Before recording, confirm the counterparty has agreed the same documents and amounts; a contra one side records and the other does not produces mismatched statements and a dispute at the worst time. After recording, three quick verifications: the clearing account is at zero, both contact activity screens show the offset payments, and aged reports now carry only the net remainder. For intercompany contras, record the mirror entries in both Xero organisations on the same date so consolidation eliminates cleanly.
Common mistakes
- Journaling directly against the accounts receivable and payable control accounts, which settles the balances but leaves the actual invoice and bill open forever.
- Clearing account left with a residual balance because the two payment amounts differed by a rounding difference or a missed document.
- Offsetting without written agreement, then unwinding it when the counterparty pays in full anyway.
- Netting against a counterparty entering insolvency without checking that set-off rights apply.
- Using contra offsets to hide disputed amounts; a disputed bill belongs in dispute, not netted quietly against your invoice.
Software that helps
- Xero’s clearing account pattern needs no add-ons; discipline about zero balances does the work.
- ExpenseFlow keeps the payable side of contra relationships clean: the counterparty’s bills are captured, coded, approved, and posted to Xero with documents attached, so the amounts you agree to offset are grounded in verified bills rather than statement guesses.
- Group reporting tools handle recurring intercompany netting at scale, but each entity’s Xero still records its side as above.
Related guides
The documents being offset are covered in recording invoices in Xero and recording supplier bills in Xero. For when a journal genuinely is the right tool, see recording journal entries in Xero. Glossary: contra account.
From ExpenseFlow
Expense coding on autopilot
ExpenseFlow reads every receipt, assigns the right tax treatment and account code, and syncs to Xero or QuickBooks Online once you approve.