Wallet Transfers¶
Purpose¶
View and monitor peer-to-peer wallet transfers between customers. Track fund movements as customers send money to each other using their unique user identifiers.
Accessing Wallet Transfers¶
Navigate to: Delivery & Payments > Wallet Transfers from the sidebar
List View¶

The list displays all wallet-to-wallet transfers between customers.
Table Columns¶
Transfer ID¶
- Format: Number with # prefix
- Purpose: Unique identifier for this transfer
- Sortable: Yes (default: newest first)
Sender¶
- Format: Text (customer name)
- Purpose: Customer who sent the money
- Clickable: Links to sender's profile
Sender Identifier¶
- Format: 12-character code (hidden by default)
- Purpose: Sender's unique user identifier
- Example: ABCD1234EFGH
Receiver¶
- Format: Text (customer name)
- Purpose: Customer who received the money
- Clickable: Links to receiver's profile
Receiver Identifier¶
- Format: 12-character code (hidden by default)
- Purpose: Receiver's unique user identifier
- Example: WXYZ5678IJKL
Amount¶
- Format: Money value (color-coded green)
- Purpose: Transfer amount
- Note: Always in base currency
Status¶
- Format: Colored badge
- Purpose: Transfer completion status
- Values:
- Completed (Green): Transfer successful
- Failed (Red): Transfer failed (rare)
Transfer Date¶
- Format: Timestamp
- Purpose: When transfer was executed
Notes¶
- Format: Text (truncated with tooltip)
- Purpose: Sender's optional message/notes
- Visible: To both sender and receiver
Row Actions¶
- View: See complete transfer details
Bulk Actions¶
- Export: Export transfer data to Excel/CSV
Viewing Transfer Details¶

Click View to see complete transfer information:
Transfer Information¶
- Transfer ID and status
- Sender name, email, and user identifier
- Receiver name, email, and user identifier
- Transfer amount
- Sender's notes (if provided)
- Transfer timestamp
Wallet Transactions¶
Each transfer creates two wallet transactions:
Sender's Wallet:
- Type: Debit
- Description: "Transfer to [Receiver Name]"
- Reference Type: transfer_sent
- Balance Before/After
Receiver's Wallet:
- Type: Credit
- Description: "Transfer from [Sender Name]"
- Reference Type: transfer_received
- Balance Before/After
Links to both transactions provided for audit trail.
How Wallet Transfers Work¶
Customer Perspective¶
For Sender:
- Navigate to Wallet > Transfer page
- View current balance and transfer limits
- Enter receiver's user identifier (12-character code)
- System validates identifier and shows receiver name
- Enter amount to transfer (within limits)
- Add optional notes (purpose, message)
- Confirm transfer
- Funds immediately transferred:
- Deducted from sender's wallet
- Added to receiver's wallet
- Receiver notified of incoming transfer
For Receiver:
- Receives notification of incoming transfer
- Funds immediately available in wallet
- Can view transfer details and sender's notes
- Can use funds right away for purchases or withdrawal
Admin Perspective¶
Administrators have a view-only role for wallet transfers:
What Admins Can Do:
- ✅ View all transfers
- ✅ Search and filter transfers
- ✅ Export transfer records
- ✅ Monitor for suspicious activity
- ✅ Investigate customer complaints
What Admins Cannot Do:
- ❌ Cannot create transfers on behalf of customers
- ❌ Cannot cancel or reverse transfers
- ❌ Cannot modify transfer amounts
- ❌ Cannot edit transfer records
Why View-Only?
- Transfers are instant and atomic
- No approval process needed
- Cannot be reversed (by design)
- Customer-to-customer transactions
- System handles all validations automatically
Transfer Workflow¶
System Processing¶
Validation Phase:
1. Check sender is not receiver (no self-transfer)
2. Verify receiver identifier exists
3. Verify sender has sufficient balance
4. Check amount within configured limits:
- >= Minimum transfer amount
- <= Maximum transfer amount
5. Verify wallet transfers enabled in settings
6. Verify sender's wallet is active
Execution Phase (Atomic Transaction):
1. Begin database transaction
2. Get/create receiver's wallet
3. Deduct from sender's wallet:
- Create debit transaction
- Description: "Transfer to [Receiver Name]"
- Reference: transfer_sent
4. Credit to receiver's wallet:
- Create credit transaction
- Description: "Transfer from [Sender Name]"
- Reference: transfer_received
5. Create transfer record:
- Status: Completed
- Store all details
6. Commit database transaction (all-or-nothing)
7. Notify receiver of incoming transfer
If Any Step Fails:
- Entire transaction rolls back
- No partial transfers
- Sender keeps funds
- Error shown to sender
Example Scenario¶
Sender: John (User ID: ABCD1234EFGH)
- Current balance: $500
Receiver: Sarah (User ID: WXYZ5678IJKL)
- Current balance: $200
Transfer Details:
- Amount: $100
- Notes: "Payment for services"
After Transfer:
- John's balance: $400
- Sarah's balance: $300
- Transfer status: Completed
- John's wallet: Debit $100 (transfer_sent)
- Sarah's wallet: Credit $100 (transfer_received)
- Sarah receives: Email/SMS notification
User Identifiers Explained¶
What Is a User Identifier?¶
- Format: 12-character alphanumeric code (uppercase)
- Example: ABCD1234EFGH
- Purpose: Unique identifier for wallet transfers
- Generation: Automatically assigned to each customer
- Uniqueness: No two customers have the same identifier
Why Use Identifiers Instead of Email/Phone?¶
Security:
- Don't expose personal information (email/phone) during transfers
- Reduces phishing risks
- Protects customer privacy
Simplicity:
- Easy to share and verify
- No special characters or formatting issues
- Works across all countries/languages
Reliability:
- Never changes (unlike email/phone which customers may update)
- No typos with email domains
- No phone number format confusion
Where Customers Find Their Identifier¶
Customers can view their own user identifier in:
- Wallet page (prominently displayed)
- Profile/account settings
- Transfer page
- Can share with others to receive transfers
How Identifier Validation Works¶
During Transfer:
- Customer enters receiver's identifier
- System validates format (12 characters, alphanumeric)
- System looks up identifier in database
- If found: Shows receiver's name for confirmation
- If not found: Shows error "User identifier not found"
- Case insensitive: ABCD1234EFGH = abcd1234efgh = AbCd1234EfGh
Transfer Limits and Controls¶
Configurable Limits¶
Set in System Settings:
Minimum Transfer Amount¶
- Purpose: Prevent micro-transactions
- Default: $1.00
- Example Use: Reduce processing overhead
- Customer Impact: Cannot transfer less than minimum
Maximum Transfer Amount¶
- Purpose: Limit large single transfers
- Default: $1,000.00
- Example Use: Fraud prevention, regulatory compliance
- Customer Impact: Must split large transfers
Enable/Disable Transfers¶
- Toggle: Turn entire transfer feature on/off
- When Disabled: Transfer option hidden from customers
- Effect: Existing transfers still visible, new transfers blocked
Validation Rules¶
System Enforces:
- ✅ Minimum amount respected
- ✅ Maximum amount respected
- ✅ Sufficient sender balance
- ✅ No self-transfers
- ✅ Valid receiver identifier
- ✅ Active sender wallet
- ✅ Transfers enabled globally
Not Enforced (by design):
- ❌ No daily/weekly limits (configurable if needed)
- ❌ No velocity checks (number of transfers per hour)
- ❌ No recipient verification (beyond identifier)
Wallet Transfer Filters¶
Use filters to find specific transfers:
Sender Filter¶
- Search by sender name or email
- Find all transfers sent by specific customer
Receiver Filter¶
- Search by receiver name or email
- Find all transfers received by specific customer
Amount Range¶
- Filter by transfer amount
- Find large transfers for monitoring
Date Range¶
- Filter by transfer date
- View transfers from specific period
Status Filter¶
- Completed: Successful transfers (vast majority)
- Failed: Rare system errors
Monitoring and Security¶
What to Monitor¶
Suspicious Patterns:
- 🚩 Multiple transfers to same receiver in short time
- 🚩 Round-robin transfers (A→B→C→A)
- 🚩 Many small transfers just below limits
- 🚩 New account with immediate large transfers
- 🚩 Rapid succession of maximum amount transfers
Legitimate Patterns:
- ✅ Occasional transfers for goods/services
- ✅ Family/friend transactions
- ✅ Varied receivers and amounts
- ✅ Reasonable timing
Fraud Prevention¶
Red Flags:
- Account created recently with large transfers
- Customer complaints about unauthorized transfers
- Transfer patterns suggesting money laundering
- Multiple accounts with same payment methods transferring to each other
Actions:
- Monitor flagged patterns
- Contact customers for verification
- Disable user accounts if fraud confirmed
- Report serious cases per local regulations
Limitations:
- Cannot reverse completed transfers
- Cannot block specific receiver/sender pairs
- Cannot set user-specific limits
Customer Disputes¶
"I didn't authorize this transfer":
- Verify transfer details
- Check sender's login history
- Review if account compromised
- Cannot reverse transfer, but can:
- Disable account for security
- Investigate fraud
- Contact receiver if needed
- Assist with police report if fraud confirmed
"I sent to wrong person":
- Verify receiver identifier used
- Confirm transfer completed
- Cannot reverse automatically
- Options:
- Contact receiver and request voluntary return
- Receiver can initiate return transfer
- No system-level reversal available
"Amount is wrong":
- Show transfer record
- Show wallet transactions (debit/credit)
- Confirm amounts match
- If system error (rare), escalate to technical support
Best Practices¶
Regular Monitoring¶
Daily Tasks:
- Review large transfers (above certain threshold)
- Check for suspicious patterns
- Monitor transfer volume trends
Weekly Tasks:
- Export transfer reports
- Analyze transfer statistics
- Review any customer complaints
Monthly Tasks:
- Reconcile transfer volumes
- Update monitoring rules if needed
- Review and adjust limits if appropriate
Customer Education¶
Advise Customers:
- ✅ Verify receiver identifier before confirming
- ✅ Double-check amount before sending
- ✅ Use notes field for reference
- ✅ Keep their user identifier private (only share with trusted recipients)
- ✅ Transfers are instant and cannot be reversed
Warning About:
- ⚠️ Cannot undo transfers
- ⚠️ Verify receiver before sending
- ⚠️ No chargeback option
- ⚠️ Be careful of scams
Record Keeping¶
Export Regularly:
- Transfer records for accounting
- Monthly reports for compliance
- Audit trails for disputes
Maintain:
- Customer complaints log
- Fraud investigation notes
- Suspicious pattern reports
Troubleshooting¶
Customer Cannot Send Transfer¶
Possible Reasons:
- Insufficient balance
- Amount below minimum or above maximum
- Wallet transfers disabled in settings
- Invalid receiver identifier
- Attempting self-transfer
- Wallet not active
Resolution: Guide customer to check balance and identifier
Transfer Not Showing¶
Check:
- Transfer status (completed vs. failed)
- Both sender and receiver wallet transactions
- Date range filters
- Search spelling
Duplicate Transfer Concern¶
Investigation:
- Check transfer records
- Each transfer has unique ID
- Compare timestamps
- Verify wallet transaction history
Explanation:
- If customer clicked twice, might create two transfers
- Each is separate valid transaction
- Cannot automatically merge or reverse
Currency Selection (Multi-Currency Wallets)¶
When multi-currency wallets are enabled, customers must select which currency wallet to transfer funds from, and the recipient must have a wallet in the same currency.
How Currency Selection Works¶
When Multi-Currency is Enabled: - Customer selects currency when initiating transfer - Can only transfer from wallets they own (USD, EUR, SAR, etc.) - Recipient must have wallet in same currency - If recipient doesn't have matching currency wallet, it's created automatically - Each currency transfer is independent
When Multi-Currency is Disabled (default): - No currency selection needed - All transfers use base currency - Simpler flow for single-currency stores
Currency Transfer Rules¶
Same Currency Requirement: - USD wallet → USD wallet only - EUR wallet → EUR wallet only - Cannot transfer USD to EUR wallet - No automatic currency conversion
Example: - Alice has USD wallet with $500 and EUR wallet with €300 - Alice wants to send $100 to Bob - Alice selects USD currency for transfer - System deducts $100 from Alice's USD wallet - Bob receives $100 in his USD wallet (created if doesn't exist) - Alice's EUR wallet unchanged (€300 remains)
Admin View of Currency-Specific Transfers¶
In the transfers list:
- Currency Column: Shows which currency was transferred
- Amount Column: Shows amount in the specified currency
- Transaction Records: Both sender and receiver have transactions in that currency
Important: Admins can view but cannot create or modify transfers (customer-only feature).
Configuration¶
To enable currency selection:
- Navigate to System Settings → Advanced Tab
- Enable "Enable Multi-Currency Wallets"
- Save changes
See Multi-Currency Wallets for detailed configuration.
Transfer Amount Limits¶

Administrators can set minimum and maximum amounts for wallet-to-wallet transfers to prevent spam and fraud.
Minimum Transfer Amount¶
Purpose: Prevent micro-transactions and spam transfers
Configuration: 1. Navigate to System Settings → Advanced Tab → Wallet Settings 2. Set "Minimum Transfer Amount" (default: $1.00) 3. Only visible when "Enable Wallet Transfers" is ON 4. Save changes
How It Works: - Customer cannot transfer less than the minimum amount - Validation occurs before transfer is executed - Clear error message shown if amount too low - Prevents processing overhead from tiny transfers
Example Scenarios:
Minimum = $1.00 (default): - Customer tries to transfer $0.50 → Blocked: "Minimum transfer amount is $1.00" - Customer transfers $1.00 → Allowed - Customer transfers $5.00 → Allowed
Minimum = $10.00: - Stricter control - Reduces small gift/spam transfers - Better for high-value businesses
Maximum Transfer Amount¶
Purpose: Fraud prevention and money laundering prevention
Configuration: 1. Navigate to System Settings → Advanced Tab → Wallet Settings 2. Set "Maximum Transfer Amount" (default: $10,000.00) 3. Only visible when "Enable Wallet Transfers" is ON 4. Save changes
How It Works: - Customer cannot transfer more than the maximum amount - Validation occurs before transfer is executed - Clear error message shown if amount exceeds limit - Controls large value movements through the system
Example Scenarios:
Maximum = $10,000 (default): - Customer tries to transfer $15,000 → Blocked: "Maximum transfer amount is $10,000.00" - Customer transfers $10,000 → Allowed (at the limit) - Customer transfers $5,000 → Allowed
Maximum = $1,000: - Tighter control - Suitable for consumer-focused stores - Reduces fraud risk
Benefits of Transfer Limits¶
- Spam Prevention: Minimum limit stops micro-transaction spam
- Fraud Control: Maximum limit prevents large fraudulent transfers
- Compliance: Helps meet anti-money laundering (AML) requirements
- Risk Management: Controls financial exposure
- User Experience: Clear expectations for customers
Customer Experience with Limits¶
Below Minimum: - Transfer form shows validation error - Message: "Transfer amount must be at least $X.XX" - Customer increases amount to proceed
Above Maximum: - Transfer form shows validation error - Message: "Transfer amount cannot exceed $X,XXX.XX" - Customer can split into multiple smaller transfers (if needed)
Within Limits: - Transfer proceeds normally - No additional friction
Adjusting Limits Strategy¶
Conservative Limits (Recommended for most stores): - Minimum: $1.00 - $5.00 - Maximum: $1,000 - $5,000 - Lower risk - Suitable for retail/consumer stores
Permissive Limits (For established businesses): - Minimum: $0.01 - $1.00 - Maximum: $10,000 - $50,000 - More flexibility - Trust established with customers
Restrictive Limits (For high-risk scenarios): - Minimum: $10.00 - $20.00 - Maximum: $500 - $1,000 - Maximum fraud prevention - Suitable for new stores or high-fraud environments
Configuration: See System Settings - Transfer Limits
Multi-Currency and Transfer Limits¶
Important: Transfer limits apply to each currency independently based on base currency conversion.
Example: - System has $1 minimum and $10,000 maximum - For EUR transfers: €1 minimum, €10,000 maximum (approximate, based on exchange rate) - For SAR transfers: 5 SAR minimum, 50,000 SAR maximum (approximate)
Note: Limits are evaluated in the currency being transferred, converted from base currency limits.
Key Information¶
- Instant Transfer: Funds move immediately, no delay or approval needed
- Cannot Reverse: Transfers are final once completed
- View Only for Admins: Admins cannot create, modify, or cancel transfers
- Atomic Transactions: All-or-nothing execution prevents partial transfers
- Privacy Protected: Uses user identifiers instead of email/phone
- Case Insensitive: Identifier validation works regardless of case
- Automatic Wallets: Receiver wallet created automatically if doesn't exist
- Dual Transactions: Every transfer creates debit + credit transaction pair
- Real-Time Notifications: Receiver notified immediately
- Audit Trail: Complete history preserved for both parties
Related Configuration¶
Configure transfer features in System Settings:
- Enable Wallet Transfers - Turn transfer feature on/off
- Minimum Transfer Amount - Set minimum allowed
- Maximum Transfer Amount - Set maximum allowed
- Wallet Visibility - Show/hide wallet from customers
Related Sections¶
- User Wallets - View customer wallet balances
- Wallet Transactions - See all wallet activity including transfers
- Users - Customer account management and user identifiers
- Wallet Deposit Requests - How customers add funds
- Wallet Withdrawal Requests - How customers withdraw funds