Approve Deposit Lock Amount
Approve a pending lock amount transaction to complete the fund lock or seizure process.
Overview
The ApproveDepositLockAmountCommand approves a pending lock amount transaction that requires authorization. This completes the two-step lock process for high-value holds, regulatory holds, or seizures that need supervisory approval before funds are actually restricted or seized from the customer's account.
Key Capabilities
- Authorization Workflow: Complete two-step approval for sensitive holds
- Supervisory Control: Ensures management oversight on significant locks
- Automatic Processing: Executes approved lock or seizure automatically
- Audit Trail: Records approver identity and timestamp
- Balance Updates: Immediately updates available balance upon approval
- GL Posting: Creates appropriate accounting entries for seized amounts
- Compliance Support: Maintains approval records for regulatory review
API Endpoint
POST /api/bpm/cmd
Headers
Content-Type: application/json
Authorization: Bearer {access_token}
X-Tenant-ID: {tenant_id}
Request Structure
Command Payload
{
"commandName": "ApproveDepositLockAmountCommand",
"data": {
"accountNumber": "string",
"blockReference": "string",
"serviceId": "string",
"remarks": "string"
}
}
Request Fields
| Field | Type | Required | Description | Validation |
|---|---|---|---|---|
accountNumber | string | Yes | Deposit account number or encoded key | Must exist in system |
blockReference | string | Yes | Unique reference of pending lock transaction | Must be in pending state |
serviceId | string | No | Service identifier for tracking | Optional categorization |
remarks | string | No | Approval notes or comments | Optional documentation |
Response Structure
Success Response
{
"isSuccessful": true,
"message": "The lock amount transaction has been approved and executed successfully.",
"statusCode": "00"
}
Error Response
{
"isSuccessful": false,
"message": "The lock transaction is not in pending state.",
"statusCode": "INVALID_REQUEST"
}
Sample Requests
1. Approve High-Value Hold
{
"commandName": "ApproveDepositLockAmountCommand",
"data": {
"accountNumber": "ACC123456789",
"blockReference": "LOCK-2024-12-001234",
"remarks": "Approved by branch manager - large transaction hold verified"
}
}
2. Approve Court-Ordered Seizure
{
"commandName": "ApproveDepositLockAmountCommand",
"data": {
"accountNumber": "8A3F2D1E9B5C4F7A6E8D2C1B3A9F5E7D",
"blockReference": "SEIZE-COURT-20241219-001",
"serviceId": "LEGAL_SEIZURE",
"remarks": "Legal department approval - court order #2024-CIV-5678 verified"
}
}
3. Approve Regulatory Hold
{
"commandName": "ApproveDepositLockAmountCommand",
"data": {
"accountNumber": "SAV987654321",
"blockReference": "REG-HOLD-2024-445",
"serviceId": "REGULATORY_HOLD",
"remarks": "Compliance officer approval - AML investigation supporting documentation verified"
}
}
Business Logic
Approval Workflow
State Transitions
Lock Amount Approval:
DEBIT_LOCKED→DEBIT_APPROVED→ Funds unavailable to customer- Available Balance reduced immediately
Seizure Amount Approval:
DEBIT_LOCKED→DEBIT_SEIZED→ Funds transferred to GL- Both available and actual balance reduced
Use Cases
1. Large Transaction Holds
Scenario: Hold exceeds auto-approval limit
Steps:
- Teller creates lock request
- Supervisor reviews request details
- Supervisor approves via this command
- Funds immediately unavailable
- Customer notified
2. Legal Seizures
Scenario: Court order to seize funds
Steps:
- Legal team creates seizure request
- Compliance reviews legal documentation
- Authorized officer approves seizure
- Funds transferred to suspense GL
- Customer receives legal notification
3. Fraud Prevention Holds
Scenario: Suspicious activity detected
Steps:
- System flags suspicious transaction
- Fraud team reviews activity
- Security officer approves hold
- Account partially restricted
- Investigation continues
Validation Rules
| Validation | Error Message | Status Code |
|---|---|---|
| Account not found | "The selected account number is not valid" | INVALID_ACCOUNT |
| Lock transaction not found | "Block reference not found" | INVALID_REQUEST |
| Not in pending state | "The lock transaction is not in pending state" | INVALID_REQUEST |
| Already approved | "This transaction has already been approved" | DUPLICATE_TRANSACTION |
| Insufficient balance | "Insufficient funds for seizure" | INSUFFICIENT_BALANCE |
Best Practices
For Approvers
- Verify Documentation: Review all supporting documents before approval
- Check Authority: Ensure approval is within your authorization limits
- Add Clear Remarks: Document reason for approval for audit trail
- Customer Impact: Consider customer relationship implications
- Compliance Check: Verify regulatory requirements are met
For System Integration
- Timeout Handling: Implement proper timeouts for pending approvals
- Notification: Alert approvers of pending requests
- Escalation: Auto-escalate if approval threshold exceeded
- Audit Logging: Capture complete approval chain
- Reversal Process: Understand how to reverse if needed
Related APIs
| API | Relationship | Description |
|---|---|---|
| Lock Deposit Amount | Prerequisite | Creates the lock request |
| Reject Lock Amount | Alternative | Reject instead of approve |
| Seize Lock Amount | Related | Direct seizure without approval |
| Delete Lock Amount | Related | Remove approved lock |