Skip to main content

Close Teller Till

Overview​

Closes a teller till at the end of a shift, reconciling cash and transferring remaining balance to the vault.

Command​

CloseTellerTillCommand

Endpoint​

POST /api/bpm/cmd

Request Headers​

Authorization: Bearer {access_token}
Content-Type: application/json
X-Tenant-Id: {tenant_id}

Request Body​

{
"cmd": "CloseTellerTillCommand",
"data": {
"tillId": "TILL-T001",
"closingBalance": 487500.00,
"vaultId": "VLT-001",
"denominationDetails": {
"1000": 200,
"500": 150,
"200": 125,
"100": 100
},
"notes": "End of day reconciliation completed"
}
}

Request Parameters​

ParameterTypeRequiredDescription
cmdstringYesMust be "CloseTellerTillCommand"
dataobjectYesTill closure data
↳ tillIdstringYesUnique identifier of the till to close
↳ closingBalancedecimalYesPhysical cash count at till closure
↳ vaultIdstringNoVault to receive remaining till balance
↳ denominationDetailsobjectNoBreakdown of cash by denomination
↳ notesstringNoAdditional notes about the closure

Response​

Success Response (200 OK)​

{
"success": true,
"message": "Teller till closed successfully",
"data": {
"tillId": "string",
"openingBalance": "decimal",
"closingBalance": "decimal",
"totalTransactions": "integer",
"variance": "decimal",
"status": "Closed",
"closedDate": "datetime"
}
}

Error Responses​

400 Bad Request​

{
"success": false,
"message": "Validation failed",
"errors": ["Till ID is required", "Closing balance is required"]
}

409 Conflict​

{
"success": false,
"message": "Till has pending transactions"
}

Business Rules​

  1. All pending transactions must be completed
  2. Closing balance should match system balance
  3. Large variances may require supervisor approval
  4. Remaining balance transferred to vault
  5. Creates comprehensive audit trail

Code Example​

async function closeTellerTill(tillId, closingBalance) {
const response = await fetch('/api/bpm/cmd', {
method: 'POST',
headers: {
'Authorization': `Bearer ${accessToken}`,
'Content-Type': 'application/json',
'X-Tenant-Id': tenantId
},
body: JSON.stringify({
commandType: 'CloseTellerTillCommand',
data: {
tillId: tillId,
closingBalance: closingBalance,
notes: 'End of shift closure'
}
})
});

return await response.json();
}

Notes​

  • Perform physical cash count before closing
  • Document any variances for investigation
  • Ensure all transactions are posted before closing
  • Keep detailed records for audit purposes