Embedded Checkout
Why Embedded Checkout is web-only — and what to use on React Native instead.
Embedded Checkout is web-only by design. The hosted checkout page is an
iframe surface; @easylabs/react and @easylabs/browser mount it natively
in browsers. There is no EmbeddedCheckout component in
@easylabs/react-native, and there will not be one — wrapping the iframe
in a WebView produces a degraded, inconsistent experience and is risky
under App Store and Play Store review for primary payment flows.
What to use instead
Build native checkout with the SDK's primitives:
Elements
Card number, expiration, and CVC inputs — same Basis Theory engine as the web SDK, rendered natively.
Wallet Checkout
Apple Pay (iOS) and Google Pay (Android) — the native equivalent of a hosted checkout flow.
If you really need the web checkout in a native app
Don't ship a WebView-wrapped Embedded Checkout to production. The known
issues — keyboard handling, payment-sheet integration, scrolling, latency,
review-process risk — outweigh any reuse benefit. If you need the hosted
page for a one-off scenario (testing, internal tooling, a feature flag
toggle), use React Native's built-in
react-native-webview
directly with the published checkout URL. We don't ship it as a first-party
component because we don't recommend it.