Skip to main content

Update Branch Vault

Overview

Updates the configuration and settings of an existing branch vault.

Command

UpdateBranchVaultCommand

Endpoint

POST /api/bpm/cmd

Request Headers

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

Request Body

{
"cmd": "UpdateBranchVaultCommand",
"data": {
"vaultId": "VLT-001",
"vaultName": "Main Branch Vault - Updated",
"maximumBalance": 5000000.00,
"minimumBalance": 100000.00,
"requiresApproval": true,
"description": "Updated vault configuration",
"status": "Active"
}
}

Request Parameters

ParameterTypeRequiredDescription
cmdstringYesMust be "UpdateBranchVaultCommand"
dataobjectYesVault update data
↳ vaultIdstringYesUnique identifier of the vault to update
↳ vaultNamestringNoNew name for the vault
↳ maximumBalancedecimalNoUpdated maximum balance limit
↳ minimumBalancedecimalNoUpdated minimum balance threshold
↳ requiresApprovalbooleanNoWhether to require approval for vault transactions
↳ descriptionstringNoUpdated vault description
↳ statusstringNoNew vault status (Active, Inactive, Suspended)

Response

Success Response (200 OK)

{
"success": true,
"message": "Branch vault updated successfully",
"data": {
"vaultId": "string",
"branchId": "string",
"vaultName": "string",
"currencyCode": "string",
"currentBalance": "decimal",
"maximumBalance": "decimal",
"minimumBalance": "decimal",
"status": "string",
"requiresApproval": "boolean",
"lastUpdatedDate": "datetime"
}
}

Error Responses

400 Bad Request

{
"success": false,
"message": "Validation failed",
"errors": [
"Vault ID is required",
"Maximum balance must be greater than minimum balance"
]
}

404 Not Found

{
"success": false,
"message": "Vault not found with the provided ID"
}

409 Conflict

{
"success": false,
"message": "Cannot update vault: active transactions in progress"
}

Business Rules

  1. Cannot update vault with pending transactions
  2. Maximum balance must be greater than minimum balance
  3. Cannot change currency code after creation
  4. Status change to "Inactive" requires zero balance or special permissions
  5. Vault name must remain unique within the branch
  6. Cannot reduce maximum balance below current balance

Code Example

async function updateBranchVault(vaultId, updates) {
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: 'UpdateBranchVaultCommand',
data: {
vaultId: vaultId,
maximumBalance: 15000000.00,
minimumBalance: 100000.00,
requiresApproval: true,
description: 'Updated limits for increased transaction volume'
}
})
});

return await response.json();
}

Notes

  • Update vault limits during off-peak hours to avoid transaction conflicts
  • Always verify current balance before reducing maximum balance
  • Document reasons for status changes for audit purposes
  • Consider the impact on teller operations when modifying vault settings