Wallets
Learn about wallet payments with Stripe.
Wallets let your customers pay online or in person, using either of the following:
- A saved payment credential (a tokenized card or bank account stored in the wallet).
- A stored wallet balance (funds held in an account with the wallet provider).
At checkout, the wallet typically authenticates your customer and passes payment details or a payment token to you or your payment processor. You don’t have to directly handle your customer’s sensitive data.
Considerations
Consider the following before you enable a wallet:
Coverage varies by country and device: Some wallets are tied to specific platforms or operating systems, or are only popular in certain regions.
Checkout and post-purchase flows can differ: The timing and behavior of refunds, disputes, and chargebacks can be different from those of card payments. Also, wallets often don’t offer the same level of customer support as cards.
In person versus online: Some wallets are primarily used for online payments, while others are primarily used for in-person payments (through NFC or QR codes). Make sure you enable the right type for your use case.
Wallets might not fit your business if you sell subscriptions. Some wallets don’t support recurring payments, and others have limited support (for example, requiring customer re-authentication, limiting merchant-initiated charges, or restricting retries). If subscriptions are core to your business, confirm that the wallet supports:
- Token or billing agreement creation for future charges.
- Merchant-initiated recurring transactions (where applicable).
- Updating and continuity when the underlying card changes.
- Your required retry and dunning behavior.
Payment flow
Customers confirm the transaction by authenticating their wallet credentials at checkout. If using mobile, they can authenticate with fingerprint or face recognition, their mobile passcode, or by logging into their wallet app. On the web, they can also scan a QR code with their mobile phone to complete the transaction.
Customer-facing mobile flow
Selects wallet at checkout
Enters wallet credentials
Gets notification that payment is complete
Customer-facing web flow
Selects wallet at checkout
Uses mobile to confirm payment
Gets notification that payment is complete
Product support
The following table shows which Stripe products support each wallet:
| Payment method | Connect | Checkout | Payment Links | Payment Element | Express Checkout Element | Mobile Payment Element | Subscriptions | Invoicing | Customer Portal | Terminal |
|---|---|---|---|---|---|---|---|---|---|---|
| Alipay | 1,2 | Invite only | Invite only | N/A (online payments only) | ||||||
| Amazon Pay | 3 | N/A (online payments only) | ||||||||
| Apple Pay7 | 5 | |||||||||
| Cash App Pay | N/A (online payments only) | |||||||||
| Google Pay7 | ||||||||||
| GrabPay | 1,2 | 4 | N/A (online payments only) | |||||||
| Link | 6 | N/A (online payments only) | ||||||||
| MB WAY | 1,2,3 | N/A (online payments only) | ||||||||
| MobilePay | 1,2 | N/A (online payments only) | ||||||||
| PayPal | 3 | N/A (online payments only) | ||||||||
| PayPay | 8 | 1,2,3 | N/A (online payments only) | |||||||
| Revolut Pay | N/A (online payments only) | |||||||||
| Samsung Pay | ||||||||||
| Satispay | N/A (online payments only) | |||||||||
| Vipps | 1,2 | N/A (online payments only) | ||||||||
| WeChat Pay | 1,2 | 4 | 4 | N/A (online payments only) |
1 Not supported when using Checkout in subscription mode.
2 Not supported when using Checkout in setup mode.
3 Not supported when saving payment details during payment (setup_).
4 Invoices and Subscriptions only support the send_ collection method.
5 Checkout with ui_mode set to embedded supports only Safari version 17 or later and iOS version 17 or later.
6 The Payment Element doesn’t support Link in Brazil or India.
7 Stripe doesn’t display Apple Pay or Google Pay for IP addresses in India.
8 Request an invite to use Connect.
API support
The following table describes each wallet’s compatibility with API-based payment flows:
| Payment method | API enum | PaymentIntents | SetupIntents | Manual capture | Setup future usage1 | Requires redirect2 |
|---|---|---|---|---|---|---|
| Alipay | alipay |
No | ||||
| Amazon Pay | amazon_ |
Yes | ||||
| Apple Pay | No | |||||
| Cash App Pay | cashapp |
Yes | ||||
| Google Pay | No | |||||
| GrabPay | grabpay |
Yes | ||||
| Link | link |
No | ||||
| MB WAY | mb_ |
No | ||||
| MobilePay | mobilepay |
Yes | ||||
| PayPal | paypal |
Yes | ||||
| PayPay | paypay |
Yes | ||||
| Revolut Pay | revolut_ |
Yes | ||||
| Secure Remote Commerce | A comma-separated list of accepted card brands | Yes | ||||
| Vipps | vipps |
Yes | ||||
| WeChat Pay | wechat_ |
No |
1 Cards and bank debit methods including SEPA debit, AU BECS direct debit, and ACSS debit support both on_ and off_ with setup future usage. All other payment method types either don’t support setup_ or only support off_.
2 Payment methods might require confirmation with return_url to indicate where Stripe should redirect your customer after they complete the payment.