Request Deposit Approval
Overview
The RequestDepositApprovalCommand submits a deposit account for approval, initiating the maker-checker workflow.
Endpoint
POST /api/bpm/cmd
Request Body
{
"cmd": "RequestDepositApprovalCommand",
"data": {
"accountEncodedKey": "DEP-123456",
"comment": "Ready for approval"
}
}
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| cmd | string | Yes | Must be "RequestDepositApprovalCommand" |
| data | object | Yes | Approval request data |
| ↳ accountEncodedKey | string | Yes | Deposit account identifier |
| ↳ comment | string | No | Request comment |
## Response Structure
### Success Response
```json
{
"succeeded": true,
"message": "Approval request submitted successfully",
"data": {
"depositId": "DEP001234",
"accountNumber": "1234567890",
"status": "Pending_Approval",
"requestedBy": "user@bank.com",
"requestedDate": "2024-01-15T14:30:00Z",
"comments": "New savings account for VIP customer. Please review and approve.",
"priority": "High"
},
"statusCode": 200
}
Field Descriptions
| Field | Type | Required | Description |
|---|---|---|---|
depositId | string | Yes | Unique identifier of the deposit account |
comments | string | No | Comments for the approver |
priority | string | No | Priority level (Low, Normal, High) |
Business Rules
-
Status Requirements
- Account must exist and not be closed
- Account must not already be pending approval
-
Authorization
- User must have permission to request approval
- System validates approval workflow requirements
Error Codes
| Code | Description | HTTP Status |
|---|---|---|
DEPOSIT_NOT_FOUND | Deposit account does not exist | 404 |
ALREADY_PENDING_APPROVAL | Account is already pending approval | 400 |
INSUFFICIENT_PERMISSIONS | User does not have permission | 403 |
INTERNAL_ERROR | An unexpected error occurred | 500 |
Code Examples
C# Example
public async Task<CommanExecutionResponse> RequestApprovalAsync(string depositId)
{
var command = new RequestDepositApprovalCommand
{
DepositId = depositId,
Comments = "Please review and approve this deposit account",
Priority = "Normal"
};
var response = await _client.Deposits.RequestApprovalAsync(command);
return response;
}
JavaScript/TypeScript Example
async requestApproval(depositId: string) {
const command = {
depositId,
comments: 'Please review and approve this deposit account',
priority: 'Normal'
};
const response = await this.client.deposits.requestApproval(command);
return response;
}
Related Commands
- Approve Deposit - Approve pending deposit
- Reject Deposit - Reject pending deposit
- Undo Deposit Approval - Undo approval request