Docs/Banking & Payments/Payment Batches

Payment Batches

Organize, approve, and transmit vendor payments in batches with full audit trails and bank reconciliation

10 min read

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
StatusDescription
DraftBatch is editable. Lines can be added, removed, or modified.
Pending ApprovalSubmitted for review. Approver can edit amounts and exclude lines.
ApprovedReady for bank transmission.
TransmittedSent to bank. Awaiting confirmation.
CompletedAll payments confirmed from bank statements.
Partially CompletedSome lines confirmed, others failed or returned.
CancelledPermanently 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:

StatusDescription
PendingLine awaiting approval
IncompleteVendor missing bank account configuration
ExcludedApprover removed this line (stays in batch for audit)
ApprovedReady for transmission
TransmittedSent to bank
CompletedPayment confirmed from bank statement
FailedPayment failed at the bank
ReturnedACH 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:

  1. Create a draft batch with an auto-generated batch number (e.g., PAY-000001)
  2. Allow you to add individual payment lines for each vendor
  3. 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:

  1. Scans open invoices -- Finds all posted, partial, or approved AP invoices with outstanding balances
  2. Groups by payment criteria -- Groups invoices by payment method, currency, and source bank account
  3. Creates one batch per group -- Each group becomes a separate payment batch
  4. One line per invoice -- Each invoice becomes its own batch line, allowing individual exclusion during approval
  5. 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:

  1. Vendor-level preference -- If a preferred source bank is configured for the vendor (per entity), it uses that account
  2. 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#

MethodDescriptionUse Case
Connector (API)Direct API call to banking providerWise, Stripe -- fully automated
SEPA XMLGenerate pain.001 file for bank portalEU bank transfers
ACH (NACHA)Generate NACHA file for bank portalUS domestic payments
Wire (ISO 20022)International wire transfer fileInternational payments
ManualMark as transmitted after manual processingChecks, edge cases

Manual Transmission Flow#

When no bank connector is configured:

  1. Ask the AI assistant to generate a payment file (SEPA, NACHA, or CSV)
  2. Download and upload the file to your bank portal
  3. Confirm to the AI assistant that the file has been uploaded
  4. 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:

  1. External reference match -- Statement line reference matches batch line reference exactly
  2. Exact amount + vendor -- Amount matches and vendor name appears in the description
  3. Exact amount only -- Amount matches (no vendor match required)
  4. Tolerance + vendor -- Amount within 1% tolerance and vendor name in description

Batch Completion#

ConditionResulting Batch Status
All lines completed, none failedCompleted
Some completed, some failedPartially Completed
All failedFailed
Some still in progressStays Transmitted

Excluded and incomplete lines do not block batch completion.


GL Integration#

EventGL Entry
AP Invoice postedDR Expense, CR Accounts Payable
Payment confirmed from bankDR Accounts Payable, CR Cash
ACH returnDR 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#

MethodDescriptionFile Format
ACHBatch transfer (1-3 days)NACHA
WireSame-day domestic/internationalISO 20022
CheckPaper checksCheck file
SEPAEU bank transfersSEPA XML (pain.001)

Troubleshooting#

IssueSolution
"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 bankConfigure 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.