SMART_E_WALLET enables merchants to connect with a wide range of digital wallets across different markets using a single API abstraction. These wallets support various interaction models — including redirect, app switch, and embedded flows — with the optimal flow dynamically selected at runtime.
The smart routing engine intelligently chooses the appropriate wallet method based on:
Market
Device type
Currency
Merchant configuration
User context
💳 Supported E-Wallet Methods
Wallet Method
Regions
Notes
Alipay
China (tourists globally)
QR scan, redirect, or deep link
WeChat Pay
China
WeChat mini program or redirect
PayPal
Global
App switch, redirect, supports vaulting
Skrill
Europe
Login-based redirect
Neteller
Europe
Popular in gaming and betting
QIWI
Russia / CIS
Phone/SMS-based wallet
Payeer
Eastern Europe, CIS
Supports fiat and crypto
WebMoney
Russia / CIS
Requires KYC; legacy usage
Venmo
United States
P2P and merchant payments via PayPal
Cash App Pay
United States
QR-initiated payment
GrabPay
Southeast Asia
App-based, supports QR fallback
AstroPay
Global / LATAM
Prepaid cards and wallets
Mercado Pago
LATAM
Linked to MercadoLibre
DOKU Wallet
Indonesia
Localized IDR-based payments
TrueMoney Wallet
Thailand
QR, redirect, app switch
Satispay
Italy
Mobile wallet linked to phone number
GCash
Philippines
Mainstream local wallet
mPay
Thailand
Mobile telco wallet
Dana
Indonesia
Wallet + QR support
GoPay
Indonesia
Ride-share linked wallet
MoMo
Vietnam
Market leader in digital wallet
ShopeePay
Southeast Asia
Connected to e-commerce platform
dBarai
Japan
Docomo mobile carrier wallet
Merpay
Japan
Linked to Mercari marketplace
📤 Request: SmartEWalletPayload
Field
Type
Required?
Description
paymentMethod
ApmMethod
Yes (default)
Always SMART_E_WALLET
paymentType
ApmFlowType
Yes (default)
Always E_WALLET
walletId
String?
Optional
Pre-selected or vaulted wallet ID
walletCredential
String?
Optional
Token or credential used for auto-login or auth
walletCurrency
String?
Optional
Optional override for wallet currency
walletHolderEmail
String?
Optional
Email for user reconciliation or compliance
walletHolderName
String?
Optional
Wallet user’s full name, used for display or validation
userToken
String?
Optional
Token for session-based routing and continuity
userId
String?
Optional
Merchant's internal or external user ID for user association
📥 Response: SmartEWalletResponseData
Field
Type
Required?
Description
paymentMethod
ApmMethod
Yes
Always SMART_E_WALLET
paymentType
ApmFlowType
Yes
Always E_WALLET
redirectUrl
String?
Optional
Redirect the user to this URL to complete the payment
iframeUrl
String?
Optional
If supported, use this for an embedded experience
providerTransactionId
String
✅
External transaction reference from the provider
sessionToken
String?
Optional
Token used for polling, continuation, or post-processing
walletHolderName
String?
Optional
Full name, if available from provider
walletMetadata
Map<String, String>?
Optional
Additional details (e.g., expiry, country code, display name)
walletId
String?
Optional
Echoed or resolved wallet ID
walletCredential
String?
Optional
Auth token returned for reuse or vaulting
walletCurrency
String?
Optional
Currency used in the transaction
walletHolderEmail
String?
Optional
Email tied to the transaction or wallet
userToken
String?
Optional
Echoed user token for tracking
userId
String?
Optional
Echoed user ID for consistency and mapping
✅ Best Practices
PasswalletHolderEmail and walletHolderName if required by the region or provider.
Use userTokenoruserId to link users across sessions and simplify routing logic.
Support bothredirectUrl and iframeUrl — display whichever is returned.
Consider vaultingwalletId and walletCredential to streamline future payments.
Use walletMetadata for post-payment display (e.g., wallet logo, account alias, or limits).
Gracefully handle failures or timeouts with a retry or fallback redirect.