Payment Reconciliation
Payment Reconciliation
The Payment Reconciliation feature in Bench allows users to track and manage how incoming or outgoing payments are allocated to various outstanding documents (e.g., invoices, bills). This module helps you see how much of a payment is applied, how much remains unallocated, and provides a complete breakdown for reporting and audit purposes.
🧾 Purpose
Payment reconciliation ensures that partial and full payments are correctly matched to vouchers such as: - Sales Invoices - Expense Entries - Supplier Invoices - Credit Notes
This is especially helpful when: - Payments do not exactly match a document total. - A single payment settles multiple documents. - There are currency differences (multi-currency support is built-in).
📋 Key Components
🔹 Payment Reconciliation (Parent Record)
This is the central record that ties everything together.
Field | Description |
---|---|
Payment | A reference to the original payment transaction. |
Customer | The customer linked to the payment (for receivables). |
Supplier | The supplier linked to the payment (for payables). |
Currency | The currency of the payment. |
Payment Type | Specifies whether itΓÇÖs a customer or supplier payment. |
Allocated Amount | Portion of the payment that has been applied to documents. |
Unallocated Amount | The remaining amount not yet applied to any document. |
🔹 Payment Reconciliation Items (Child Records)
Each item represents one voucher (e.g., invoice or bill) the payment is applied to.
Field | Description |
---|---|
Payment For | The document type being paid (e.g., invoicing.salesinvoice ). |
Voucher ID | The specific record ID of the document being paid. |
Due | Total due amount on the voucher in its currency. |
Allocated Amount | How much of the payment has been applied to this document. |
Unallocated Amount | Amount remaining unpaid on the voucher after this payment. |
Exchange Rate | Rate between the document's currency and the company base currency. |
Base Due / Allocated / Unallocated | Base currency equivalents for reporting purposes. |
Hidden fields such as base_due
, base_allocated_amount
, and exchange_rate
ensure financial consistency across multi-currency operations.
🔄 Allocation Logic
The system will automatically calculate how much of the payment to allocate to each document using the allocate()
method in the background. This:
- Fetches the total due from the document.
- Applies the payment partially or fully based on availability.
- Updates base currency equivalents using current exchange rates.
- Recalculates any remaining unallocated balance.
🔎 Example Use Case
Let's say you receive a $1,000 payment from a customer. The system allows you to:
- Select which invoices this payment applies to.
- Allocate $600 to Invoice A and $400 to Invoice B.
- Track remaining balances on each invoice and the payment itself.
- View base currency values for accurate accounting and reporting.
🛠️ Tips
- Only active currencies can be selected for reconciliation.
- If the exchange rate isn't specified, it defaults to 1.
- The reconciliation form is available from within each payment record or as a standalone tool under Accounting > Payment Reconciliations.
- Use this feature to avoid overpayments and misallocated receipts or disbursements.