Skip to main content

Undo Close Teller Till

Overview​

Reverses a till closure, reopening it to correct errors or process additional transactions.

Command​

UndoCloseTellerTillCommand

Endpoint​

POST /api/bpm/cmd

Request Headers​

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

Request Body​

{
"cmd": "UndoCloseTellerTillCommand",
"data": {
"tillId": "TILL-T001",
"reason": "Closing balance was incorrect, need to reconcile",
"approvedBy": "SUPER-001"
}
}

Request Parameters​

ParameterTypeRequiredDescription
cmdstringYesMust be "UndoCloseTellerTillCommand"
dataobjectYesUndo closure data
↳ tillIdstringYesUnique identifier of the closed till
↳ reasonstringYesReason for undoing the closure
↳ approvedBystringNoSupervisor who approved the undo action

Response​

Success Response (200 OK)​

{
"success": true,
"message": "Till closure undone successfully",
"data": {
"tillId": "string",
"status": "Open",
"restoredBalance": "decimal",
"undoneDate": "datetime",
"reason": "string"
}
}

Error Responses​

400 Bad Request​

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

404 Not Found​

{
"success": false,
"message": "Till not found"
}

409 Conflict​

{
"success": false,
"message": "Cannot undo till closure after end-of-day processing"
}

Business Rules​

  1. Can only undo closures before end-of-day processing
  2. Requires valid reason for audit trail
  3. May require supervisor approval
  4. Restores till to state before closure
  5. Reverses vault transfer if applicable
  6. Creates audit trail entry

Code Example​

async function undoCloseTellerTill(tillId, reason) {
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: 'UndoCloseTellerTillCommand',
data: {
tillId: tillId,
reason: reason
}
})
});

return await response.json();
}

Notes​

  • Use sparingly and only when necessary
  • Document reason thoroughly for compliance
  • Verify balance restoration accuracy
  • Notify relevant parties of the undo action
  • Consider using Reopen instead for planned reopenings