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. | |||||
This is all that is needed at this point. The batch will remain open through the 8pm cutoff and any transaction within will remain in the processed state. The following day at 8pm this batch will close, the transactions will move to processed and placed in a file. | |||||
| 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
- 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
- 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
- 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
- If you decide you want to adjust the batch auto-close setting, you can do so by sending an
UpdateAutoCloseDateTimeRequest 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
- 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.