PUT /api/v3/batch/close/{batchId}

Closes an open batch, finalizing all bills within it

CloseBatchV3 Permissions: BillsAndBatches (Create)
Use this endpoint to close a batch that is currently open. A closed batch cannot have new bills added to it. The batch must not already be closed. Only the batch owner or a user with appropriate permissions can close a batch. For more flexible status transitions (Open/Pending/Closed), use PUT /api/v202206/batch/{batchId}/status instead. Requires Bills and Batches Create permission.

Request Headers

Header Value Required Description
ECI-ApiKey string Yes Your API key. See Authentication.
Content-Type application/json Yes All requests must specify JSON content type, including the request body.

Path Parameters

Name Description Type Required
batchId Unique numeric identifier of the batch to close integer (int32) Required

Responses

200 OK The request succeeded and the response body contains the requested data.

Response Body Parameters

BatchResponse
Property Description Type
accountPeriodName Account period name batch setting string
accountPeriodNumber Account period number batch setting integer (int32)
accountPeriodYear Account period year batch setting integer (int32)
analyzingCount Number of bills contained in this batch that are currently being analyzed integer (int32)
batchCode The batch code string
batchId The batch identifier integer (int32)
batchStatus The status of the batch (open, pending, closed) string
billCount The number of bills in this batch integer (int32)
controlCode Control code batch setting string
createdBy UserChild
UserChild properties
Property Description Type
fullName The user’s full name string
userCode The user code string
userId The user identifier integer (int32)
dueDate Due date batch setting string
endDate The date when the batch was closed string (date-time)
flagCount Number of unresolved flags on bills contained in this batch integer (int32)
hasImportedBills Denotes if the Batch has any imported bills associated with it boolean
hasImportsWithKickout Denotes if the Batch has any import task with Status = “Completed with kickouts” boolean
hasLogs Denotes if the Batch has any move log events associated with it boolean
invoiceNumber Invoice number batch setting string
isOpen Is the batch open boolean
nextReading Next reading date batch setting string
note Note/comment for the batch string
runningTotal The cost of all bills in this batch number (double)
startDate The date when the batch was created string (date-time)
statementDate Statement date batch setting string
Example Response application/json
{  "accountPeriodName": "string",  "accountPeriodNumber": 1,  "accountPeriodYear": 1,  "analyzingCount": 1,  "batchCode": "string",  "batchId": 1,  "batchStatus": "string",  "billCount": 1,  "controlCode": "string",  "createdBy": {    "fullName": "string",    "userCode": "string",    "userId": 1
  },  "dueDate": "string",  "endDate": "2026-06-29",  "flagCount": 1,  "hasImportedBills": false,  "hasImportsWithKickout": false,  "hasLogs": false,  "invoiceNumber": "string",  "isOpen": false,  "nextReading": "string",  "note": "string",  "runningTotal": 1.0,  "startDate": "2026-06-29",  "statementDate": "string"
}
404 Not Found The requested resource was not found. Verify the ID or path is correct.