Payment Batches
Organize, approve, and transmit vendor payments in batches with full audit trails and bank reconciliation
Overview#
Payment batches organize multiple vendor payments into a single transmission to the bank. They provide separation of duties between submitters and approvers, batch efficiency for bank file generation, a full audit trail from draft to completion, and automatic matching of transmitted payments to bank statement lines.
Key Principle: GL at Confirmation, Not Transmission#
GL entries for payments are created when payments are confirmed from bank statements, not when they are transmitted. The bank statement is the source of truth for actual cash movement. This ensures your books reflect reality, not intent.
Payment Batch Lifecycle#
Every payment batch progresses through a clear status flow:
DRAFT → PENDING APPROVAL → APPROVED → TRANSMITTED → COMPLETED
| Status | Description |
|---|---|
| Draft | Batch is editable. Lines can be added, removed, or modified. |
| Pending Approval | Submitted for review. Approver can edit amounts and exclude lines. |
| Approved | Ready for bank transmission. |
| Transmitted | Sent to bank. Awaiting confirmation. |
| Completed | All payments confirmed from bank statements. |
| Partially Completed | Some lines confirmed, others failed or returned. |
| Cancelled | Permanently terminated (requires a reason). |
Additional transitions:
- Rejected batches return to Draft for re-editing and resubmission.
- Cancelled batches require a cancellation reason and cannot be reactivated.
Line Statuses#
Individual payment lines within a batch have their own lifecycle:
| Status | Description |
|---|---|
| Pending | Line awaiting approval |
| Incomplete | Vendor missing bank account configuration |
| Excluded | Approver removed this line (stays in batch for audit) |
| Approved | Ready for transmission |
| Transmitted | Sent to bank |
| Completed | Payment confirmed from bank statement |
| Failed | Payment failed at the bank |
| Returned | ACH return received |
Creating Payment Batches#
Manual Creation#
You can create a payment batch by telling the AI assistant what you need:
"Create a payment batch for entity 4, EUR payments via SEPA from bank account 1"
The system will:
- Create a draft batch with an auto-generated batch number (e.g., PAY-000001)
- Allow you to add individual payment lines for each vendor
- Optionally link each line to a source AP invoice for traceability
Each payment line includes:
- Vendor and their bank account (auto-selected if a default is configured)
- Payment amount
- Source invoice reference (optional, for linking to AP invoices)
- Payment memo (included in the bank file narrative)
Automated Payment Proposals#
The payment proposal agent automates batch creation by scanning open AP invoices:
- Scans open invoices -- Finds all posted, partial, or approved AP invoices with outstanding balances
- Groups by payment criteria -- Groups invoices by payment method, currency, and source bank account
- Creates one batch per group -- Each group becomes a separate payment batch
- One line per invoice -- Each invoice becomes its own batch line, allowing individual exclusion during approval
- Auto-submits for approval -- Batches appear in the approval queue
Configuration options:
- Horizon days (default: 30) -- Include invoices due within this window
- Include past due (default: yes) -- Also include overdue invoices
- Max batch lines (default: 200) -- Maximum lines per batch
The agent reports on vendors missing bank details or where no source bank account could be resolved, so you can fix configuration before the next run.
Source Bank Resolution#
For each vendor, the system determines which bank account to pay from:
- Vendor-level preference -- If a preferred source bank is configured for the vendor (per entity), it uses that account
- Entity-level fallback -- Falls back to an entity bank account that supports the vendor's payment method
Approval Workflow#
Separation of Duties#
The system enforces that the person who submits a batch cannot approve it. This is a fundamental financial control:
- AP Clerk creates the batch, adds lines, and submits
- AP Manager reviews, edits amounts, excludes lines, and approves or rejects
- Any authorized user transmits the approved batch to the bank
Approval Panel Features#
The approval interface provides a rich review experience:
Inline Amount Editing Approvers can click any payment amount to edit it directly. Changes are saved immediately and the batch total updates automatically.
Line Exclusion Approvers can uncheck lines to exclude them from the batch. Excluded lines remain in the batch for audit purposes but are not transmitted. Incomplete lines (vendors missing bank configuration) are shown with an informational banner.
Context Columns The approval table shows description, due date (with overdue indicators), and invoice reference to help reviewers make informed decisions.
A summary footer shows: "Approving 5 of 7 payments -- excluding 2 lines"
Rejection#
If a batch is rejected, it returns to Draft status. The submitter can edit lines and resubmit. The rejection reason is recorded in the audit trail.
Bank Transmission#
Transmission Methods#
| Method | Description | Use Case |
|---|---|---|
| Connector (API) | Direct API call to banking provider | Wise, Stripe -- fully automated |
| SEPA XML | Generate pain.001 file for bank portal | EU bank transfers |
| ACH (NACHA) | Generate NACHA file for bank portal | US domestic payments |
| Wire (ISO 20022) | International wire transfer file | International payments |
| Manual | Mark as transmitted after manual processing | Checks, edge cases |
Manual Transmission Flow#
When no bank connector is configured:
- Ask the AI assistant to generate a payment file (SEPA, NACHA, or CSV)
- Download and upload the file to your bank portal
- Confirm to the AI assistant that the file has been uploaded
- The system marks the batch as transmitted
Generating a file does not automatically mark the batch as transmitted -- you must confirm the upload to prevent the "generated but not uploaded" problem.
Cancellation#
Only Draft, Pending Approval, or Approved batches can be cancelled. Transmitted batches must wait for bank confirmation. A cancellation reason is always required.
Payment Confirmation#
Payment confirmation matches transmitted batch lines to actual bank statement lines. This is when GL entries (AP_PAYMENT transactions) are created.
Single Line Confirmation#
When a specific bank statement line matches a batch line, the system:
- Creates an AP_PAYMENT transaction
- Links the statement line to the GL transaction and the batch line
- Updates the batch line status to Completed
- Checks if all batch lines are now complete
Auto-Confirm Entire Batch#
The system can automatically match all unmatched debit lines from a bank statement to transmitted batch lines using a 4-priority matching algorithm:
- External reference match -- Statement line reference matches batch line reference exactly
- Exact amount + vendor -- Amount matches and vendor name appears in the description
- Exact amount only -- Amount matches (no vendor match required)
- Tolerance + vendor -- Amount within 1% tolerance and vendor name in description
Batch Completion#
| Condition | Resulting Batch Status |
|---|---|
| All lines completed, none failed | Completed |
| Some completed, some failed | Partially Completed |
| All failed | Failed |
| Some still in progress | Stays Transmitted |
Excluded and incomplete lines do not block batch completion.
GL Integration#
| Event | GL Entry |
|---|---|
| AP Invoice posted | DR Expense, CR Accounts Payable |
| Payment confirmed from bank | DR Accounts Payable, CR Cash |
| ACH return | DR Cash, CR Accounts Payable (reversal) |
No GL entry is created at transmission time. GL entries are created only when the bank statement confirms the payment actually occurred.
Payment Methods#
| Method | Description | File Format |
|---|---|---|
| ACH | Batch transfer (1-3 days) | NACHA |
| Wire | Same-day domestic/international | ISO 20022 |
| Check | Paper checks | Check file |
| SEPA | EU bank transfers | SEPA XML (pain.001) |
Troubleshooting#
| Issue | Solution |
|---|---|
| "Cannot self-approve" | A different user must approve the batch |
| "Batch must have at least one payment line" | Add lines before submitting |
| "Vendor bank account not found" | Configure a default payment bank account for the vendor |
| "Cannot edit lines in this status" | Lines can only be edited in Draft or Pending Approval |
| "Cancellation reason is required" | Provide a reason when cancelling |
| Vendors missing source bank | Configure a preferred source bank on the vendor or set supported payment methods on entity bank accounts |
Subscribe to new posts
Get notified when we publish new insights on AI-native finance.