Smart Mobile Wallets
The SMART_MOBILE_WALLET payment method enables merchants to accept payments through mobile-native wallet applications that support token-based payments, app-switching, and mobile authentication.
These wallets are often integrated at the OS or device level, providing customers with a secure and frictionless checkout experience. The Smart APM routing logic automatically selects the best wallet provider based on factors such as region, device type, and wallet availability, ensuring maximum conversion rates with minimal configuration.
Supported Mobile Wallets
| Wallet Provider | Markets Supported | Notes |
|---|---|---|
| Apple Pay | Global (iOS) | Token-based, secure element; requires Apple devices. |
| Google Pay | Global (Android) | Supports NFC, in-app, and tokenized payment flows. |
| Samsung Pay | Global | Embedded in Samsung devices; supports MST and NFC. |
| Huawei Pay | China | Exclusive to Huawei’s device ecosystem. |
| Mi Pay | China, India | Integrated with Xiaomi devices. |
| LG Pay | Korea | Device-native wallet solution from LG. |
| GrabPay | Southeast Asia | Popular wallet also categorized under e-wallets. |
| GCash | Philippines | Telco-backed wallet with QR code and app-based flows. |
| TrueMoney | Thailand | Commonly used for mobile top-ups and bill payments. |
| Paytm | India | Supports wallet and UPI-based payments. |
| PhonePe | India | Mobile-first wallet with UPI integration. |
Request Payload: SmartMobileWalletPayload
SmartMobileWalletPayload| Field | Type | Required? | Description |
|---|---|---|---|
paymentMethod | ApmMethod | Yes (default) | Must always be set to SMART_MOBILE_WALLET. |
paymentType | ApmFlowType | Yes (default) | Must always be MOBILE_WALLET. |
walletProvider | String | Yes | The specific wallet name (e.g., google_pay, apple_pay). |
walletPhoneNumber | String | Optional | Mobile number linked to the wallet for authentication or verification. |
walletUserId | String | Optional | Unique wallet-specific user identifier. |
walletSessionToken | String | Optional | Token used to resume or continue a previous wallet session. |
paymentToken | String | Optional | Token provided by the mobile wallet SDK for secure transactions. |
paymentTokenType | String | Optional | Indicates token type (e.g., EMV, PAN_ONLY). |
deviceId | String | Optional | Unique device identifier (UUID or platform-specific ID). |
deviceModel | String | Optional | Mobile device model (e.g., iPhone 14). |
deviceOs | String | Optional | Operating system name and version (e.g., iOS 17, Android 14). |
sdkVersion | String | Optional | Version of the wallet SDK used for integration. |
authorizationReference | String | Optional | Authentication reference (e.g., fingerprint or face authentication session). |
customFields | Map<String, String> | Optional | Additional provider-specific metadata fields for advanced integrations. |
Response Payload: SmartMobileWalletResponseData
SmartMobileWalletResponseData| Field | Type | Required? | Description |
|---|---|---|---|
paymentMethod | ApmMethod | Yes | Always returns SMART_MOBILE_WALLET. |
paymentType | ApmFlowType | Yes | Always returns MOBILE_WALLET. |
redirectUrl | String | Optional | URL to redirect the user for app-switch or browser-based checkout. |
iframeUrl | String | Optional | URL for embedding mobile wallet checkout flows within your application. |
providerTransactionId | String | Yes | Unique transaction reference provided by the mobile wallet provider. |
isFinal | Boolean | Optional | Indicates if no further user interaction is needed to complete the payment. |
displayMessage | String | Optional | A user-facing message during the wallet payment process. |
displayInstructions | String | Optional | UI guidance (e.g., “Switch back to your wallet app to complete payment”). |
sessionToken | String | Optional | Token for follow-up API calls or status polling. |
walletMetadata | Map<String, String>? | Optional | Provider-specific data for reconciliation, debugging, or audit purposes. |
Best Practices
- Routing: Explicitly set
walletProvider(e.g.,google_pay,paytm) for targeted payment flows. - Tokenization: Always provide
paymentTokenandpaymentTokenTypefor secure device-based tokenized transactions. - Device Validation: Validate
deviceOs,deviceId, andsdkVersionto ensure compatibility and compliance. - Hybrid Flows: Implement logic to handle both
redirectUrlanddisplayInstructionsfor smooth app-switch or web-based flows. - Metadata Handling: Capture and store
walletMetadatafor improved debugging, reporting, and dispute management.
Updated 8 days ago
