[ Package conformance ]
Auth & Payments · >=0.20.0
@stripe/stripe-react-native
real Stripe.js delegation — initStripe() lazy-loads https://js.stripe.com/v3/ on first call (no upfront network cost), then every payment op (createPaymentMethod, confirmPayment, confirmSetupIntent, createToken, retrievePaymentIntent / SetupIntent, handleNextAction, verifyMicrodepositsForPayment / Setup) delegates to the real Stripe instance and talks to api.stripe.com over HTTPS. tokenization, payment intents, setup intents, and 3DS are the real implementation; errors are mapped into upstream StripeError shape. <CardField> / <CardForm> / <AuBECSDebitForm> / <PaymentMethodMessagingElement> mount real Stripe Elements iframes (PCI-compliant card collection). Apple Pay / Google Pay route through stripe.paymentRequest (the cross-platform abstraction). native PaymentSheet, CustomerSheet, AddressSheet, AddToWalletButton, and openApplePaySetup remain documented-unavailable (no web equivalents for the native bottom sheets / PassKit setup).93%
API coverage
No visual conformance cases have been published for this package yet. The registry summary below describes what the compat layer implements.
Working (25)
real Stripe.js tokenization + intent flow — initStripe (loads js.stripe.com/v3 lazilycaches Stripe instance per publishableKey)createPaymentMethod (real)confirmPayment (realvia stripe.confirmCardPayment)confirmSetupIntent (realvia stripe.confirmCardSetup)createToken (realvia stripe.createToken — bank_account / pii / account; Card requires a mounted CardField)retrievePaymentIntent / retrieveSetupIntent (real)handleNextAction (realvia stripe.handleCardAction)handleNextActionForSetup (realvia stripe.handleNextAction)verifyMicrodepositsForPayment / Setup (real). real Stripe Elements: CardField / CardForm / AuBECSDebitForm / PaymentMethodMessagingElement mount stripe.elements().create(...) DOM iframes when wrapped in a StripeProvider. platform pay paths (confirmPlatformPayPayment / confirmPlatformPaySetupIntent / createPlatformPayPaymentMethod) route through stripe.paymentRequest — Apple Pay + Google Pay flow through the same browser PaymentRequest sheet Stripe.js abstracts. feature detection: isPlatformPaySupported via window.ApplePaySession.canMakePayments() + window.PaymentRequest. all upstream React surface: StripeProvideruseStripe / usePaymentSheet / usePlatformPay / useConfirmPayment / useConfirmSetupIntent / useApplePay / useGooglePay / useFinancialConnectionsSheet / useOnramp / useCustomerSheet hooks; StripeContainer / AddToWalletButton / AddressSheet / PlatformPayButton / CustomerSheet / ConnectComponentsProvider components; loadConnectAndInitializeConstants (ApplePayContactFieldsTypeApplePayMerchantCapabilityApplePayShippingTypeAndroidGooglePayButtonStyle / TypeIosGooglePayButtonType)all upstream error enums (Confirm/CardAction/Setup/CreatePayment/CreateToken/RetrievePayment/RetrieveSetup/ApplePay/PaymentSheet/Onramp/GooglePay/VerifyMicrodeposits/CollectBankAccount/AddressSheet/CustomerSheet/PlatformPay/Radar)CardBrand enumPaymentMethodLayoutStripeError + ErrorType + MissingRoutingNumber
Missing (2)
native PaymentSheet UI (the iOS-styled bottom drawer; web has stripe.elements().create("payment") as a primitive but the styled chrome differs). CustomerSheet / AddressSheet UI (no clean web equivalent). AddToWalletButton + openApplePaySetup (PassKit-only operations). createTokenForCVCUpdate (requires a mounted CardCvcElement). collectBankAccount* APIs (require a Financial Connections session token from the merchant server). raw Stripe Connect embedded components (would need @stripe/connect-js dep). when running inside the sootsim tenant worker (no `document`)Stripe.js cannot load — a future SootSim.bridges.stripe host helper would proxy DOM ops; the stub surfaces a typed error in that case so consumer code branches through error UI.