Wallet
Available to: Admin, Super Admin (managing any user), All Users (own wallet)
Each user has an OX Wallet for platform transactions — deposits, withdrawals, payments, and settlements.
Wallet Overview
The wallet section (/users/{userId}/account/wallet) displays:
- Current balance — Available wallet balance
- Credit limit — Extended credit limit (if applicable)
- Transaction history — Complete list of all wallet transactions
Payment Modes
Transactions can use the following payment modes:
| Mode | Description |
|---|---|
| Cash | Physical cash payment |
| UPI | UPI-based transfer |
| Net Banking | Online bank transfer |
| Debit Card | Card payment |
| Credit Card | Card payment |
| Cheque | Cheque-based payment |
| Coupon | Coupon/voucher redemption |
| Write-off | Amount written off |
| Correction | Manual correction entry |
| Interest | Interest credit |
| Online Discount | Discount applied |
| Payout | External payout (CashFree, PayU) |
Deposit
Add funds to a user's wallet:
- Enter the amount on the wallet page
- Click Deposit
- Select a payment mode
- Fill in additional fields based on the selected mode (received by, received at, bank ref no, etc.)
- Upload payment proof (required for UPI, Net Banking, Debit/Credit Card, Cheque)
- Add an optional description
- Submit — amount is credited to the wallet immediately
Withdrawal
Withdrawal has two paths depending on the payment mode selected.
Withdrawal Flow
- Enter the amount on the wallet page
- Click Withdraw
- A form dialog opens — select a payment mode
- If payment mode is "Payout":
- A confirmation modal appears with the message:
"After this request is approved, the amount will be transferred to your bank account within 2 business days. Are you sure you want to continue with the withdrawal request for ₹[amount]?"
- Click Yes to submit — a payout request is created via CashFree with status "Requested"
- The request must be approved by an admin before processing (see Withdrawal Approval below)
- A confirmation modal appears with the message:
- If payment mode is anything else (Cash, UPI, etc.):
- Upload payment proof (if required for the selected mode)
- Add an optional description
- Submit — the withdrawal is processed directly
Insufficient Balance
If the entered amount exceeds the available balance:
- Admin / Accountant / Super Admin — A modal offers to proceed with an advance withdrawal: first withdraw the current balance (making it zero), then process the remaining as an advance
- Other users — An "Insufficient balance" message is shown
Withdrawal Approval
When the payment mode is Payout, the withdrawal goes through an approval workflow:
User requests withdrawal → Status: "Requested"
→ Admin approves → Status: "Processing" → Bank transfer within 2 business days
→ Admin declines → Status: "Declined" (reason required)
→ Admin cancels → Status: "Canceled"
→ If processing fails → Status: "Failed" → Admin can "Retry" → Back to "Processing"
| Status | Description |
|---|---|
| Requested | Awaiting admin approval |
| Processing | Approved, bank transfer is being processed |
| Declined | Admin rejected the request (decline reason stored) |
| Canceled | Request was canceled |
| Failed | Bank transfer failed — can be retried by admin |
Pending withdrawal requests are shown on the user's wallet page with the request time and amount. Users can view their full history at Account → Wallet → Withdraw Request History.
Admins manage withdrawal requests at Payments → Payout Requests, where they can approve, decline, or cancel individual requests, or use bulk actions to process multiple requests at once.
Wallet Settings
Configure wallet behavior at Account → Wallet → Settings:
| Setting | Description |
|---|---|
| Preferred Bank | Default bank account for withdrawals |
| Withdrawal Schedule | Automated withdrawal timing |
| Minimum Withdraw Amount | Minimum amount required for withdrawal |
| Settlement Amount | Amount threshold for auto-settlement |
| Admin Control | Toggle admin control over wallet operations |
| Overdraft Enabled | Allow wallet balance to go negative |
Pay for Friend
Send money from your wallet to another user or company:
- Navigate to Wallet → Pay for Friend
- Search and select the recipient (user or company)
- Enter the amount
- Select payment mode
- Add transaction notes (optional)
- Apply payment offer (if available)
- Confirm payment