Skip to main content
Introduction

Batch Management - Control Batch Close Times

By default, batches that are not closed by the end user are automatically closed at the processor's next scheduled cutoff time. However, you can control the scheduled cutoff time batches will follow through the Batch Management feature.

For example, consider the following scenario: You have a regularly scheduled 8 p.m. cutoff time for daily processing. In this case, you don’t want a batch of transactions to process that same day at the scheduled 8 p.m. cutoff time. Instead, you would like those transactions to process in the following day's scheduled 8 p.m. cutoff. You can control that specific batch's cutoff time by creating a batch with a value in the AutoCloseDateTime field that is after 8 p.m. that day. Think of the AutoCloseDateTime as a “do not close before” value. For example, 9 p.m. would work in this scenario. You would then place any transactions into this batch that you want to skip the 8 p.m. processing for the current day. When the normal cutoff schedule runs and generates a file at 8 p.m., the approved transactions in this "example batch" will not process until the following day's 8 p.m. cutoff time.

Getting Started

Each step in the workflow diagram is a hyperlink that will take you to the API reference information for the method being used.

Tasks covered in this guide

  • Step 1: Create a new batch with a custom cutoff time
  • Step 2: Add items into the open batch

Optional Steps

  • Step 3: Manually close the batch
  • Step 4: Update/Change the auto-close setting for the batch again
  • Step 5: Send the GetBatch request to verify the batch information
SmartPay Payment Vault™ - Batch Management - Control Batch Close Times Workflow
Batch Management - Control Batch Close Times Workflow
Integrator Flow
EPS WebService Flow

EPS Web Service

1.


2.


3.


4.


5.


 

 

Creating a new batch with custom cutoff time

Step 1: Create a batch

Send a CreateProcessingBatch Request

  • Set the isAutoCloseDateTimeRequired to True
  • Set the AutoCloseDateTime to the desired time, we set the AutoCloseDateTime to 9pm in our example
  • Supply the necessary values according to the request reference, such as the BatchNumber

CreateProcessingBatch Request Example

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pv="https://ssl.selectpayment.com/PV">
<soapenv:Header>
<pv:SecurityHeader>
<pv:BinarySecurityToken>your security token here</pv:BinarySecurityToken>
</pv:SecurityHeader>
</soapenv:Header>
<soapenv:Body>
<pv:CreateProcessingBatch>
<pv:storeId>0</pv:storeId>
<pv:storeKey isNull="true" />
<pv:entityId>your entityId</pv:entityId>
<pv:locationId>locationId of your merchant</pv:locationId>
<pv:terminalNumberIfKnown>__WebService</pv:terminalNumberIfKnown>
<pv:batchNumberToCreate>123</pv:batchNumberToCreate>
<pv:autoCloseDateTime>2010-11-26T19:00:00</pv:autoCloseDateTime>
<pv:isAutoCloseDateTimeRequired>0</pv:isAutoCloseDateTimeRequired>
</pv:CreateProcessingBatch>
</soapenv:Body>
</soapenv:Envelope>

CreateProcessingBatch Response Example

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<CreateProcessingBatchResponse xmlns="https://ssl.selectpayment.com/PV">
<CreateProcessingBatchResult>
<returnValue>Success</returnValue>
<message>Operation successful</message>
</CreateProcessingBatchResult>
</CreateProcessingBatchResponse>
</soap:Body>
</soap:Envelope>
Add items into the open batch

Step 2: Add transactions into the open batch

Send either a SaleFromBankAccount or a SaleFromCardAccount

note
  • This is all that is required at this point for this batch. This batch remains open through the regular cutoff time and any transactions within it remain in the approved state. The following day at 8 p.m., this batch closes with the regular cutoff time, the transactions move to a processed status, and those items are placed into a file.

SaleFromBankAccount Request Example

   <soapenv:Header>
<pv:SecurityHeader>
<pv:BinarySecurityToken>your security token here</pv:BinarySecurityToken>
</pv:SecurityHeader>
</soapenv:Header>
<pv:SaleFromBankAccount>
<pv:storeId>0</pv:storeId>
<pv:storeKey isNull="true" />
<pv:entityId>your entityId</pv:entityId>
<pv:locationId>locationId of your merchant</pv:locationId>
<pv:accountReferenceId>101</pv:accountReferenceId>
<pv:paymentOrigin>Internet</pv:paymentOrigin>
<pv:notificationMethod>Merchant_Notify</pv:notificationMethod>
<pv:Amount>101.01</pv:Amount>
<pv:terminalNumber>__WebService</pv:terminalNumber>
<pv:TransactionNumber>111</pv:TransactionNumber>
<pv:Description></pv:Description>
<pv:Field1></pv:Field1>
<pv:Field2></pv:Field2>
<pv:Field3></pv:Field3>
<pv:CheckNumber></pv:CheckNumber>
<pv:clientIP></pv:clientIP>
<pv:EffectiveDate>12-30-2010</pv:EffectiveDate>
</pv:SaleFromBankAccount>
</soapenv:Body>
</soapenv:Envelope>

SaleFromBankAccount Response Example

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<SaleFromBankAccountResponse xmlns="https://ssl.selectpayment.com/PV">
<SaleFromBankAccountResult>
<ReferenceNumber>T:XXXXXXX</ReferenceNumber>
<Success>true</Success>
<Error>false</Error>
<ResponseCode>Success</ResponseCode>
<ActualDate>2010-12-30T00:00:00.0000000-06:00</ActualDate>
<ResponseMessage/>
<OriginatedAs>ACH</OriginatedAs>
</SaleFromBankAccountResult>
</SaleFromBankAccountResponse>
</soap:Body>
</soap:Envelope>
Optional Steps
note
  • These are optional steps you can use to edit, adjust, or pull information about the batch you opened with a custom Auto Close Date Time

Step 3: Manually close the batch

Send a CloseProcessingBatch Request

note
  • This action overwrites the custom cutoff time and processes the batch normally at the regular cutoff time.

CloseProcessingBatch Request Example

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pv="https://ssl.selectpayment.com/PV">
<soapenv:Header>
<pv:SecurityHeader>
<pv:BinarySecurityToken>your security token here</pv:BinarySecurityToken>
</pv:SecurityHeader>
</soapenv:Header>
<soapenv:Body>
<pv:CloseProcessingBatch>
<pv:storeId>0</pv:storeId>
<pv:storeKey isNull="true" />
<pv:entityId>your entityId</pv:entityId>
<pv:batchNumber>123</pv:batchNumber>
</pv:CloseProcessingBatch>
</soapenv:Body>
</soapenv:Envelope>

CloseProcessingBatch Response Example

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<CloseProcessingBatchResponse xmlns="https://ssl.selectpayment.com/PV">
<CloseProcessingBatchResult>
<returnValue>Success</returnValue>
<message>Operation successful</message>
</CloseProcessingBatchResult>
</CloseProcessingBatchResponse>
</soap:Body>
</soap:Envelope>

Step 4: Update auto-close custom time for earlier or later

Send an UpdateAutoCloseDateTime Request

note
  • If you decide you want to adjust the batch auto-close setting, you can do so by sending an UpdateAutoCloseDateTime Request with your new time.
  • The Batch Number is required for this request.

UpdateAutoCloseDateTime Request Example

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pv="https://ssl.selectpayment.com/PV">
<soapenv:Header>
<pv:SecurityHeader>
<pv:BinarySecurityToken>your security token here</pv:BinarySecurityToken>
</pv:SecurityHeader>
</soapenv:Header>
<soapenv:Body>
<pv:UpdateAutoCloseDateTime>
<pv:storeId>0</pv:storeId>
<pv:storeKey isNull="true" />
<pv:entityId>your entityId</pv:entityId>
<pv:batchNumber>123</pv:batchNumber>
<pv:autoCloseDateTime>2026-01-16T12:10:00</pv:autoCloseDateTime>
</pv:UpdateAutoCloseDateTime>
</soapenv:Body>
</soapenv:Envelope>

UpdateAutoCloseDateTime Response Example

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<UpdateAutoCloseDateTimeResponse xmlns="https://ssl.selectpayment.com/PV">
<UpdateAutoCloseDateTimeResult>
<returnValue>Success</returnValue>
<message>Operation successful</message>
</UpdateAutoCloseDateTimeResult>
</UpdateAutoCloseDateTimeResponse>
</soap:Body>
</soap:Envelope>

Step 5: Send Get Batch request to verify batch information

Send a GetBatch Request

note
  • This request can be used to gather information regarding the batch details.
  • The Batch Number is required for this request.

GetBatch Request Example

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:pv="https://ssl.selectpayment.com/PV">
<soapenv:Header>
<pv:SecurityHeader>
<pv:BinarySecurityToken>your security token here</pv:BinarySecurityToken>
</pv:SecurityHeader>
</soapenv:Header>
<soapenv:Body>
<pv:GetBatch>
<pv:storeId>0</pv:storeId>
<pv:storeKey isNull="true" />
<pv:entityId>your entityId</pv:entityId>
<pv:batchNumber>123</pv:batchNumber>
</pv:GetBatch>
</soapenv:Body>
</soapenv:Envelope>

GetBatch Response Example

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetBatchResponse xmlns="https://ssl.selectpayment.com/PV">
<GetBatchResult>
<EntityId>12345</EntityId>
<BatchNumber>123</BatchNumber>
<BatchStatus>Open</BatchStatus>
<CreateDateTime>2010-12-30T10:31:04.1430000-06:00</CreateDateTime>
<ClosedDateTime>9999-12-31T23:59:59.9999999-06:00</ClosedDateTime>
<DebitCount>0</DebitCount>
<DebitAmount>0</DebitAmount>
<CreditCount>0</CreditCount>
<CreditAmount>0</CreditAmount>
<AuthorizedCount>0</AuthorizedCount>
<DeclinedCount>0</DeclinedCount>
<VoidCount>0</VoidCount>
<CreatedByUserId>0</CreatedByUserId>
<ClosedByUserId>123456</ClosedByUserId>
<AutoCloseDateTime>9999-12-31T23:59:59.9999999-06:00</AutoCloseDateTime>
</GetBatchResult>
</GetBatchResponse>
</soap:Body>
</soap:Envelope>
Next steps
  • Review the API Reference

Please review the API Reference to see all APIs and their technical specifications.

  • Explore other guides

We have other guides to show how to leverage our APIs in other common use cases so if this one doesn’t cover what you are looking for, give another guide a try. If your situation or question is not covered in the current guide, consult another resource.