KYC Status Reference
Track where users are in the verification process:
| Status | Description | User Can | Next Action |
|---|---|---|---|
NotStarted | No KYC application | Link accounts, receive program benefits | Prompt when attempting transaction |
Pending | Under automated review | Wait (usually minutes) | Monitor webhooks |
AwaitingDocuments | ID upload required | Upload documents | Guide to document upload |
ManualReview | Human review needed | Wait (1-2 days) | Set expectations |
Approved | Fully verified | All operations | Enable all features |
Denied | Application rejected | Limited operations | Explain options |
Status Flow
NotStarted → Pending → Approved
↓
AwaitingDocuments → ManualReview → Approved
↓
Denied
Status Descriptions
NotStarted
User hasn't initiated KYC verification yet. They can still:
- Link bank accounts and cards
- Receive rewards and program benefits
- Explore wallet features
Action: Prompt for KYC when user attempts money movement.
Pending
Application is under automated review. Most applications are processed in seconds.
Action: Monitor webhooks for status updates. Set user expectations for quick approval.
AwaitingDocuments
Additional documentation required (typically ID verification).
Action: Guide user to upload required documents through the wallet interface.
ManualReview
Application requires human review. This typically takes 1-3 business days.
Action: Set clear expectations with the user about review timeline.
Approved
User is fully verified and can access all banking features:
- Deposit funds
- Make purchases
- Withdraw funds
- All money movement operations
Action: Enable all features in your UI and notify the user.
Denied
Application was rejected. User retains rewards but cannot move money.
Action: Explain denial reason and provide options for reapplication if applicable.
Monitoring Status
Use webhooks to monitor status changes in real-time:
const statusHandlers = {
ApplicationApproved: () => enableAllFeatures(),
ApplicationDeclined: () => handleDenial(),
ApplicationAwaitingDocuments: () => promptForDocuments()
};
Next Steps
- Completing KYC - Learn the verification process
- Complete Integration Example - See status handling in practice
- Understanding Wallet Balances - Reference for balance structure