Note on where this lives: Payment reconciliation is the engine behind matching receipts to invoices. It is exposed through the API (/api/accounting/payment-reconciliation) and is driven from the payment-allocation flows on the Payments page rather than as a separate top-level menu item. The behaviour below is what happens when you auto-match or apply matches.
📷 Screenshot: The reconciliation view showing unreconciled payments on the left and outstanding invoices on the right — to be added.
What it works on
Payment reconciliation is receipt-and-invoice only — it matches money you’ve received (Money In) against sales invoices. Vendor payments and bills are handled through ordinary allocation on the Payments page. Two lists drive it:Unreconciled payments
Posted receipts that still have an unallocated balance greater than zero — i.e. money you received but haven’t yet tied to specific invoices. Each row shows:- Payment number and date
- The customer (contact)
- The total amount and the unallocated amount still available to match
- The payment reference
Outstanding invoices
Sales invoices that still have a balance due greater than zero and are in a payable state — Sent, Partially Paid, or Overdue. Each row shows the invoice number, customer, issue date, due date, total, and the balance still owed. The list is ordered by due date (oldest first).Auto-matching
The Auto-match action proposes matches without changing anything yet. It walks each unreconciled payment and applies its available balance to that same customer’s outstanding invoices, oldest due-date first (FIFO), until either the payment’s balance runs out or the invoices are covered. For each proposed pairing it computes the amount to apply as the smaller of: the payment’s remaining balance, or the invoice’s remaining outstanding. The result is a set of proposed matches plus a count and a total — purely a suggestion you can review. Important: auto-match only ever pairs a payment with invoices belonging to the same customer. It never moves one customer’s money onto another customer’s invoice.📷 Screenshot: Auto-match results listing proposed payment → invoice pairings with amounts — to be added.
Applying matches (Reconcile)
The Reconcile action takes a set of matches — either the auto-match suggestions or ones you picked by hand — and applies them. Under the hood, each payment’s new matches are merged with its existing allocations (a match to an invoice the payment already partly covers adds to that allocation rather than duplicating it), and the payment is then re-allocated through the standard payment allocation path. Because it routes through normal allocation, all the usual guardrails apply:- The payment’s allocations + deductions still can’t exceed the payment amount.
- No invoice can be allocated more than its outstanding balance.
- For an already-posted receipt, applying matches posts a balancing payment-reconciliation journal entry so the General Ledger stays in step, and updates each invoice’s paid amount, balance due, and status (Partially Paid / Paid).
Behind the scenes
Applying a match doesn’t create new money movement — the cash already landed when the receipt was posted. What it does is move the receipt’s unallocated balance onto specific invoices:- Each matched invoice’s balance due goes down and its amount paid goes up; its status is recalculated.
- For a posted receipt, a reconciliation journal entry keeps the Accounts Receivable sub-ledger and the GL aligned with the new allocation split.
Tips
- Run Auto-match first to get a clean FIFO proposal, then adjust individual amounts before you Reconcile if a customer wants a payment applied to a specific invoice out of order.
- If a receipt still shows an unallocated balance after reconciliation, that money is genuinely “on account” — you can leave it for a future invoice or convert it into a customer deposit / advance from the Payments page.
Related
- Payments & Receipts — record receipts and allocate them one at a time; convert leftover balances into advances.
- Bank reconciliation — a different reconciliation: matching the bank statement to the ledger.
- Debts (money lent / other receivables) — non-sale receivables, also cleared through receipts.