Batch Management

Efficiently manage transaction settlements by grouping approved payments into batches for streamlined funding and reconciliation.

PCE allows you to process multiple individual transactions as a single group, called a batch. These batches are opened and closed at regular intervals (daily, weekly, or another defined cycle).

Batch Management defines how transactions are grouped before settlement. At the end of a business day (or defined cycle), all captured transactions are collected into a batch, which is then processed for settlement.

Key Highlights:

  • Transactions are grouped into a batch through Batch Closure. Only settled batches are eligible for funding.
  • Automatically or manually group transactions into daily settlement batches.
  • Monitor batch statuses — Open or Closed.
  • Control batch timing through merchant-level settings.
  • Retrieve and review batch and transaction details via API.

Benefits:

  • Clear visibility into daily sales and settlement activity.
  • Simplified reconciliation with processor and funding reports.
  • Faster identification of any discrepancies or missing transactions.

Scenarios

Batch management workflows vary based on your operational needs — automatic daily settlement, manual end-of-shift closure, or real-time reconciliation. Pick the scenario that matches your business process.

sequenceDiagram
    participant App as Your Application
    participant PCE as PCE
    participant Processor as Payment Processor
    App->>PCE: Process transactions throughout day
    PCE->>PCE: Transactions collected in open batch
    Note over PCE: Auto-close at 4:00 AM UTC (or manual close)
    PCE->>Processor: Submit batch for settlement
    Processor-->>PCE: Settlement confirmation
    PCE-->>App: Webhook — batch.closed

Before you begin (all scenarios)

  • Know your merchant's auto-close time (default: 4:00 AM UTC).
  • Decide whether to use automatic or manual batch closure.
  • Implement batch status webhooks for real-time updates.

Scenario 1: End-of-day reconciliation for a retail store

(Auto-close enabled — verify daily batch totals)

Use this for retail merchants who want to verify their daily sales totals before the batch settles. The batch closes automatically, and you retrieve the summary for reconciliation.

You'll do this: After auto-close, retrieve the closed batch to compare against your POS totals.

Step 1: Retrieve yesterday's closed batch

GET /checkout/v3/batch?merchantId=1000156763&status=Closed&dateRange=Today

Batch List Response

{
  "records": [
    {
      "id": "BTH-20260708-001",
      "merchantId": "1000156763",
      "status": "Closed",
      "opened": "2026-07-07T04:00:00Z",
      "closed": "2026-07-08T04:00:00Z",
      "saleCount": 47,
      "saleAmount": 4823.50,
      "refundCount": 2,
      "refundAmount": 125.00,
      "netAmount": 4698.50,
      "netSurcharge": 144.71,
      "netTip": 312.00
    }
  ]
}

Step 2: Get detailed transactions for reconciliation

GET /checkout/v3/batchpayment/BTH-20260708-001

Batch Transactions Response

{
  "batchId": "BTH-20260708-001",
  "transactions": [
    {
      "id": 12345678,
      "amount": 102.50,
      "paymentToken": "pmt_abc123",
      "tenderType": "Card",
      "status": "Settled",
      "authCode": "A12345",
      "cardAccount": {
        "cardType": "Visa",
        "last4": "1111"
      },
      "invoice": "INV-001",
      "created": "2026-07-07T14:23:00Z"
    }
  ]
}
📘

Reconciliation tip

Compare saleCount and saleAmount from the batch summary against your POS totals. Flag any discrepancies before funding hits your bank account.


Scenario 2: Restaurant end-of-shift manual batch close

(Manual close after tip adjustments are finalized)

Use this when tips are adjusted throughout the shift and you want to close the batch only after all adjustments are complete — typically at the end of the dinner service.

You'll do this: Disable auto-close, make tip adjustments, then manually close the batch.

Step 1: Verify the open batch

GET /checkout/v3/batch?merchantId=1000156763&status=Open

Open Batch Response

{
  "records": [
    {
      "id": "BTH-20260708-002",
      "merchantId": "1000156763",
      "status": "Open",
      "opened": "2026-07-08T04:00:01Z",
      "saleCount": 23,
      "saleAmount": 2150.00,
      "netTip": 387.50
    }
  ]
}

Step 2: Close the batch manually

PUT /checkout/v3/batch/BTH-20260708-002

{
  "status": "Closed"
}

Close Batch Response

{
  "id": "BTH-20260708-002",
  "status": "Closed",
  "closed": "2026-07-08T23:45:00Z",
  "saleCount": 23,
  "saleAmount": 2150.00,
  "netTip": 412.75,
  "message": "Batch closed successfully. Settlement initiated."
}
⚠️

Delayed batch closure risks

Closing batches more than 24 hours after authorization can result in higher interchange fees and increased chargeback risk. Close batches daily.


Scenario 3: Investigate a missing transaction

(Transaction not appearing in batch)

Use this when a transaction you expected to see in the batch isn't there. This typically happens when a transaction wasn't captured before batch close.

Step 1: Retrieve the batch transactions

GET /checkout/v3/batchpayment/BTH-20260708-001

Step 2: If transaction is missing, check its status

GET /checkout/v3/payment?merchantId=1000156763&replayId=order-12345

Payment Response (not captured)

{
  "id": 12345999,
  "status": "Authorized",
  "amount": 75.00,
  "captureStatus": "NotCaptured",
  "authCode": "A99999",
  "message": "Authorization only — not yet captured. Will not appear in batch."
}

Recommended action: Capture the authorization before the next batch close. Authorizations not captured within 7 days typically expire.

POST /checkout/v3/payment/12345999/capture

{
  "amount": "75.00"
}

How It Works

  • Transactions are approved throughout the day.
  • Batches automatically close at the configured auto-close time (default: 4:00 AM UTC).
  • Settled batches are submitted to the processor for fund transfer.
  • A new batch is automatically created upon the next approved transaction.
📘

Best Practice: Close batches daily to ensure timely settlements and prevent funding delays.


Batch Configuration

The rules and configurations determine how and when credit card transactions are grouped (or “batched”) together for settlement. Instead of processing each transaction individually, batching allows multiple transactions to be processed and settled together, typically once per day.

This is common in payment processing systems to improve efficiency, reduce fees, and streamline reconciliation.

Merchants can configure batching behavior based on their operational needs.

SettingDescriptionDefault Behavior
Auto-Batch TimeDefines the time when open batches close automatically.Enabled at 4:00 AM UTC. * Any transactions captured during the day will be grouped into a batch and automatically closed at this time.
Manual CloseLets merchants manually close batches via API or dashboard. Failure to close a batch manually may result in:
  • Delayed funding
  • Higher interchange fees
  • Increased risk of chargebacks
Disabled (auto-close used by default)


Batch Management Operations

Below are the API endpoints used for managing batches.

1. Retrieve Batches for a Merchant

Retrieve a list of all batches for a merchant using either of the following endpoints:

ParameterRequiredDescription
merchantIdUnique identifier of the merchant.
startDateStart date/time for batch search in ISO 8601 format.
endDateEnd date/time for batch search in ISO 8601 format.
limitMaximum number of records to return per request.
offsetRecord offset for pagination.
dateRangeTime period filter (Today, Week, Month, Custom).
statusBatch status filter (Open or Closed).

2. Close an Open Batch

Use the PUT /checkout/v3/batch/{id} API endpoint to close a specific batch to initiate settlement.

ParameterRequiredDescription
batchIdUnique ID of the batch to close

3. Get Batch by ID

Use the GET /checkout/v3/batch/{id} to Retrieve complete details for a specific batch using its ID.

Key Response Fields:

FieldDescription
statusBatch status (Open, Closed)
opened / closedDate/time the batch was opened or closed
saleCount, saleAmountCount and amount of sale transactions
netTip, netSurchargeTip and surcharge totals for the batch
processorNamePayment processor handling the batch
deviceSource device or API client that initiated transactions

4. Retrieve Batch Transactions

Use the GET /checkout/v3/batchpayment/{id} to fetch detailed transaction information for a batch.

Key Response Fields:

FieldDescription
idUnique transaction ID
amountTransaction amount
paymentTokenThe secure Transaction Token. Use this for follow-up actions like refunds or adjustments after the transaction has settled.
tenderTypeType of payment (e.g., Card)
authCodeAuthorization code from issuer
statusTransaction status (e.g., Settled)
cardAccountEntire details of the card used within the transaction.
invoice, customerCodeReference and customer identifiers

Batch Lifecycle

The batch lifecycle outlines how transactions move from authorization to settlement, helping merchants track the status of their daily payment batches.

StageDescription
OpenBatch is collecting approved transactions.
ClosedBatch has been finalized and sent for settlement.

Troubleshooting

IssuePossible CauseResolution
Batch not closing automaticallyAuto-close disabled or time not set correctlyVerify batch settings or close manually via API
Missing transactionsTransaction not approved before batch closureEnsure all sales complete before batch close

See Also


Did this page help you?
.readme-logo { display: none !important; }