Supplier Payment Run / Ba
Propose, approve and export supplier payment runs by due date and early-payment discount
Native batch payment in Odoo only groups payments you have already created; it never tells you which supplier bills are due, which still earn an early-payment discount, or how much cash a run will consume. So accounts-payable and treasury teams assemble the weekly payment run in a spreadsheet and re-key the result into the bank. This module replaces that spreadsheet: it proposes a run from open bills by due date and budget, prioritises settlement discounts, routes large runs through approval, generates grouped supplier payments and exports a BACS-style bank file, turning the payment run into a controlled, auditable process inside Odoo.
Key Features
Automatic payment-run proposal
action_propose on gb.payment.run searches open payable account.move.line items (posted, unreconciled, in_invoice/in_refund) up to the cutoff_date and builds proposal lines. A min_amount filter ignores tiny bills and a max_budget caps how much cash the run consumes, deselecting lines that exceed it.
Early-payment discount prioritisation
_compute_settlement_discount reads the payment term's early_discount flag, discount_percentage and discount_days directly from the account.payment.term record. With prioritise_discounts on, lines still earning a discount are added first, and amount_net is the residual minus the discount actually achievable by the payment date.
Threshold-based approval workflow
gb.payment.run moves through draft, proposed, to_approve, approved, confirmed and exported states. action_submit_for_approval compares total_net against the company gb_payment_run_approval_threshold: large runs route to a second approver while smaller ones auto-approve, stamping approval_user_id and approval_date.
Grouped payment generation
action_confirm calls _create_payments to generate one outbound supplier account.payment per partner, summing the selected lines' amount_net and linking back via gb_payment_run_id. action_post_payments then posts the draft payments ready for reconciliation.
BACS-style bank file export
action_export_bank_file builds a fixed-width text file in _build_bacs_file with a VOL1 header, one record per selected line (sort code, account number, amount in pence, reference, beneficiary name) and an EOF1 trailer. The file downloads as a .txt attachment ready to upload to your banking portal. Verify the column layout with your bank or bureau before going live.
Cash distribution and due-aging checks
A Suppliers smart-button (visible after proposal) opens the selected lines grouped by partner so you can see bill count, gross, discount, net and share per supplier. An Aging Analysis tab on the form shows selected net amounts bucketed into not-due, 0-30, 31-60, 61-90 and over-90 days overdue so you can confirm a run is not silently paying bills far from their due date.
Fast line selection helpers
action_select_all, action_deselect_all and action_select_discounts_only let you re-select the lines to pay in one click, the last paying only bills still earning a discount. Each line carries a skip_reason (such as Exceeds cash budget) and a has_discount flag for clear review.
Expiring-discount cron alert
cron_warn_expiring_discounts scans posted payable bills, recomputes their settlement discount and schedules a mail todo activity on any bill whose discount deadline falls within three days. The finance team is prompted to launch a run before the saving is lost.
Use Cases
Screenshots
Payment Runs
New Payment Run
Why Choose This Module
Native batch payment in Odoo is thin: it groups payments you have already created, but never tells you which supplier bills are due, which still earn an early-payment discount, or how much cash a run will consume. So finance teams assemble the weekly payment run in a spreadsheet and re-key the result into the bank. This module replaces that spreadsheet end to end.
Specifications
- Compatible: Odoo 18.0 / 19.0
- License: OPL-1
- Languages: English
- Author: Pokutsoft
- Dependencies: account
- Support: support@pokutsoft.com
Update date: 2026-07-02