The approval system implements a maker-checker workflow for financial operations. All sensitive
operations go through an approval queue before execution.
Approval Workflow Overview
🔄 How Approvals Work
Request Created - Operator/Customer creates a request
Pending Queue - Request enters approval queue
Review - Approver reviews request details
Action - Approve, Reject, or Send Back
Execution - If approved, system executes the operation
Notification - All parties notified of outcome
Request Types
Type
Collection Key
Source
Description
allotment
allotment_requests
Dashboard
New investment allotment
redemption
redemption_requests
Dashboard / Mobile
Early exit from investment
transfer
transfer_requests
Dashboard / Mobile
Investment ownership transfer
rollover
rollover_requests
Dashboard
Reinvest matured investment
profile_change
customer_requests
Mobile
Customer profile update
document_update
customer_requests
Mobile
KYC document upload
Request Status Flow
Status
Description
Next Actions
pending
Awaiting approval
approve, reject, send_back
sent_back
Returned for corrections
resubmit, cancel
approved
Approved and executed
None (final)
rejected
Rejected with reason
None (final)
cancelled
Cancelled by creator
None (final)
API Endpoints
Method
Endpoint
Description
Permission
GET
/admin/approvals/counts
Get pending counts by type
approvals:view
GET
/admin/approvals/pending
Get all pending requests (paginated)
approvals:view
GET
/admin/approvals/pending-for-edit
Get requests sent back for editing
approvals:view
GET
/admin/approvals/history
Get approved/rejected history
approvals:view
GET
/admin/approvals/:type/:id
Get single request details
approvals:view
POST
/admin/approvals/:type/:id/approve
Approve request
Varies by type
POST
/admin/approvals/:type/:id/reject
Reject request (requires reason)
Varies by type
POST
/admin/approvals/:type/:id/send-back
Return for corrections (requires note)
Varies by type
Permissions by Request Type
Request Type
Approve Permission
Reject Permission
Allotment
ncd-allotment:confirm
ncd-allotment:confirm
Redemption
ncd-redemption:approve
ncd-redemption:approve
Transfer
ncd-transfer:execute
ncd-transfer:execute
Rollover
ncd-rollover:approve
ncd-rollover:reject
Profile Change
ncd-redemption:approve
ncd-redemption:approve
Request Payload Examples
Approve Request
POST /admin/approvals/redemption/64f123abc/approve
{
"note": "Approved as per customer request"
}
Reject Request
POST /admin/approvals/redemption/64f123abc/reject
{
"reason": "Lock-in period not complete. Please try after 01/03/2024"
}
Send Back Request
POST /admin/approvals/profile_change/64f123abc/send-back
{
"note": "Bank account statement is unclear. Please upload a clearer image."
}
Implementation Notes
Maker-checker: Users cannot approve their own requests
Notifications are sent automatically on status change
All actions are logged in audit trail
Partial approval supported for bulk allotment requests
Mobile App API
Routes: /mobile/* — Customer mobile app endpoints.