Skip to content

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

Wallet Transfers List

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

View Wallet Transfer

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:

  1. Navigate to Wallet > Transfer page
  2. View current balance and transfer limits
  3. Enter receiver's user identifier (12-character code)
  4. System validates identifier and shows receiver name
  5. Enter amount to transfer (within limits)
  6. Add optional notes (purpose, message)
  7. Confirm transfer
  8. Funds immediately transferred:
  9. Deducted from sender's wallet
  10. Added to receiver's wallet
  11. Receiver notified of incoming transfer

For Receiver:

  1. Receives notification of incoming transfer
  2. Funds immediately available in wallet
  3. Can view transfer details and sender's notes
  4. 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:

  1. Customer enters receiver's identifier
  2. System validates format (12 characters, alphanumeric)
  3. System looks up identifier in database
  4. If found: Shows receiver's name for confirmation
  5. If not found: Shows error "User identifier not found"
  6. 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":

  1. Verify transfer details
  2. Check sender's login history
  3. Review if account compromised
  4. Cannot reverse transfer, but can:
  5. Disable account for security
  6. Investigate fraud
  7. Contact receiver if needed
  8. Assist with police report if fraud confirmed

"I sent to wrong person":

  1. Verify receiver identifier used
  2. Confirm transfer completed
  3. Cannot reverse automatically
  4. Options:
  5. Contact receiver and request voluntary return
  6. Receiver can initiate return transfer
  7. No system-level reversal available

"Amount is wrong":

  1. Show transfer record
  2. Show wallet transactions (debit/credit)
  3. Confirm amounts match
  4. 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:

  1. Currency Column: Shows which currency was transferred
  2. Amount Column: Shows amount in the specified currency
  3. 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:

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

See Multi-Currency Wallets for detailed configuration.


Transfer Amount Limits

Transfer 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

  1. Spam Prevention: Minimum limit stops micro-transaction spam
  2. Fraud Control: Maximum limit prevents large fraudulent transfers
  3. Compliance: Helps meet anti-money laundering (AML) requirements
  4. Risk Management: Controls financial exposure
  5. 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

Configure transfer features in System Settings: