Record a customer payment
Personas: Billing clerk / Accountant (records the payment off the bank statement) · Modules: Customer Payments, Sales Invoices Enter the money a customer sent you, bank-statement style — and let it settle itself against that customer's open invoices, oldest first.
Before you start: the customer exists in Customers; the invoices being paid are ISSUED, SENT or PARTIAL (only those receive allocations).
1. Record — Billing clerk / Accountant
- Open Sales → Customer Payments and click + New top-right.
- Fill the statement line: Name (required — a short label, e.g. "Payment for SI-0000001"), Number (the bank's transaction reference), Date (required, the booking date) and Valor (the value date), Amount (required), Counterparty IBAN and Counterparty name, plus a free-text Description.
- Check the three pickers, all required and all pre-filled: Customer, Company (the legal entity that received the money — your base company) and Method (Bank transfer; it decides whether the receipt lands in a cash or a bank account).
- Currency fills in from the receiving company's base currency (a new tenant ships EUR); a currency you pick yourself is respected. Leave it matching the invoice you expect it to settle — allocation is exact-currency only, so a payment in the wrong currency simply sits there as unallocated credit.
- Save. A payment is a single record — no lines, no workflow.
2. Watch the settlement — automatic
- The moment the payment is saved, its amount spreads itself across the customer's open invoices — same customer, same currency — oldest first (by invoice date).
- Each touched invoice gains an allocation row on its payment-allocations tab; its Paid goes up and Balance (= Total − Paid) goes down accordingly.
- The invoice status flips on its own: PARTIAL while 0 < paid < total, PAID the moment paid equals total.
- Anything left over stays with the payment as unallocated credit — nothing is forced onto a closed or draft invoice.
What happened behind the scenes
- Only invoices in ISSUED, SENT or PARTIAL receive allocations; DRAFT, CANCELLED, VOIDED and PAID invoices are skipped.
- The same settlement runs from the other side: when a new invoice is issued for this customer, any unallocated payment credit is pulled onto it automatically — an overpayment today quietly pays the next invoice.
- Paid/Balance on each invoice are read-only roll-ups over its allocation rows — you never edit them.
Variations and refusals
Manual allocation — settlement is automatic, but you can also do it by hand. On the invoice, the Sales Invoice Customer Payments panel has an Add button: the customer picker is pre-narrowed to the invoice's customer, the payment picker lists only that customer's payments (booking date and transaction number shown), and the amount defaults to the payment's full amount, reducible for a partial allocation. Existing rows can be edited or removed from the same panel, and Paid / Balance / the status recompute either way.
This works while the invoice is issued — ISSUED, SENT, PARTIAL — which is the whole point: settlement is not part of the frozen document. The invoice's own line items stay locked from issue onward (that is the audit trail); only the money recorded against it keeps moving. If the invoice itself is wrong, that is still a credit or debit note, not an allocation edit.
A payment in a different currency than the invoice never auto-allocates — currency must match.
A payment with no open invoices simply sits as credit until the customer's next invoice is issued.