Skip to content

Wallet Withdrawal Requests

Purpose

Review and process customer requests to withdraw funds from their wallets via offline payment methods. Approve legitimate withdrawals, transfer funds to customers, and reject invalid requests with proper fund refunds.

Accessing Wallet Withdrawal Requests

Navigate to: Delivery & Payments > Wallet Withdrawal Requests from the sidebar

List View

Wallet Withdrawal Requests List

The list displays all customer withdrawal requests with payment details and current status.

Table Columns

Request ID

  • Format: Number with # prefix
  • Purpose: Unique identifier for this withdrawal request
  • Sortable: Yes (default: newest first)

User

  • Format: Text (customer name)
  • Purpose: Customer who submitted the withdrawal request
  • Clickable: Links to customer profile

Amount

  • Format: Money value in wallet currency
  • Purpose: Amount customer wants to withdraw
  • Note: This amount was immediately deducted from wallet upon request submission

Payment Method

  • Format: Badge
  • Purpose: Offline payment method for withdrawal (bank transfer, check, etc.)
  • Display: Shows payment method name

Status

  • Format: Colored badge
  • Purpose: Current request status
  • Values:
  • Pending (Yellow): Awaiting admin review, funds deducted from wallet
  • Approved (Green): Verified and transfer initiated
  • Rejected (Red**: Declined and funds refunded to wallet

Submitted Date

  • Format: Timestamp
  • Purpose: When customer submitted the withdrawal request

Reviewed By

  • Format: Text (admin name) - hidden by default
  • Purpose: Admin who processed this request
  • Visible: Only after approval/rejection

Reviewed At

  • Format: Timestamp - hidden by default
  • Purpose: When request was processed

Row Actions

  • View: See complete request details and customer notes
  • Approve: Confirm withdrawal and complete transfer (pending requests only)
  • Reject: Decline withdrawal and refund to wallet (pending requests only)

Bulk Actions

  • Export: Export requests data to Excel/CSV

Viewing a Withdrawal Request

View Withdrawal Request

Click View to see complete request details:

Request Information

  • Request ID and status
  • Customer name and email
  • Current wallet balance (after deduction)
  • Withdrawal amount (already deducted)
  • Payment method selected
  • Customer notes (bank details, addresses, special instructions)
  • Submission timestamp

Customer Notes

Customer-provided information typically includes:

  • For Bank Transfer: Account number, IBAN, bank name, account holder name
  • For Check: Mailing address, recipient name
  • For Cash Pickup: Preferred location, ID details
  • For Western Union: Receiver name, location, phone number

Wallet Transaction Reference

  • Link to debit transaction in wallet history
  • Shows funds were deducted upon request submission
  • Transaction reference: "Withdrawal request #[ID] pending approval"

Review Information (if processed)

  • Reviewing admin name
  • Review timestamp
  • Rejection reason (if rejected)
  • Transaction reference (if approved)

Understanding Withdrawal Flow

Key Concept: Immediate Deduction

Unlike deposits, withdrawal funds are deducted immediately when customer submits request:

  1. Customer submits withdrawal request
  2. System checks if sufficient balance exists
  3. Funds immediately deducted from wallet
  4. Funds held pending admin approval
  5. Two possible outcomes:
  6. Approved: Transfer completed, funds already deducted
  7. Rejected: Funds refunded back to wallet

Why Immediate Deduction?

  • Prevents customers from using same funds multiple times
  • Reserves funds for the withdrawal
  • Protects against insufficient balance at approval time
  • Clear audit trail of pending withdrawals

Example Scenario

Initial wallet balance: $1,000

Customer submits withdrawal: $300
→ Wallet balance immediately: $700
→ Request status: Pending
→ Wallet transaction: Debit $300 (reference: withdrawal_request_pending)

Admin Approves:
→ Request status: Approved
→ Wallet balance: $700 (no change, already deducted)
→ Admin processes bank transfer to customer
→ No additional wallet transaction needed

OR

Admin Rejects:
→ Request status: Rejected
→ Wallet balance: $1,000 (refunded)
→ Wallet transaction: Credit $300 (reference: withdrawal_request_refund)

Processing Withdrawal Requests

Approving a Withdrawal

Approve Withdrawal Request

Click Approve on a pending request after verifying customer details and processing transfer.

Approval Process:

  1. Review Request Details:
  2. Verify customer identity
  3. Check provided payment information (account details, address)
  4. Confirm withdrawal amount
  5. Review customer notes for special instructions

  6. Process External Transfer:

  7. Bank Transfer: Send transfer to provided account
  8. Check: Mail check to provided address
  9. Cash Pickup: Prepare cash at specified location
  10. Western Union: Initiate transfer and obtain MTCN

  11. Click Approve Button: Confirms withdrawal completed

  12. Automatic Actions:

  13. Request status changed to "Approved"
  14. Reviewed by and reviewed at fields set
  15. Customer notified that withdrawal is being processed
  16. No wallet change (funds already deducted)

  17. Post-Approval Tasks:

  18. Provide customer with tracking details (MTCN, tracking number, check number)
  19. Update customer via email/SMS if needed
  20. Keep proof of transfer for records

Important Notes:

  • ✅ Complete external transfer BEFORE clicking approve
  • ✅ Funds were already deducted when request was submitted
  • ✅ Approval confirms you've initiated the external transfer
  • ⚠️ Cannot undo approval (contact customer for refund/correction)

Rejecting a Withdrawal

Reject Withdrawal Request

Click Reject on a pending request if withdrawal cannot be processed.

Rejection Form:

Rejection Reason Required

  • Type: Textarea
  • Purpose: Explain why withdrawal was rejected
  • Customer Visibility: Customer receives this message
  • Required: Must provide clear explanation

Common Rejection Reasons:

  • "Invalid bank account details provided. Please resubmit with correct account number and IBAN."
  • "Account holder name does not match your registered name. For security reasons, we can only transfer to accounts in your name."
  • "Mailing address incomplete. Please provide full address including postal code."
  • "Insufficient identification provided. Please contact support to verify your identity before withdrawing."
  • "Withdrawal amount exceeds daily limit. Please submit smaller amounts or wait 24 hours."
  • "Payment method temporarily unavailable. Please try alternative withdrawal method."
  • "Duplicate request detected. Please wait for request #[ID] to be processed."

Rejection Process:

  1. Enter Rejection Reason: Provide clear, helpful explanation
  2. Click Reject: Confirms rejection
  3. Automatic Actions:
  4. Request status changed to "Rejected"
  5. Funds refunded back to wallet immediately
  6. Refund transaction created:
    • Type: Credit
    • Description: "Withdrawal request #[ID] rejected - refund"
    • Reference: withdrawal_request_refund
  7. Customer notified with rejection reason
  8. Reviewed by and reviewed at fields set

  9. Result:

  10. Customer wallet balance restored to pre-request amount
  11. Customer can submit new request with corrections
  12. Original request remains in system for audit

Important: Always refund promptly - customer cannot use funds while request is pending.


Withdrawal Request Workflow

Customer Side

  1. Customer navigates to Wallet > Withdrawal page
  2. Checks current balance and available withdrawal amount
  3. Selects payment method from available offline methods
  4. Enters withdrawal amount
  5. Provides details in notes:
  6. Bank account information
  7. Mailing address
  8. Pickup location
  9. Any special instructions
  10. Submits request
  11. Funds immediately deducted from wallet
  12. Awaits admin approval - cannot use withdrawn funds

Admin Side

  1. Receives notification of new withdrawal request
  2. Reviews request in Withdrawal Requests list
  3. Opens request to view details and customer notes
  4. Verifies customer information:
  5. Identity confirmation
  6. Account/address validity
  7. Compliance with withdrawal policies
  8. Decision Path A - Approve:
  9. Process external transfer (bank, check, cash, etc.)
  10. Obtain confirmation/tracking number
  11. Click Approve in system
  12. Provide tracking details to customer (optional)
  13. Decision Path B - Reject:
  14. Identify issue with request
  15. Click Reject
  16. Enter detailed rejection reason
  17. System refunds funds to wallet automatically
  18. Customer notified of decision

System Processing

On Request Submission:

1. Check wallet balance >= withdrawal amount
2. Deduct amount from wallet:
   - Create debit transaction
   - Description: "Withdrawal request #[ID] pending approval"
   - Reference: withdrawal_request_pending
   - Reference ID: [Request ID]
3. Create withdrawal request:
   - Status: Pending
   - Amount: [Requested amount]
4. Notify admins of new request

On Approval:

1. Update request:
   - Status: Approved
   - Reviewed by: [Admin]
   - Reviewed at: [Timestamp]
2. Send notification to customer:
   - "Your withdrawal is being processed"
   - "Payment will be transferred shortly"
3. No wallet changes (already deducted)

On Rejection:

1. Refund to wallet:
   - Create credit transaction
   - Description: "Withdrawal request #[ID] rejected - refund"
   - Reference: withdrawal_request_refund
   - Reference ID: [Request ID]
   - Amount: [Original withdrawal amount]
2. Update request:
   - Status: Rejected
   - Rejection reason: [Admin message]
   - Reviewed by: [Admin]
   - Reviewed at: [Timestamp]
3. Send notification to customer:
   - "Your withdrawal request has been rejected"
   - [Rejection reason]
   - "The funds have been refunded to your wallet"

Withdrawal Policies and Limits

Configurable Limits

Set in System Settings:

  • Minimum Withdrawal Amount: Prevent very small withdrawals
  • Maximum Withdrawal Amount: Limit large single withdrawals
  • Daily/Weekly Limits: (if implemented) Control withdrawal frequency

Security Measures

Identity Verification:

  • Verify account holder name matches registered name
  • Request additional ID for large amounts
  • Confirm contact information is current

Fraud Prevention:

  • Watch for suspicious patterns (rapid multiple requests)
  • Verify recently registered accounts carefully
  • Be cautious with unusual payment destinations
  • Confirm customer is reachable before large transfers

Compliance:

  • Follow local regulations for money transfer
  • Maintain records for tax/audit purposes
  • Report suspicious activity per local laws

Withdrawal Request Filters

Use filters to find specific requests:

Status Filter

  • All: Show all requests
  • Pending: Awaiting processing (priority queue)
  • Approved: Completed withdrawals
  • Rejected: Declined requests with refunds

Payment Method Filter

  • Filter by withdrawal method
  • Useful for batch processing same transfer type

Date Range Filter

  • Filter by submission date
  • Find requests from specific period
  • Search by customer name or email
  • Find all withdrawal requests from specific customer

Amount Range

  • Filter by withdrawal amount
  • Find large withdrawals for extra verification

Best Practices

Process Promptly

Why Speed Matters:

  • Funds locked during pending state
  • Customer cannot use withdrawn amount
  • Delays impact customer trust
  • Faster processing = better experience

Recommended Timing:

  • Review new requests within 24 hours
  • Process small amounts (<$100) same day
  • Large amounts may require additional verification time
  • Communicate expected processing time to customers

Verify Thoroughly

For Bank Transfers:

  • ✅ Correct account number format
  • ✅ Valid IBAN/routing number
  • ✅ Bank name is real
  • ✅ Account holder name matches customer

For Mailed Checks:

  • ✅ Complete address with postal code
  • ✅ Recipient name correct
  • ✅ Address is deliverable

For Cash Pickup:

  • ✅ Valid ID provided
  • ✅ Pickup location specified
  • ✅ Contact number reachable

For Western Union/MoneyGram:

  • ✅ Receiver name exact
  • ✅ Location country correct
  • ✅ Phone number valid

Communicate Clearly

For Approvals:

  • Send confirmation with timeline
  • Provide tracking information when available
  • Set expectations for fund arrival
  • Offer support contact for issues

For Rejections:

  • Explain specific issue clearly
  • Provide guidance on correction
  • Mention funds are refunded
  • Encourage resubmission after fixing issue

Example Good Approval Message:

Your withdrawal request #1234 has been approved.

Bank transfer of $500 has been initiated to:
Account: ****1234
Bank: ABC Bank

Expected arrival: 1-2 business days

You will receive a notification once the transfer completes.

Example Good Rejection Message:

Your withdrawal request #1234 has been rejected for
the following reason:

The bank account number you provided (1234567) is invalid.
Account numbers for ABC Bank must be 10 digits.

Your funds ($500) have been refunded to your wallet
and are available for immediate use.

Please submit a new withdrawal request with the correct
account number. If you need assistance, contact our
support team.

Handle Edge Cases

Insufficient Details:

  • Reject with specific information needed
  • Don't assume or guess details
  • Better to reject and request clarification

Changed Customer Mind:

  • If customer requests cancellation before approval, reject
  • Use rejection reason: "Withdrawal canceled at customer request"
  • Funds refund automatically

External Transfer Failed:

  • If bank rejects transfer after approval, contact customer
  • May need to create manual wallet credit adjustment
  • Document in notes

Duplicate Requests:

  • Check if multiple requests for same purpose
  • Approve first, reject subsequent with reference to approved request

Troubleshooting

Cannot Approve Request

Possible Reasons:

  • Request already processed
  • User account disabled
  • Withdrawal feature disabled in settings
  • Insufficient admin permissions

Solution: Check request status and user account status

Refund Not Working on Rejection

System Design: Refund is automatic upon rejection

If Issue Persists:

  • Check wallet transaction history
  • Verify no system errors
  • Contact technical support
  • Manual credit may be needed

Customer Complains About Deduction

Explanation:

  • Funds deducted immediately upon request submission
  • This is normal and prevents double-spending
  • Refunded automatically if request rejected
  • Transferred externally if approved

Show Customer:

  • Withdrawal request status
  • Wallet transaction with pending reference
  • Expected processing time

Bank Transfer Failed

After Approval:

  • Already marked as approved in system
  • Need to handle externally

Steps:

  1. Contact customer to verify details
  2. Retry transfer with correct information
  3. If cannot complete:
  4. Create manual wallet credit adjustment
  5. Document reason in wallet transaction description
  6. Notify customer of resolution

Currency Selection (Multi-Currency Wallets)

![Withdrawal Request Currency Selection]

When multi-currency wallets are enabled, customers can choose which currency wallet to withdraw funds from.

How Currency Selection Works

When Multi-Currency is Enabled:

  • Customer sees currency dropdown during withdrawal request creation
  • Can select any wallet they have with available balance
  • Funds will be withdrawn from the selected currency wallet
  • Each currency has separate balance and transactions

When Multi-Currency is Disabled (default):

  • No currency selection available
  • All withdrawals come from base currency wallet
  • Simpler flow for single-currency stores

Admin View of Currency-Specific Withdrawals

In the withdrawal requests list:

  1. Currency Column: Shows which currency customer selected
  2. Amount Column: Shows amount in the selected currency
  3. Wallet Deduction: Funds deducted from customer's wallet in the selected currency

Example:

  • Customer selects EUR wallet
  • Withdraws €100 via bank transfer
  • Funds immediately deducted from EUR wallet
  • Admin processes and approves request
  • Customer receives €100 via bank transfer
  • (USD wallet balance unchanged)

Configuration

To enable currency selection:

  1. Navigate to System Settings → Advanced Tab
  2. Enable "Enable Multi-Currency Wallets"
  3. Save changes

See Multi-Currency Wallets for detailed configuration.


Request Limits

Request Limits

Administrators can limit how many pending withdrawal requests each customer can have simultaneously.

Maximum Pending Withdrawal Requests

Purpose: Prevent abuse and manage processing workload

Configuration:

  1. Navigate to System Settings → Advanced Tab → Wallet Settings
  2. Set "Max Pending Withdrawal Requests" (default: 1)
  3. Save changes

How It Works:

  • System counts customer's pending withdrawal requests
  • If limit reached, customer cannot submit new withdrawal request
  • Customer must wait for admin to approve/reject existing request
  • Approved and rejected requests don't count toward limit (only pending)

Example Scenarios:

Limit = 1 (default):

  • Customer submits withdrawal request #201 → Status: Pending
  • Customer tries to submit another withdrawal → Blocked: "You already have 1 pending withdrawal request. Please wait for processing."
  • Admin approves or rejects request #201
  • Customer can now submit new withdrawal request

Limit = 3:

  • Customer can have up to 3 pending withdrawals at once
  • Useful for high-volume businesses or multi-currency scenarios
  • Customer with USD, EUR, and SAR wallets can withdraw from each simultaneously

Benefits of Request Limits

  1. Prevents Abuse: Stops fraudulent multiple withdrawal attempts
  2. Controls Cash Flow: Manageable outflow of funds
  3. Admin Efficiency: Reasonable queue of requests to process
  4. Fraud Prevention: Limits suspicious withdrawal patterns
  5. Balance Protection: Ensures customer has sufficient funds before additional requests

Customer Experience

When customer reaches limit:

  1. Withdrawal Button Disabled: Can't create new request
  2. Clear Message: "You have reached the maximum number of pending withdrawal requests (1). Please wait for your current request to be processed."
  3. Funds Locked: Withdrawn amounts remain deducted until processing completes
  4. After Processing: Can submit new request once admin approves/rejects

Important: Rejected requests automatically refund funds, but approved requests don't (funds already deducted and transferred externally).

Adjusting Limits

Lower Limit (1 request):

  • Strictest control
  • Maximum fraud prevention
  • Recommended for most stores
  • Simple for customers to understand

Higher Limit (2-3 requests):

  • More flexibility for customers
  • Useful for multi-currency wallets
  • Business/corporate customers
  • High-trust customer base

Configuration: See System Settings - Max Pending Withdrawal Requests


Key Information

  • Immediate Deduction: Funds removed from wallet when request submitted, not when approved
  • Refund on Rejection: Rejected requests automatically refund funds to wallet
  • No Wallet Change on Approval: Funds already deducted, approval confirms external transfer
  • Admin Responsibility: Complete external transfer before clicking approve
  • Cannot Undo: Approved requests cannot be reversed in system
  • Audit Trail: All requests and refunds tracked in wallet transactions
  • Customer Blocked: Customer cannot use withdrawn funds while request pending
  • Security First: Always verify customer identity and details before approval

Configure withdrawal features in System Settings: