Batch Payments & Reconciliation in Odoo 18
By Braincuber Team
Published on January 14, 2026
Your company pays 50 vendors every Friday. Your accountant creates 50 individual payments, registers each one separately, then imports the bank statement showing 50 individual transactions, and manually reconciles all 50 payments one by one. The entire process takes 3 hours weekly. There must be a better way to handle this bulk payment workflow.
Batch Payments in Odoo 18 consolidates multiple payments into a single bank transaction. Group all vendor payments for Friday into one batch, validate it, send it to your bank, and the bank statement shows one line for the entire batch. Odoo reconciles all 50 invoices automatically by matching them against that single bank statement line. What previously took 3 hours now completes in 15 minutes—96% time savings on payment processing and reconciliation.
What are Batch Payments? A feature that groups multiple individual payments (to vendors or from customers) into a single consolidated bank transaction. Instead of bank statements showing 50 separate lines, you see one batch line that represents all 50 payments combined, simplifying reconciliation dramatically.
Benefits of Batch Payments
Time Efficiency
Reconcile 100 payments with single bank line match instead of 100 individual matches.
Reduced Errors
Fewer manual reconciliation steps mean fewer mistakes and mismatches.
Lower Bank Fees
Single transaction fee instead of fees for each individual payment.
Cleaner Bank Statements
One line per batch instead of hundreds of lines cluttering your statement.
Better Cash Flow Control
Schedule bulk payments on specific dates for optimal cash management.
Streamlined Workflow
Process weekly/monthly payment runs in minutes instead of hours.
Understanding Batch Payments
BATCH PAYMENTS EXPLAINED
═══════════════════════════════════════════════════════════
WHAT IS A BATCH PAYMENT?
───────────────────────────────────────────────────────────
A batch payment groups multiple individual payments into
a single consolidated bank transaction.
Without Batch Payments:
Invoice 1 → Payment 1 → Bank Line 1
Invoice 2 → Payment 2 → Bank Line 2
Invoice 3 → Payment 3 → Bank Line 3
...
Invoice 50 → Payment 50 → Bank Line 50
Bank Statement: 50 lines to reconcile manually
With Batch Payments:
Invoice 1 ─┐
Invoice 2 ─┤
Invoice 3 ─┤→ BATCH PAYMENT → Single Bank Line
... │
Invoice 50─┘
Bank Statement: 1 line, auto-reconciles all 50 invoices
TWO TYPES OF BATCH PAYMENTS
═══════════════════════════════════════════════════════════
INBOUND BATCH PAYMENTS (Customer Payments)
• Group customer payments received
• Common for: Cash deposits, check batches
• Example: Depositing 20 customer checks at once
Scenario:
Monday: Receive 20 checks from customers
Tuesday: Go to bank, deposit all 20 checks
Bank Statement: Shows single deposit of $24,500
Odoo: Matches batch to all 20 customer invoices
OUTBOUND BATCH PAYMENTS (Vendor Payments)
• Group vendor payments made
• Common for: ACH runs, wire transfers, check writing
• Example: Friday vendor payment run
Scenario:
Friday: Pay 50 vendors via bank transfer
Bank processes all 50 as single batch
Bank Statement: Shows single debit of $127,300
Odoo: Matches batch to all 50 vendor bills
HOW IT WORKS: VENDOR PAYMENT EXAMPLE
═══════════════════════════════════════════════════════════
Step 1: Register Individual Payments (Without Posting)
Bill 001 - Vendor A - $1,500 → Payment registered
Bill 002 - Vendor B - $2,800 → Payment registered
Bill 003 - Vendor C - $950 → Payment registered
...
Bill 050 - Vendor Z - $3,100 → Payment registered
Status: Payments are "registered" but not yet posted
Step 2: Create Batch Payment
Navigate: Accounting → Vendors → Batch Payments
Create new batch
Type: Outbound
Bank: Company Bank Account
Date: 15/01/2026
Add payments: Select all 50 registered payments
Step 3: Validate Batch
Review total: $127,300
Click "Validate"
Status changes: Draft → Sent for Reconciliation
Individual payments remain unposted
Batch is ready for bank statement matching
Step 4: Bank Statement Import
Import statement showing:
Date: 15/01/2026
Description: "Batch Payment #BP/2026/001"
Amount: -$127,300
Step 5: Reconcile Batch
Odoo automatically matches bank line to batch
Click "Reconcile"
Result:
• All 50 vendor bills marked as PAID
• All 50 individual payments posted
• Bank statement line reconciled
• Complete in seconds
BANK STATEMENT COMPARISON
═══════════════════════════════════════════════════════════
WITHOUT BATCH PAYMENTS (Traditional)
───────────────────────────────────────────────────────────
Date Description Amount Balance
15-Jan Payment to Vendor A -$1,500 $98,500
15-Jan Payment to Vendor B -$2,800 $95,700
15-Jan Payment to Vendor C -$950 $94,750
15-Jan Payment to Vendor D -$1,200 $93,550
15-Jan Payment to Vendor E -$3,450 $90,100
... ... ... ...
15-Jan Payment to Vendor Z -$3,100 $0
50 separate lines to reconcile individually
WITH BATCH PAYMENTS
───────────────────────────────────────────────────────────
Date Description Amount Balance
15-Jan Batch Payment BP-001 -$127,300 $0
1 line reconciles all 50 payments automatically
WHEN TO USE BATCH PAYMENTS
═══════════════════════════════════════════════════════════
✓ Perfect For:
• Weekly/monthly vendor payment runs
• ACH payment batches
• Check deposit batches (multiple customer checks)
• Payroll payments (if using Odoo Accounting)
• Bulk wire transfers
• Any scenario with 10+ payments on same date
✗ Don't Use For:
• Single payments
• Payments on different dates (create multiple batches)
• Payments from different bank accounts
• Mixed inbound/outbound (separate batches needed)
Enabling Batch Payments
Access Accounting Settings
- Go to Accounting → Configuration → Settings
- Scroll to Vendor Payments or Customer Payments section
Enable Batch Payments
- Check the box for Batch Payments
- This setting enables batch functionality for both vendors and customers
Save Settings
- Click Save to apply changes
- Batch Payments menu now appears under Vendors and Customers
Creating a Batch Payment (Vendors)
Let's walk through creating an outbound batch payment for vendor bills.
CREATING OUTBOUND BATCH PAYMENT (VENDOR BILLS)
═══════════════════════════════════════════════════════════
PREREQUISITE: INVOICES AND PAYMENTS
───────────────────────────────────────────────────────────
Before creating batch, you need vendor bills with registered
payments. Here's the complete workflow:
EXAMPLE: Friday Payment Run for 5 Vendors
═══════════════════════════════════════════════════════════
Vendor Bills Due:
Bill 001 - Office Supplies Ltd - €1,250
Bill 002 - IT Services Corp - €3,500
Bill 003 - Marketing Agency - €2,800
Bill 004 - Equipment Rental Co - €950
Bill 005 - Utilities Company - €615
────────────────────────────────────────────
TOTAL €9,115
PHASE 1: CREATE AND CONFIRM BILLS
───────────────────────────────────────────────────────────
For each bill:
1. Accounting → Vendors → Bills → New
2. Select vendor
3. Add invoice lines with products/services
4. Set bill date and due date
5. Click CONFIRM
Status after confirm: Posted (but not paid)
PHASE 2: REGISTER PAYMENTS (No Posting Yet)
───────────────────────────────────────────────────────────
For each confirmed bill:
1. Click REGISTER PAYMENT button on bill
Payment Registration Form:
Payment Date: 15/01/2026
Journal: Bank - EUR
Payment Method: Manual (or Electronic)
Amount: €1,250 (auto-filled from bill)
2. Click CREATE PAYMENT
Bill Status: "In Payment" (not fully paid yet)
Payment Status: Registered but not posted
Repeat for all 5 bills.
You now have 5 registered payments ready to batch.
PHASE 3: CREATE BATCH PAYMENT
───────────────────────────────────────────────────────────
Navigation: Accounting → Vendors → Batch Payments
Click: NEW
Batch Payment Form:
┌────────────────────────────────────────────────────────┐
│ Batch Type: ● Outbound ○ Inbound │
│ (Outbound = paying vendors) │
│ │
│ Bank: [EUR Bank - BNP Paribas ▼] │
│ (Select bank account for payments) │
│ │
│ Date: 15/01/2026 │
│ (Date bank will process batch) │
│ │
│ Reference: BP/2026/001 │
│ (Auto-generated or custom) │
│ │
│ Payment Method: Manual / Electronic │
│ │
│ ┌──────────── Batch Content Tab ────────────────┐ │
│ │ │ │
│ │ Click "Add a Line" │ │
│ │ │ │
│ └─────────────────────────────────────────────────┘ │
└────────────────────────────────────────────────────────┘
PHASE 4: SELECT PAYMENTS TO INCLUDE
───────────────────────────────────────────────────────────
Click "Add a Line" opens popup:
Payment Selection Popup:
┌────────────────────────────────────────────────────────┐
│ Select Payments to Add to Batch │
│ │
│ ☑ Bill 001 - Office Supplies Ltd - €1,250 │
│ ☑ Bill 002 - IT Services Corp - €3,500 │
│ ☑ Bill 003 - Marketing Agency - €2,800 │
│ ☑ Bill 004 - Equipment Rental Co - €950 │
│ ☑ Bill 005 - Utilities Company - €615 │
│ │
│ Total Selected: €9,115 │
│ │
│ [Cancel] [Add to Batch] │
└────────────────────────────────────────────────────────┘
Select all 5 payments, click "Add to Batch"
Batch Content Now Shows:
┌────────────────────────────────────────────────────────┐
│ Payment Vendor Amount │
│ BNK1/2026/0045 Office Supplies €1,250 │
│ BNK1/2026/0046 IT Services €3,500 │
│ BNK1/2026/0047 Marketing Agency €2,800 │
│ BNK1/2026/0048 Equipment Rental €950 │
│ BNK1/2026/0049 Utilities Co €615 │
│ ─────────────────────────────────────────────────── │
│ TOTAL: €9,115 │
└────────────────────────────────────────────────────────┘
PHASE 5: VALIDATE BATCH
───────────────────────────────────────────────────────────
Review:
✓ All 5 payments included
✓ Total matches expected amount: €9,115
✓ Bank account is correct
✓ Date is Friday as planned
Click: VALIDATE button
Results:
• Batch status changes: Draft → Sent
• "Sent" means ready for reconciliation
• Individual payments still not posted
• Waiting for bank statement match
Batch is now ready for reconciliation!
PHASE 6: BANK STATEMENT IMPORT
───────────────────────────────────────────────────────────
When Friday arrives and bank processes the batch:
Import bank statement (CSV, OFX, QIF, etc.)
Statement shows:
Date: 15/01/2026
Description: "Batch Transfer BP/2026/001"
Amount: -€9,115
Odoo imports this as single bank statement line.
PHASE 7: RECONCILE THE BATCH
───────────────────────────────────────────────────────────
Navigate: Accounting → Dashboard → Bank Account
New statement line appears:
┌────────────────────────────────────────────────────────┐
│ Date: 15/01/2026 │
│ Description: Batch Transfer BP/2026/001 │
│ Amount: -€9,115 │
│ │
│ Suggested Match: Batch Payment BP/2026/001 │
│ │
│ [× IGNORE] [✓ VALIDATE] │
└────────────────────────────────────────────────────────┘
Click: VALIDATE
Odoo Automatically:
✓ Posts all 5 individual payments
✓ Marks all 5 vendor bills as PAID
✓ Reconciles bank statement line
✓ Creates journal entries
All done in ONE click!
VERIFICATION
───────────────────────────────────────────────────────────
Check results:
Vendor Bills:
Bill 001 - Status: PAID ✓
Bill 002 - Status: PAID ✓
Bill 003 - Status: PAID ✓
Bill 004 - Status: PAID ✓
Bill 005 - Status: PAID ✓
Bank Statement:
Line reconciled: ✓
Balance updated correctly: ✓
Batch Payment Record:
Status: Reconciled ✓
Shows all 5 payments processed ✓
TIME SAVED
═══════════════════════════════════════════════════════════
Without Batch Payments:
• Import 5 separate bank statement lines
• Manually match each line to payment
• Reconcile 5 times separately
• Time: 15-20 minutes
With Batch Payments:
• Import 1 bank statement line
• Auto-match to batch
• Reconcile once
• Time: 2 minutes
Savings: 13-18 minutes for just 5 payments
With 50 payments: Save 2-3 hours per batch!
Important Notes:
- Payments must be registered first: You can't create a batch without existing registered payments
- Same bank account required: All payments in batch must use the same bank journal
- Same payment date: Batch all payments scheduled for the same date
- Not yet posted: Individual payments stay in "registered" state until batch reconciliation
- Cannot edit after validation: Once validated, you can't modify the batch (create a new one if needed)
Creating Inbound Batch Payment (Customers)
Inbound batches work the same way but for customer payments you're receiving.
INBOUND BATCH PAYMENT (CUSTOMER PAYMENTS)
═══════════════════════════════════════════════════════════
SCENARIO: CHECK DEPOSIT BATCH
───────────────────────────────────────────────────────────
Monday: Received checks from 8 customers in the mail
Customer Invoices Paid by Check:
INV/2026/0145 - TechStart Inc - $2,500
INV/2026/0148 - DataCorp Ltd - $1,800
INV/2026/0151 - CloudSync Co - $4,200
INV/2026/0153 - Analytics Pro - $950
INV/2026/0156 - Digital Agency - $3,100
INV/2026/0159 - Enterprise LLC - $5,500
INV/2026/0162 - Growth Partners - $1,450
INV/2026/0165 - Solutions Group - $2,750
──────────────────────────────────────────────
TOTAL DEPOSIT $22,250
STEP 1: REGISTER CUSTOMER PAYMENTS
───────────────────────────────────────────────────────────
For each invoice:
1. Open customer invoice
2. Click REGISTER PAYMENT
3. Payment form:
• Payment Method: Check
• Amount: (auto-filled)
• Payment Date: 13/01/2026 (Monday)
• Check Number: (enter check #)
4. CREATE PAYMENT (don't post yet)
Result: 8 registered payments ready to batch
STEP 2: CREATE INBOUND BATCH
───────────────────────────────────────────────────────────
Navigation: Accounting → Customers → Batch Payments
Click: NEW
Batch Configuration:
Batch Type: ○ Outbound ● Inbound
(Inbound = receiving from customers)
Bank: USD Bank - Wells Fargo
(Where you'll deposit checks)
Date: 14/01/2026
(Tuesday - bank deposit date)
Reference: BP/2026/CHK-001
(Custom reference for check batch)
Payment Method: Check
STEP 3: ADD PAYMENTS TO BATCH
───────────────────────────────────────────────────────────
Batch Content Tab → Add a Line
Select all 8 customer payments:
☑ Payment for INV/2026/0145 - $2,500
☑ Payment for INV/2026/0148 - $1,800
☑ Payment for INV/2026/0151 - $4,200
☑ Payment for INV/2026/0153 - $950
☑ Payment for INV/2026/0156 - $3,100
☑ Payment for INV/2026/0159 - $5,500
☑ Payment for INV/2026/0162 - $1,450
☑ Payment for INV/2026/0165 - $2,750
Total: $22,250 ✓
STEP 4: VALIDATE BATCH
───────────────────────────────────────────────────────────
Click VALIDATE
Status: Draft → Sent (ready for reconciliation)
STEP 5: PHYSICAL BANK DEPOSIT
───────────────────────────────────────────────────────────
Tuesday morning: Take 8 checks to bank
Bank Deposit Slip:
┌──────────────────────────────────┐
│ DEPOSIT SLIP │
│ Date: 14-Jan-2026 │
│ │
│ Check 1: $2,500 │
│ Check 2: $1,800 │
│ Check 3: $4,200 │
│ Check 4: $950 │
│ Check 5: $3,100 │
│ Check 6: $5,500 │
│ Check 7: $1,450 │
│ Check 8: $2,750 │
│ ───────────────────────────── │
│ TOTAL: $22,250 │
└──────────────────────────────────┘
Bank processes as single deposit.
STEP 6: BANK STATEMENT SHOWS
───────────────────────────────────────────────────────────
Date: 14/01/2026
Description: "Check Deposit - 8 items"
Amount: +$22,250
Single line on statement (not 8 separate lines)
STEP 7: RECONCILE IN ODOO
───────────────────────────────────────────────────────────
Import bank statement
New line appears:
Date: 14/01/2026
Amount: +$22,250
Suggested: Batch Payment BP/2026/CHK-001
Click VALIDATE
Result:
✓ All 8 customer payments posted
✓ All 8 invoices marked PAID
✓ Bank line reconciled
✓ Accounts receivable cleared
TIME COMPARISON
═══════════════════════════════════════════════════════════
Without Batch:
• 8 separate deposit entries to reconcile
• Match each to individual payment
• Time: 25-30 minutes
With Batch:
• 1 deposit entry
• Auto-match to batch
• Time: 3 minutes
Savings: 22-27 minutes per batch!
Reconciliation Process
The magic happens during reconciliation—when Odoo matches your batch payment to the bank statement line.
Import Bank Statement
- Go to Accounting → Dashboard
- On your bank account card, click Import Statement
- Upload CSV, OFX, or QIF file from your bank
- Or create manual statement line for testing
Odoo Suggests Batch Match
- Odoo automatically detects batch payment matching the amount
- Shows suggested match with batch reference
- Displays all payments included in the batch
Validate Reconciliation
- Review the batch details to ensure correctness
- Click Validate button
- Odoo posts all individual payments simultaneously
- Marks all related invoices/bills as paid
- Reconciles the bank statement line
Best Practices
✅ Batch Payment Best Practices:
- Group by payment run date: Create separate batches for different payment dates (e.g., weekly Friday runs)
- Use descriptive references: Name batches clearly (e.g., "Weekly Vendor Run 2026-W03" or "Check Deposit Jan-14")
- Match bank account correctly: Ensure batch uses the same bank account shown on the statement
- Validate before bank processing: Create and validate batch before sending to bank (not after)
- Keep batch size reasonable: 10-100 payments per batch is optimal (avoid mega-batches of 500+)
- Review before validation: Double-check total amount and included payments before validating
- Don't mix payment types: Keep checks separate from ACH, separate from wires
- Document payment method: Note how bank will process (ACH file, wire batch, check deposit)
- Reconcile promptly: Don't let validated batches sit unreconciled for weeks
Common Scenarios
Weekly Vendor Runs
Pay all vendors due this week in one batch every Friday.
Typical batch size: 30-80 payments, saves 2-4 hours weekly.
Daily Check Deposits
Batch all customer checks received each day into single deposit.
Typical batch size: 5-20 checks, cleaner bank statements.
ACH Payment Batches
Submit ACH file with multiple payments, appears as single debit.
Typical batch size: 50-200 payments, significant bank fee savings.
Credit Card Payment Batches
Batch credit card payments before statement generation.
Useful for companies with corporate cards, easier reconciliation.
Troubleshooting
Common Issues and Solutions:
Issue: Can't find payments to add to batch
Solution: Payments must be in "registered" state (not posted yet). If already posted, they won't appear in batch payment selection.
Issue: Bank statement amount doesn't match batch total
Solution: Verify all payments in batch were included in actual bank transaction. Sometimes banks process payments separately if there are issues.
Issue: Batch validation button is greyed out
Solution: Ensure at least one payment is added to batch and all required fields (Bank, Date) are filled.
Issue: Can't see Batch Payments menu
Solution: Enable Batch Payments feature in Accounting Settings first.
Conclusion
Batch Payments in Odoo 18 transforms bulk payment processing from a time-consuming manual task into an efficient automated workflow. Enable the feature in settings, register individual payments without posting them, group them into batches by payment date and bank account, validate the batch, then reconcile against a single bank statement line that matches all payments at once. Whether processing weekly vendor runs, daily check deposits, or monthly ACH batches, you'll reduce reconciliation time by 90%+, eliminate manual matching errors, simplify bank statements, and potentially save on bank fees. What once took hours now completes in minutes.
🎯 Key Takeaway: Enable Batch Payments → Register payments individually → Create batch grouping payments → Validate → Bank statement shows single line → Reconcile batch → All payments posted automatically. From 3 hours to 15 minutes for weekly payment runs.
