The Stripe v2 plugin uses an older version of the Stripe Checkout API, which has a couple of known limitations. Both can be resolved by upgrading to Stripe v3, which is also SCA-compliant for European markets.
Checkout doesn't work in Android webviews
Stripe v2 uses an iFrame overlay for desktop and detects mobile devices via the browser's user agent to decide how to render. Android webviews are flagged as incompatible with the iFrame approach, so Stripe redirects to a separate checkout page instead of showing the popup. This detection is made by Stripe, not Bubble.
What you might notice:
Stripe checkout opens in a new page instead of as a popup when accessed from an Android webview
The checkout popup works correctly on desktop and iOS
Workaround: Upgrade to the Stripe v3 plugin. It uses a separate checkout page for all devices by design and doesn't have this webview limitation.
Limited language support
Stripe v2 uses an older Checkout API with limited language support. Languages like Portuguese aren't included, so if Stripe detects an unsupported language, the checkout UI falls back to English — regardless of how your Bubble app's language is configured.
What you might notice:
The Stripe checkout UI displays in English even though your app is set to a different language
The issue only affects Stripe v2 — v3 has much broader language support
Workaround: Upgrade to Stripe v3, which supports a wider range of languages including Portuguese. You can find the full list of supported languages in the Stripe v2 documentation.
