| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) |
| Community Apps Dependencies | Show |
| Lines of code | 3645 |
| Technical Name |
eh_account_batch_payment |
| License | LGPL-3 |
| Website | https://www.erpheritage.com.au/ |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) |
| Community Apps Dependencies | Show |
| Lines of code | 3645 |
| Technical Name |
eh_account_batch_payment |
| License | LGPL-3 |
| Website | https://www.erpheritage.com.au/ |
Batch Payment
Run one customer-receipt or vendor-payment batch instead of keying payments one bill at a time, with per-partner aggregation and a CSV your bank portal can read.
Why this module
Batch Payment
One bad payment cannot freeze the run
Each payment posts inside its own savepoint. A closed period or a rejected payment method fails that one payment, lands on the chatter, and the rest of the batch still posts. If all of them fail, the batch refuses to mark itself posted so it can never strand.
Plain account.payment underneath
The batch creates and posts standard Odoo payments with only a nullable batch link added. Reconciliation, the vendor ledger, partner follow-ups and reporting already understand the output. Nothing downstream needs to know a batch produced them.
Manager-gated, fully stamped
Post and cancel are restricted to the accounting manager group. The confirmed, posted and cancelled transitions each record who acted and when, and every transition is tracked on the chatter for review.
Day in the life
An AP clerk clears a Friday vendor run.
The clerk opens the build wizard, selects fourteen open vendor bills across five suppliers, and ticks aggregate per partner. The wizard creates five draft payments, one summed payment per supplier, and warns on the chatter that one bill was already partly settled by last week's batch. The manager posts. One supplier's bank journal has no payment method configured, so that single payment is caught in its savepoint and itemised on the chatter; the other four post cleanly and the batch moves to posted. The clerk exports the CSV, ordered by partner with reference, amount, currency and bank account per row, and uploads it to the bank portal. The one failed payment is fixed and posted on its own.
Edge cases
The cases most modules quietly ignore.
In the shipped code today, each one a place where a cheaper module silently does the wrong thing.
If every draft payment in the batch fails to post, the batch is deliberately not moved to posted. A posted batch with zero movements could be neither cancelled nor reset and would be stranded forever, so it stays put and the failure is logged to the chatter.
A posted batch that holds no actually-posted payments can be reset to draft for a retry, while a normal confirmed batch still cannot. The recovery path exists only for the genuinely stuck case.
When some payments post and some fail, the batch still posts and the failed ones are itemised on the chatter for manual follow-up rather than silently dropped.
Changing the journal on a draft batch auto-drops member payments whose journal no longer matches, with a visible warning, so a mismatched journal never leaves invisible orphan payments behind.
The build wizard refuses to batch source documents that come from more than one company.
The wizard walks the source line reconciliations to detect documents already partly settled by an earlier batch and warns on the batch chatter before posting, without blocking the user.
A posted batch cannot be cancelled. The module directs you to reverse the underlying payments instead, preserving the posting audit trail.
What is inside
Built to do the job, end to end.
- Build wizard with per-partner aggregation. Select open invoices or vendor bills and create one draft payment per source, or aggregate into one summed draft payment per partner. The wizard filters to posted documents that are not_paid or partial across customer and vendor invoices and refunds.
- Batch posting with savepoint isolation. Posts every draft member payment in one pass. Each payment runs inside its own savepoint, so failures are isolated, with all-fail, partial-fail and stranded-batch recovery handled explicitly.
- CSV export for bank-portal upload. One row per payment with reference, partner, bank account, amount, currency, payment date and memo, ordered by partner, written as a downloadable attachment. The row builder can be subclassed for a different bank layout.
- Manager guard and transition audit. Post and cancel require the accounting manager group. Confirmed, posted and cancelled transitions stamp user and timestamp, and key fields are tracked on the chatter.
- Standard account.payment output. Each batch produces ordinary Odoo payments with only a nullable batch link added, so reconciliation, vendor ledger and reporting read them with no special handling. Batch journal scope drives the company; multi-company aware.
Honest about the edges
What this does not do, so nothing surprises you.
- This module does not auto-reconcile the source invoices. It creates and posts one standard payment per partner or invoice and emits the CSV. The source documents stay open; match the posted payments to their invoices in your normal reconciliation flow.
- There is no payment ordering by invoice due date. The CSV rows are ordered by partner; due-date ordering is not implemented.
- The module generates no NACHA, ACH or ISO 20022 PAIN file itself. It exposes the journal payment method (SEPA CT, ACH or manual) on the batch; PAIN file generation belongs to the separate SEPA Credit Transfer and Direct Debit modules.
- The append-only, write-locked audit log is provided by the suite base engine, not by this module. This module stamps transition user and timestamp on the batch and writes chatter entries.
- There is no integration with the collections case timeline. Batches do not feed promise-to-pay or case records.
Odoo 19 batch payment, Odoo Community vendor payment run, batch vendor payments Odoo, group customer receipts Odoo, per-partner payment aggregation, AP payment run Odoo Community, batch payment CSV export bank portal, manager approval payment posting Odoo, bulk account.payment Odoo, payment batch audit trail Odoo
Please log in to comment on this module