Features
- [Added] Added
termsDisplaytoPaymentSheet.Configuration, allowing control over whether legal agreements are shown per payment method type. (#2322)
Changes
- Updated Stripe iOS SDK from 25.6.+ to 25.7.+
- Updated Stripe Android SDK from 22.7.+ to 22.8.+
Fixes
- [Fixed] A build issue when using Xcode 16 (#2323)
Changes
- [Breaking]
authenticateUserhas been removed in favor ofonrampAuthorizeinuseOnramphook. - [Changed] Updated Stripe Android from 22.7.+ to 22.8.+
Features
- [Added] Connect embedded components are now available in private preview, including Account Onboarding, Payments, and Payouts.
Changes
- [Added] Added support for creating a Radar session.
Changes
- Updated Stripe iOS SDK from 25.0.1 to 25.6.0
- Updated Stripe Android SDK from 22.2.+ to 22.7.+
Fixes
react-native-webviewis no longer a dependency of the SDK.
Fixes
- Fixed
update()not working on Android for EmbeddedPaymentElement. The intent configuration is now properly passed to the native side when callingupdate().
Fixes
- Fixed Android crash
NoSuchKeyException: customFlowwhen initializing PaymentSheet without explicitly setting thecustomFlowparameter. - Fixed
confirmPlatformPayPaymentnot resolving on Android. - Fixed Android crash
IllegalStateException: Cannot locate windowRecomposer; View is not attached to a windowin EmbeddedPaymentElement. This occurred when React Native measured the view before it was attached to the window hierarchy.
Changes
- [Changed] Updated Stripe iOS SDK from 24.25.0 to 25.0.0
- [Changed] Updated Stripe Android SDK from 21.29.+ to 22.0.+
- [Removed] Removed Giropay. Use alternative payment methods instead. See this page for more information.
Fixes
- #2201 Fixed iOS sheets (PaymentSheet, CustomerSheet, AddressSheet, etc.) not presenting in scene-based lifecycle apps. The SDK now properly supports both traditional app delegates and scene-based lifecycles (iOS 13+) by using
RCTKeyWindow.
Changes
- [Added] CustomerSession is now generally available. The
customerSessionClientSecretparameter is no longer experimental. - [Added] ConfirmationTokens are now generally available. The
confirmationTokenConfirmHandlerparameter andConfirmationToken.Resulttype are no longer experimental. - [Added] Added support for
CustomerSessionto CustomerSheet. The CustomerSession object grants the SDK temporary access to the Customer and provides additional configuration options. These configuration options allow you to customize the behavior of CustomerSheet. A complete list of features exposed on the CustomerSession are in our API docs.
- [Added] Added support for
onBehalfOfto CustomerSheet.IntentConfiguration. This parameter makes CustomerSheet use a connected account to determine the payment method that users see and whether CardBrandChoice is enabled. For more information, see the SetupIntent docs.
Fixes
- Fixed Android crash
IllegalStateException: State must be at least CREATED to move to DESTROYEDwhen removing payment methods in EmbeddedPaymentElement. The crash occurred when views were destroyed before completing the lifecycle initialization.
Fixes
- Fixes an issue with
FinancialConnectionsEventnot being populated properly on Android - Fixes an issue with Link payment methods having an
Unknownpayment method type
- [Added] Added appearance.applyLiquidGlass. When set to
true, changes the values of various properties on the Appearance object used by PaymentSheet, PaymentSheet.FlowController, EmbeddedPaymentElement, CustomerSheet, and AddressViewController to match Liquid Glass when building with Xcode 26 or later and running on iOS 26. This includes appearance.cornerRadius, appearance.borderWidth, appearance.navigationBarStyle, colors.background, navigationBarStyle, and others. This feature is in public preview while we gather feedback and is subject to change. Please use https://github.com/stripe/stripe-ios/issues to file feedback!
![]() |
![]() |
|---|
- [Added] appearance.navigationBarStyle. Setting to NavigationBarStyle.Glass will change the sheet navigation bar to a glassy appearance when building with Xcode 26 or later and running on iOS 26. Setting appearance.applyLiquidGlass to
truewill set this value to NavigationBarStyle.Glass.
Fixes
- #2147 Fix Stripe UI errors when rotating screen
Features
- #2140 Added support for the Alma payment method
Fixes
- #2128 Fix headless task not registered by StripeProvider.
- #2129 Fix iOS build on new arch 0.81 with static linkage
- Embedded Payment Element rendering invalid payment option images on Android
Features
- Added
isLoadedflag touseEmbeddedPaymentElementhook that indicates when the embedded payment element has finished loading and is ready to display (height > 1). Useful for showing loading states and smooth UI transitions.
Fixes
- Fixed Android EmbeddedPaymentElement not respecting Link configuration. Now properly honors
LinkDisplay.NEVERto hide Link payment method when configured. - Fixed Android EmbeddedPaymentElement layout measurement issues by improving height calculation and switching from
onPlacedtoonSizeChangedfor better layout synchronization. - Fixed an issue on Android when adding US bank accounts via the Mobile Payment Element for Stripe Connect accounts.
Features
- #2079 Added support to differentiate between a user closing FlowController and selecting a payment option
Fixes
- #2092 Fix Android crash in release mode when using the new architecture.
Features
- #1956 Added support for the Billie payment method
- Added
imageandmandateHTMLtoEmbeddedPaymentElement.PaymentOptionDisplayData - Added
embeddedViewDisplaysMandateTexttoEmbeddedPaymentElementConfiguration
Changes
- Klarna: Made
billingDetails.emailandbillingDetails.address.countryoptional when creating Klarna payment methods. See Stripe docs: Migrate Klarna from Sources β Field mapping reference ("Not required when using the Payment Element. Itβs collected automatically.").
Fixes
- Fixed iOS crash "Stripe SDK confirmPayment must not be null" when calling
confirmPaymentwith optional parameters. Updated native bridge to properly handle nullable params argument. #2048
Fixed
- Fixed Android crash when using
RowSelectionBehavior.ImmediateActionwithFormSheetAction.Confirmin EmbeddedPaymentElement.
Changes
- Renamed
RowStyle.FlatWithChevrontoRowStyle.FlatWithDisclosureand updated related interfaces (ChevronConfigβDisclosureConfig). - Updated
stripe-iosto 24.19.0 - Updated
stripe-androidto 21.22.+ - Added
successBackgroundColorandsuccessTextColorproperties toPrimaryButtonColorConfigfor customizing the primary button appearance in success states.
Fixes
- Fixed missing
onCustomPaymentMethodConfirmHandlerCallbackin old architecture codegen patch. This resolves pod install failures when using React Native 0.74+ with old architecture and custom payment methods. - Fixes an issue where saved payment methods weren't auto selected when using
EmbeddedPaymentElementon Android.
Fixes
- Fixed embedded payment element color support to accept both single color strings and light/dark color objects for
ThemedColorproperties (separatorColor, selectedColor, unselectedColor, checkmark color, chevron color). - Fixed Android crash when providing partial
billingDetailsCollectionConfigurationobjects. Now gracefully handles missing fields likeattachDefaultsToPaymentMethodby using safe accessor methods with default values. - Fixed Android Kotlin compilation errors where nullable
ReadableMap?was passed to functions expecting non-nullableReadableMap. Added null checks inEmbeddedPaymentElementViewManagerandAddToWalletButtonManager. #1988
Features
- Added support for Custom Payment Methods in PaymentSheet and Embedded Payment Element.
Fixes
- Removed Sofort from playground pages. Sofort is no longer support by Stripe.
- Patches
- Fixed codegen error when using React Native 0.74+ with old architecture by converting EventEmitter properties to callback functions in TurboModule interface. #1977. See
patches/README.mdfor more info.
Features
- Added rowSelectionBehavior to
EmbeddedPaymentElementConfigurationwithimmediateActionoption - Added
flatWithChevrontoAppearanceParams.embeddedPaymentElement.rowConfig.style - Added
PaymentMethodOptionstoPaymentModeto enable setting payment method level setup future usage value - Added
NonetoFutureUsage
Feature
- Added
heighttoPrimaryButtonConfig.shapes. - Added
formInsetValuestoAppearanceParams.
Fixes
- Fixed EmbeddedPaymentElement unable to present view controllers after navigating back and forth between screens.
- Fixed EmbeddedPaymentElement not sizing correctly on Android when the user has saved payment methods.
Features
- Added
customerEphemeralKeySecretandcustomerSessionClientSecretto EmbeddedPaymentElement
Features
- Added support for the Embedded Payment Element. Learn more by visiting the docs.
** Features **
- Support for the New Architecture in React Native v0.68 or later.
- Ability to update saved cards when using CustomerSessions (private preview)
Fixes
- Updated
stripe-iosto 24.12.* - Updated
stripe-androidto 21.12.*
Features
- Added
LinkParamsto allow control over Link in PaymentSheet.
Fixes
- Updated
stripe-iosto 24.11.* - Updated
stripe-androidto 21.10.* - Fixed an issue where launching a Financial Connections flow would fail on Android.
Features
- Financial Connections now supports dark mode, and will automatically adapt to the device's theme. Learn more about configuring appearance settings.
- Added card brand filtering to PaymentSheet and CustomerSheet to specify allowed or blocked card brands. 1857
Fixes
- Updated
stripe-iosto 24.7.* - Updated
stripe-androidto 21.6.* - Supports React Native 0.78
- Compatible with new architecture when bridgeless mode is disabled
Features
- Added ability to pass an
onEventlistener to Financial Connections methods via aparamsargument. This includes the following methods, both when used directly or viauseStripeoruseFinancialConnectionsSheet:collectBankAccountForPaymentcollectBankAccountForSetupcollectBankAccountTokencollectFinancialConnectionsAccounts
- Added ability to pass
metadatatoPaymentMethod.ConfirmParamsandPaymentMethod.CreateParams
Fixes
- Updated
stripe-iosto 24.2.*
Breaking changes
- Removed support for FPX payments via the bank picker UI. If you'd like to accept FPX payments, we recommend using Mobile Payment Element. Also see the FPX Payment guide for more info on how to integrate FPX specifically.
Features
CustomerSheetis now generally available!- If you were using
CustomerSheetBeta, change that toCustomerSheet. - If you were using
CustomerSheetBeta.CustomerSheet, change that toCustomerSheet.Component
- If you were using
- Enabled vertical mode
Features
- Adds support for CustomerSession in private beta 1744
- Added
onBehalfOfprop to CardField
Fixes
- Updated
stripe-iosto 23.30.* - Updated
stripe-androidto 20.52.*
Fixes
- Fixed build errors on Android when using React Native 0.75.x
Fixes
- Fixed an issue on Android where
allowsRemovalOfLastSavedPaymentMethodwould default tofalseif not provided.
Fixes
- Fixed an issue on Android where
CustomerSheetcould get stuck in an error state after forwarding an error to theintentCreationCallback.
Fixes
- Updated
stripe-iosto 23.28.* - Updated
stripe-androidto 20.48.*
Fixes
- Fixed
preferredNetworksprop on CardForm on iOS not always being applied - Updated
stripe-androidto 20.47.3
Features
- Adds support for
paymentMethodOrderin PaymentSheet, which provides client side sorting of payment methods. - Updated
stripe-androidto 20.44.*
Fixes
- Fixed an issue with generating App Privacy reports.
- Updated
stripe-iosto 23.27.* - Updated
stripe-androidto 20.41.*
Fixes
- Updated
stripe-iosto 23.26.* - Updated
stripe-androidto 20.40.*
Fixes
- Updated
stripe-iosto 23.25.* - Updated
stripe-androidto 20.39.*
Breaking changes
- Your
compileSdkVersion(inandroid/build.gradle) now must be at least 34. Changing yourcompileSdkVersiondoes not change runtime behavior.
Fixes
- Fixed an issue on Android where the SDK was unable to follow URL redirects in some cases.
- Fixed an issue on Android where Google Pay & Link were not saved as default payment methods in PaymentSheet.
Features
- Use
preferredNetworksonCardField,CardForm,CustomerSheet, andPaymentSheetto set the list of preferred networks that should be used to process payments made with a co-branded card. - Set the Google Pay button type that is used in PaymentSheet with the
googlePay.buttonTypeparameter.
Fixes
- Fixed an issue on Android where
CardField'splaceholderColorwasn't being applied to the card brand icon.
Fixes
- Fixed a build error on Android when using React Native 0.73.0 and higher #1579
- Fixed the test mock for
useStripe#1559 - Fixed a build error on Android that would only occur when using the
nxbuild tool #1586
Features
- Added support for RevolutPay bindings
Features
- Added new
presentationStyleoptions for CustomerSheet and AddressSheet. #1515 - Support
PlatformPayButton'sappearanceandborderRadiusprops on Android. #1534 - PaymentSheet now supports Swish for PaymentIntents in private beta #1542
- PaymentSheet now supports saved payment method support for SEPA family payment methods #1542
Fixes
- Fixed an issue on Android where apps could crash when launching Google Pay
- Fixed an issue on Android where
streetinshippingContactfor PlatformPay methods would includenullin the string - Fixed an issue on Android where
phoneNumberinShippingContactfor PlatformPay methods would benull - Removed XML asset files, library size reduced. #1534
Features
- Added the
amountandlabelparams toinitPaymentSheet'sgooglePayfield configuration. Use this to diplay the amount for setup intents. - Added the
amountandlabelparamscreatePlatformPayPaymentMethod,confirmPlatformPayPayment, andconfirmPlatformPaySetupIntent. - PaymentSheet now supports the following payment methods on both iOS and Android (previously some of the following were iOS only) for SetupIntents and PaymentIntents with setup for future usage:
- Alipay
- BECS Direct Debit
- Cash App Pay
- iDEAL
- SEPA
- Sofort
- Bancontact
- BLIK
- Boleto
- Revolut Pay
- OXXO (PaymentIntents only)
- Konbini (PaymentIntents only)
- PaymentSheet now supports the following payment methods on iOS only for SetupIntents and PaymentIntents with setup for future usage:
- PayNow
- PromptPay
Fixes
- Fixed an issue on iOS where the value for the
paymentMethodfield on the returnedpaymentIntentobject fromconfirmPlatformPayPaymentand the returnedsetupIntentobject fromconfirmPlatformPaySetupIntentwould be null.
Features
createPlatformPayPaymentMethodandcreatePlatformPayTokennow also include an optionalshippingContactfield in their results. #1500- Added the
removeSavedPaymentMethodMessagefield toinitPaymentSheetto display a custom message when a saved payment method is removed. iOS Only. #1498
Fixes
- Fixed an issue on iOS where recollecting the CVC wouldn't work correctly. #1501
Features
- [BETA] Added CustomerSheet API, a prebuilt UI component that lets your customers manage their saved payment methods. #1491
- [PaymentSheet] Added support for AmazonPay (private beta), BLIK (iOS only), GrabPay, and FPX with PaymentIntents. #1491
Fixes
- Fixed font scaling on Android PaymentSheet not respecting floating-point number values. #1469
Features
- Added the
handleNextActionForSetupmethod. This can be used exactly likehandleNextAction, except with SetupIntents. #1440 canAddCardToWalletnow returns thefpanLastFouranddpanLastFourin theGooglePayCardTokentype. ThecardLastFourfield (which is now superseded byfpanLastFour) is deprecated.
Fixes
- Fixed an error on Android where
AddressSheetwould throw an error if submitted with the keyboard open. #1462 - Fixed an issue where
statewas not included in the returned PaymentIntent'sshippingDetailson iOS. #1465 - Fixed an error where
usePaymentSheetcould cause infinite reloads. #1439'
Breaking changes
- The Apple Pay and Google Pay APIs, which are deprecated and were replaced with the Platform Pay API last year, have been removed. #1424
Features
- You can now collect payment details before creating a
PaymentIntentorSetupIntent. See our docs for more info. This integration also allows you to confirm the Intent on the server. #1424
Fixes
- Fixes
handleURLCallbackto only take action on iOS, no-op on Android. #1423
Features
- Added a
disabledprop toCardFieldandCardFormwhich applies a disabled state such that user input is not accepted. #1403
Fixes
- Fixed an instance on Android where
collectBankAccountTokenorcollectFinancialConnectionsAccountscould result in a fatal error. #1401 - Resolve with better error objects on iOS in
confirmPaymentSheetPayment,createTokenForCVCUpdate,createPaymentMethod,retrievePaymentIntent, andretrieveSetupIntent#1399
Fixes
Note: Xcode 13 is no longer supported by Apple. Please upgrade to Xcode 14.1 or later.
Fixes
- Fixed the type of
createdonToken.Resulton Android (was a number, should be a string). #1369 - Fixed
AddToWalletButtonnot properly resolving theandroidAssetSourcein release mode. #1373 - Fixed
isPlatformPaySupportednot respectingexistingPaymentMethodRequiredortestEnvon Android. #1374
Features
- Added
billingDetailsCollectionConfigurationtoinitPaymentSheetparameters. Use this to configure the collection of email, phone, name, or address in the Payment Sheet. See the docs here #1361
Fixes
- Updated Google Pay button asset to match Google's most recent branding guidelines. #1343
- Fixed type for
ApplePay.ShippingContact.phoneNumber. #1349 - Fixed
CardResulttype to includethreeDSecureUsage. #1347
Features
- Added support for PayPal and CashApp to PaymentSheet,
confirmPayment, andconfirmSetupIntent. #1331
Fixes
- Compatible with v0.1.4 of
@stripe/stripe-identity-react-native. 8fa8a7a
Features
- Added the
supportsTapToPayoption tocanAddCardToWallet. #1308
Fixes
- Fixed an issue on iOS where
canAddCardToWalletwould always return adetails.statusofUNSUPPORTED_DEVICEon iPads. #1305 - Fixed an issue on iOS where
canAddCardToWalletwould always return a{canAddCard: false}if the card in question had been provsioned on the current device, but had not yet been provisioned on a paired Watch. #1305 - Fixed an issue on iOS where the deprecated
onDidSetShippingMethod&onDidSetShippingContactevents wouldn't be triggered if you were using theuseApplePayhook without using theApplePayButtoncomponent. #1298 - Fixed an issue on Android where
canAddCardToWalletcould result in a null pointer exception on devices without NFC compatibility. #1308
Breaking changes
- #1248 Renamed the
paymentSummaryItemsfield ininitPaymentSheet()'sapplePayparams tocartItems. So your change will look like this:
initPaymentSheet({
...
applePay: {
- paymentSummaryItems: [
+ cartItems: [
}
...
})Features
- Added the
setOrderTrackingproperty to thePlatformPayButtoncomponent and theinitPaymentSheetmethod. Use this callback for setting the order details to give users the ability to track and manage their purchases in Wallet. To learn more about order tracking, see Appleβs Wallet Orders documentation. #1248 - Added the
buttonTypefield toinitPaymentSheet()'sapplePayparams. Use this to set the text displayed by the call to action button in the Apple Pay sheet.#1248 - Added the
requestfield toinitPaymentSheet()'s,confirmPlatformPayPayment()'s, andconfirmPlatformPaySetupIntent'sapplePayparams. Use this to support different types of payment requests, likeRecurringPaymentRequest,AutomaticReloadPaymentRequest, andMultiMerchantRequest.#1248 - Added an
optionsargument topresentPaymentSheetwhich includes atimeoutproperty. #1287
Fixes
- Fixes a build failure on Android when using
stripe-androidv20.19.2. #1289
Fixes
- Fixed a bug on Android where
canAddCardToWalletwouldn't correctly return thedetails.tokenobject. #1282
Note: This version pulls in a new version of
stripe-androidthat now requires v1.8.0 of the Kotlin Gradle plugin. Refer to this issue for a limited workaround.
Fixes
- Fixed an issue with
confirmPlatformPaySetupIntenton iOS. #1266 - Fixed types so that Klarna accepts the
shippingDetailsproperty. #1272 - Both
PaymentIntent.ResultandSetupIntent.Resulttypes now include apaymentMethodfield. This replaces thepaymentMethodIdfield, which will be removed in a later release. #1272
Breaking changes
createPlatformPayPaymentMethodno longer returns atokenobject. #1236- If your integration depends on Stripe's Tokens API, please use
createPlatformPayToken, which accepts identical arguments.
- If your integration depends on Stripe's Tokens API, please use
Fixes
- Fixed an issue with
createPlatformPayPaymentMethodon iOS where a "Canceled" error could be returned in production. #1236 - Fixed an issue where the
PlatformPayButtonwithtype={PlatformPay.ButtonType.GooglePayMark}would be unclickable. #1236 - Fixed an issue on Android where
CardFieldwould render without the necessary padding. 48debb2 - Fixed an issue on iOS where providing a
nullvalue to certain method parameters would result in a crash. #1252
Fixes
- Fixed the
ShippingMethodtype to contain theisPendingfield instead of atypefield (which previously was never correct). This reflects the inputs accepted. #1227 - Fixed the
ShippingMethodtype to contain thestartDateandendDatekeys, if applicable. #1227 - Fixed instances of the "duplicate registered views" error. #1233
- Fixed extra margin that was being added to
<CardForm />on Android. #1234
Breaking changes
Features
- Added the
hasPairedAppleWatchoption tocanAddCardToWallet. #1219 - Added new functions and a new component to streamline integrating with Apple and Google Pay and add more feature support. See the Migrating to Platform Pay guide for more details. The old Apple and Google Pay APIs are marked as
deprecatedand will be removed in a future release, but are still supported in this version.
Fixes
- Fixed an issue where builds would error with the message
'const' enums are not supported.see commit - Fixed an issue where the
canAddCardToWalletmethod would sometimes wrongly returnfalsewith adetails.statusofMISSING_CONFIGURATIONin production builds. #1215 - Fixed an issue on Android where, for certain countries, the postal code would not be enabled but would still be required. #1213
- Fixed an issue on iOS where
canAddCardToWalletwould returnfalseif the card had already been provisioned on a paired device like an Apple Watch, but had not yet been provisioned on the current device, and would also returnfalseif the card had been provisioned on the current device, but not on a paired Apple Watch. #1219
Breaking changes
Features
- Added the
<AddressSheet />component, which enables you to collect local and international shipping or billing addresses from your customers with address autocomplete. #1169 - Added the
defaultShippingDetailsfield to theparamsargument ininitPaymentSheet(params). This will allow you to collect shipping details (either in your own UI or using the new<AddressSheet />component) for payments in the Payment Sheet. #1169
Fixes
- Fixed a build error on Android when using Kotlin version 1.7.10. #1195
Breaking changes
- This library now supports iOS 13 and up, due to
stripe-iosincreasing the deployment target. If you would like to build for iOS 12, please continue to use@stripe/stripe-react-native@0.19.0. #1190
Features
- Added Link support in Payment Sheet. #1176
- Added the
resetPaymentSheetCustomermethod to clear persisted authentication state in the PaymentSheet. #1176 - Added
preferredNetworkandavailableNetworksfields to theCardResultpayment method. #1176 - Added support for custom fonts to
CardFormandCardViewon Android. #1150 - Added support for customizing the call to action button label in Payment Sheet by providing the
primaryButtonLabelproperty toinitPaymentSheet(). #1190
Fixes
- Fixed an issue on iOS where
confirmSetupIntentwould throw an error if theCardpayment method was provided with thepaymentMethodIdparameter. #1151 - Upgraded
stripe-androidto 20.15.+. #1176 - Upgraded
stripe-iosto 23.1.+. #1190 - Fixed
FinancialConnections.SubcategoryandFinancialConnections.Permissiontypes to be camel-case instead of snake case. #1176 - Fixed an issue with Financial Connections on iOS where the app wouldn't properly redirect back after authentication. #1178
- Fixed
borderWidthandborderRadiusfor<CardField />andCardForm />was inconsistent across iOS and Android. #1182
Breaking changes
- To comply with Google's new branding guidelines for the Google Pay button, the
<GooglePayButton />component'stypeprop now only acceptsstandardorpay(pay_shadow,pay_dark,standard_shadow, andstandard_darkwere all removed). It defaults tostandard. #1135 - Your
compileSdkVersion(inandroid/build.gradle) now must be at least 33. Changing yourcompileSdkVersiondoes not change runtime behavior.
Features
- Add
returnURLas an optional parameter tohandleNextAction. Use this so the Stripe SDK can redirect back to your app after authentication. #1104
Fixes
- Fixed an issue where the error resolved on iOS wasn't the root error. #1105
- Fix Expo Config Plugin support on SDK 46. #1111
- Updated
stripe-iosfrom 22.7.+ to 22.8.+. Updatedstripe-androidfrom 20.9.+ to 20.12.+. This updates the Google Pay button to match the new brand guidelines. #1135
Breaking changes
Features
Fixes
- Fixed an issue where some promises on Android would never resolve when using React Native 0.65.x or under. #1089.
Breaking changes
- Your
compileSdkVersion(inandroid/build.gradle) now must be at least32. Changing yourcompileSdkVersiondoes not change runtime behavior.
Features
confirmPaymentcan now be called with just a client secret (e.g.await confirmPayment("payment-intent-id")), in other words the payment method can be excluded. If the payment method is excluded, it is assumed by the SDK that you have attached the payment method on the server-side during payment intent creation. #1084- Payment Sheet now supports Link on iOS. #1086.
Fixes
- Fixed a bug on Android where
collectBankAccountForPayment,collectBankAccountForSetup,collectBankAccountToken, andcollectFinancialConnectionsAccountswouldn't work with Stripe Connect accounts. #1086. - Upgraded
stripe-iosto 22.7.+ andstripe-androidto 20.9.+.
Breaking changes
Features
- Added the
collectBankAccountToken&collectFinancialConnectionsAccountsfunctions.
Fixes
- Fixed an issue where
collectBankAccountForPaymentandcollectBankAccountForSetupwould fail on Android when using React Native 0.65.x or under. #1059 - Fixed an issue where Android apps could crash with the error
IllegalStateException: Cannot remove Fragment attached to a different FragmentManager. #1054 - Bumped Gradle from 4.2.2 to 7.1.1. #1058
Breaking changes
- The
<GooglePayButton />component no longer overrides thetypeto use the dark mode version when the device is in Dark Mode. If you set thetypevalue, it will always be respected. If you don't set thetypevalue, it will match the system's theme (standard_shadowwhen in Light Mode, andstandard_darkwhen in Dark Mode). #1051
Features
- Added support for
pay_darkandstandard_darkto the<GooglePayButton />component'stypeprop. This allows you to display the dark Google Pay button. #1051 - Added support for
borderColor,borderRadius, andcursorColortoCardForm'scardStyleprop on iOS (already exists on Android). #1048
Fixes
- Reduced the size of the
@stripe/stripe-react-nativeby preventing unnecessary files from being published. #1043
Breaking changes
- #1020 Changed some of fields for the
paramsobject that is supplied toinitPaymentSheet(params):- Changed the
applePayfield. Previously this field accepted a boolean, now it accepts an object of typeApplePayParams, which includes themerchantCountryCodefield, and a newpaymentSummaryItemsfield (see "Features" below). - Changed the
googlePayfield. Previously this field accepted a boolean, now it accepts an object of typeGooglePayParams, which includes themerchantCountryCode,currencyCode, andtestEnvfields. - Since the
merchantCountryCodefield now lives under theapplePayandgooglePayobjects, it has been removed from the baseparamsobject. - Similarly, since the
currencyCodeandtestEnvfields now live under thegooglePayobject, they have been removed from the baseparamsobject .
- Changed the
- #1020 In
ApplePay.CartSummaryItem:- Renamed
typetoisPending- (if you hadtype: 'pending', replace it withisPending: true. iftype: 'final', either remove it or setisPending: false).- The same change was made to
ApplePay.ShippingMethod: renamedtypetoisPending.
- The same change was made to
- Added a new
paymentTypefield. This field is required, and in all pre-existing cases where you created aCartSummaryItem, should be set topaymentType: 'Immediate'(support for typesDeferredandRecurringwasn't available until this release).
- Renamed
Features
- Added support for iOS 15
paymentSummaryItems:PKDeferredPaymentSummaryItemandPKRecurringPaymentSummaryItem. - You can now specify Apple Pay line items to be displayed when paying with Apple Pay in PaymentSheet by providing
applePay.paymentSummaryItemsto theinitPaymentSheetmethod. #1020 - Added support for Affirm (previously, Affirm was only available in the Payment Sheet). 1036
Fixes
- Fixed behavior of
CardFieldandCardFormon Android to match that on iOS; postal code input no longer accepts characters that are never present in postal codes (anything besides 0-9, a-z, A-Z, hyphens, and whitespace). #1027. - Fixed an issue on older version of React Native where calling
collectBankAccountForSetuporcollectBankAccountForPaymentand getting aCanceledresult could cause a crash. #1037 - Fixed an issue where some Android builds would fail on the
lintVitalReleasestep. #1038
Breaking changes
Features
- Added the
canAddCardToWalletmethod. #986.
Fixes
- Fix build errors on Xcode 14 beta 1 by upgrading
stripe-iosto~>22.5.1. #1011 - Fixed an issue on Android where the
brandfield inCardField'sonCardChangecallback wouldn't be set unless the card details were fully complete. #1012 - Fixed an issue where Payment Sheet would cause crashes on Android if
merchantDisplayNamewasn't provided. #1015 - Fixed a bug on Android where a crash could occur if the PaymentSheet was canceled and opened again. #1014
- Fixed an instance on iOS where
CardField's expiry date would remain marked as valid, even when it's invalid. #1018
Breaking changes
Features
Fixes
- Never show postal code input in
CardFieldifpostalCodeEnabled=false(regardless ofcountryCode). #996
Breaking changes
Features
- Added a
defaultValuesprop to theCardFormcomponent. Currently only acceptscountryCode, and is Android-only. #974 - Added the
countryCodeprop to theCardFieldcomponent. #989 - Added option to create a PII token (represents the details of personally identifiable information) to the
createTokenmethod. #976
Fixes
- Resolve with an Error (of type
Canceled) if no payment option is selected in the Payment Sheet custom flow (i.e., thexbutton is clicked to close the Payment Sheet). #975 - Fixed an issue on Android where the
completefield in theonCardChangecallback would incorrectly be set totrueeven if the postal code wasn't filled out. #989 - Make
SetupIntent.lastSetupErrorandPaymentIntent.lastPaymentErrorobject shape consistent on iOS and Android.#990
Breaking changes
- Renamed
appearance.shapes.shadow.borderRadiustoappearance.shapes.shadow.blurRadius, andappearance.primaryButton.shapes.shadow.borderRadiustoappearance.primaryButton.shapes.shadow.blurRadius. #962
Features
Fixes
- Fixed cases where Android apps would crash with the error:
Unable to instantiate fragment com.reactnativestripesdk.PaymentLauncherFragment. #965 - Fixed
appearance.shapes.shadow.offsetandappearance.primaryButton.shapes.shadow.offsetnot applying the y-coordinate in the correct direction. #962 - Fixed a bug where
handleNextActionwouldn't resolve on Android when using 3DS2. #966 - Fixed a bug where the wrong CVC icon was show in the
CardFormcomponent on Android. #966 - The card brand tint color is now correctly set in the
CardFieldcomponent on Android via thecardStyle.textColorprop. #851
Breaking changes
- Removed support for
primaryButtonColorfield oninitPaymentSheet(). Please use the newappearance.primaryButton.colors.backgroundfield instead. #940
Features
- You can now customize the appearance of your Payment Sheet via the
appearancefield oninitPaymentSheet(). #940 - Added Affirm and AU BECS Direct Debit support to Payment Sheet. #940
Fixes
- Improved error messages on Android for failed
confirmPaymentandconfirmSetupIntentcalls, and any Google Pay related methods. #957 - Made Android card validation state consistent with iOS in the
CardFieldonCardChangecallback. #958
Breaking changes
Features
- Card scanning is available in payment sheet on Android. #944
- To enable this, you will need to add
implementation 'com.stripe:stripecardscan:20.3.+'to yourdependencies {}block inandroid/app/build.gradle.
- To enable this, you will need to add
us_bank_accountpayment method is now available in the payment sheet on Android. #944
Fixes
- #913 BREAKING CHANGE: Changed props for the
<AddToWalletButton />component. Instead of passingcardHolderName,cardLastFour,cardDescription, andcardBranddirectly as props, you will instead pass acardDetailsprop, which is an object containing the following fields:primaryAccountIdentifier: Thewallet.primary_account_identifiervalue from the issued card.name: The card holder name (previouslycardHolderName).description: A user-facing description of the card (previouslycardDescription).lastFour: Last 4 digits of the card, optional (previouslycardLastFour).brand: The card brand, optional (previouslycardBrand).
- #925 Feat:
us_bank_accountpayment method is now available in the payment sheet on iOS. (& Updatedstripe-iosfrom 22.2.0 to 22.3.0) - #929 Feat: added PayPal support (not currently supported for SetupIntents)
- #928 feat: expose 'cvc' when
dangerouslyGetCardDetailsis set to true - #931 feat: add token & paymentMethodId handling to confirmPayment for Cards
- #932 fix: manually forward activity results to paymentLauncherFragment
- #933 fix: address "Can not perform this action after onSaveInstanceState" crashes on Android
- #914 fix: add
fingerprintto Card result object on Android (already present on iOS) - #912 fix: allow for providing zip code straight from
CardFieldcomponent on Android
- Breaking: This version requires you use
react-native@0.64.0or above - #902 fix: create custom babel plugin for package.json imports in src/
- #889 Feat: add support for push provisioning (adding cards to native wallets)
- #890 BREAKING CHANGE: Changed parameters for:
createPaymentMethod,confirmPayment,confirmSetupIntent,collectBankAccountForPayment, andcollectBankAccountForSetup. Please read this migration guide for details.- Renamed
typefield topaymentMethodTypeonPaymentMethod.Result,PaymentIntent.Result, andSetupIntent.Result(result ofcreatePaymentMethod,retrieveSetupIntent,confirmSetupIntent,confirmPayment,collectBankAccountForPayment,collectBankAccountForSetup,verifyMicrodepositsForPayment, andverifyMicrodepositsForSetup).
- Renamed
- #849 BREAKING CHANGE: Renamed
placeholderprop on<CardField />and<CardForm />toplaceholders. - #849 Feat: Added customized styling options to
<CardForm />on Android.
- #894 Fix:
<CardField />onBlurcallback will now be called appropriately on Android - #846 Fix: Avoid crashes when
currentActivityis null - #879 Feat: Add support for ACHv2 payments on Android (already existed on iOS).
- #879 Chore: Upgraded
stripe-androidfrom v19.3.+ to v20.1.+ - #837 BREAKING CHANGE: Mostly fixes and changes to types, but some method's now accept slightly different parameters:
- Removed
setUrlSchemeOnAndroidin favor ofsetReturnUrlSchemeOnAndroid.setReturnUrlSchemeOnAndroidfunctions exactly the same, this is just a rename. - Removed
handleCardActionin favor ofhandleNextAction.handleNextActionfunctions exactly the same, this is just a rename. createPaymentMethod'sbillingDetailsandshippingDetailsparameters no longer accept theaddressPostalCode,addressCity,addressCountry,addressLine1,addressLine2, oraddressStatekeys. Instead, they accept anaddressobject containing:city,country,line1,line2,postalCode,state.confirmPayment'sbillingDetailsandshippingDetailsparameters no longer accept theaddressPostalCode,addressCity,addressCountry,addressLine1,addressLine2, oraddressStatekeys. Instead, they accept anaddressobject containing:city,country,line1,line2,postalCode,state.BillingDetailsno longer includesaddressPostalCode,addressCity,addressCountry,addressLine1,addressLine2, oraddressStatekeys. Instead, it includes anaddressobject containing:city,country,line1,line2,postalCode,statekeys.ShippingDetailsno longer includesaddressPostalCode,addressCity,addressCountry,addressLine1,addressLine2, oraddressStatekeys. Instead, it includes anaddressobject containing:city,country,line1,line2,postalCode,statekeys.PaymentIntentswas renamedPaymentIntent. (If you were usingPaymentIntents.Status, now you must change it toPaymentIntent.Status)SetupIntentswas renamedSetupIntent. (If you were usingSetupIntents.Status, now you must change it toSetupIntent.Status)- (Typescript)
Card.Tokenis nowToken.Result - (Typescript)
Card.Brandis nowToken.CardBrand - (Typescript)
Card.TokenTypeis nowToken.Type - (Typescript)
Card.BankAccountis nowToken.BankAccount - (Typescript)
Card.Paramsis nowToken.Params - (Typescript)
CardFormView.Namesis nowCardFormView.FieldName - (Typescript)
CardFieldInput.Namesis nowCardFieldInput.FieldName - (Typescript)
ApplePayButtonComponent.Stylesis nowApplePayButtonComponent.Style - (Typescript)
ApplePayButtonComponent.Typesis nowApplePayButtonComponent.Type - (Typescript)
PaymentMethodis nowPaymentMethod.Result - (Typescript)
PaymentIntentis nowPaymentIntent.Result - (Typescript)
SetupIntentis nowSetupIntent.Result - (Typescript) Exports that were under the
Cardnamespace are now underToken - (Typescript)
CreateTokenParamsis nowToken.CreateParams - (Typescript)
BankAcccountHolderTypeis nowToken.BankAcccountHolderType - (Typescript)
ThreeDSecureConfigurationParamsis nowThreeDSecure.ConfigurationParams - (Typescript)
PaymentMethodCreateParams.Paramsis nowPaymentMethod.CreateParams - (Typescript)
PaymentMethodCreateParams.Optionsis nowPaymentMethod.ConfirmOptions - (Typescript)
CreateTokenParamsis nowToken.CreateParams - (Typescript)
ConfirmSetupIntent.Paramsis nowSetupIntent.ConfirmParams - (Typescript)
ConfirmSetupIntent.Optionsis nowSetupIntent.ConfirmOptions - (Typescript)
confirmPaymentnow accepts thePaymentIntent.ConfirmParams(same type, just renamed). - (Typescript)
BillingDetailstype is now exported directly, instead of under thePaymentMethodCreateParamsobject. - (Typescript)
presentGooglePaynow acceptsGooglePay.PresentParams - (Typescript)
GooglePay.PresentGooglePayParamsis nowGooglePay.PresentParams - (Typescript)
GooglePay.PresentGooglePayTypeis nowGooglePay.PresentType - (Typescript)
GooglePay.IsGooglePaySupportedParamsis nowGooglePay.IsSupportedParams - (Typescript) Removed
GooglePay.SetupIntentParams
- Removed
- #861 BREAKING: This library now supports iOS 12 and up, due to
stripe-iosincreasing the deployment target. If you would like to build for iOS 11, please continue to use@stripe/stripe-react-native@0.5.0.- To upgrade your iOS deployment target to 12.0, you can either do so in Xcode under your
Build Settings, or by modifyingIPHONEOS_DEPLOYMENT_TARGETin yourproject.pbxprojdirectly. You will also need to update your Podfile to target:ios, '12.0'.
- To upgrade your iOS deployment target to 12.0, you can either do so in Xcode under your
- #861 Feat: Add support for ACHv2 payments on iOS only.
- #861 Chore: Upgrade
stripe-iosto 22.0.0.
- #863 Feat: add card ID and bankAccount ID to token response
- #862 Feat: Add support for setting a card's
currencywhen creating a Token - #854 Chore: Upgrade
stripe-iosto 21.13.0. Upgradestripe-androidto 19.3.0. - #845 Feat: Added support for
placeholderColor,textErrorColor,borderColor,borderRadius, andborderWidthforAuBECSDebitFormon iOS
- #821 Feat: Add support for Klarna
- #630 Fix: card field focus jumps back to the card number field on Android
- #824 Fix: Google Pay error code when canceled should be 'Canceled'
- #832
- Deprecated
setUrlSchemeOnAndroidin favor ofsetReturnUrlSchemeOnAndroid.setReturnUrlSchemeOnAndroidfunctions exactly the same, this is just a rename.setUrlSchemeOnAndroidwill be removed in a future release. - Deprecated
handleCardActionin favor ofhandleNextAction.handleNextActionfunctions exactly the same, this is just a rename.handleCardActionwill be removed in a future release. - fix: Set
returnUrlon Android inconfirmPaymentandconfirmSetupIntent. - fix: Don't request focus on initialization of
CardFormby default.
- Deprecated
- #810 Feat: add
isGooglePaySupportedmethod - #809 Fix: do not crash if no routing number provided when creating a bank account token on Android
- #814 Fix: cleanup
paymentSheetFlowControllerref before initializing new payment sheet - #806 Fix: properly assign
cursorColorstyle on AndroidCardField(requires Android 10 or higher). - #817 Chore: Upgrade
stripe-iosto v21.12.0 andstripe-androidto v19.2.+
- #788 fix: assign
paymentSheetFragmentdirectly, instead of through intents which would sometimes result in aNullPointerException. - #591 feat: add option to create a token directly from a bank account.
- #801 Upgraded
stripe-iosto v21.11.1. Upgradedstripe-androidto v19.1.+. Added Android 12 support to example. - #774 feat: Add
currencyCodesupport toinitPaymentSheetfor Google Pay & Setup Intents - #726 Update build.gradle to be more flexible in version of
stripe-android(#726) - #675 Bug fixes for server example (#675)
- #629 feat: Add validation state to CardField (#423) (#629)
- #702 docs: Update GooglePay.md (#702)
- #690 docs: Correct default for existingPaymentMethodRequired (#690)
- #660 docs: Fixed readme js object typo (#660)
- #657 chore: updated the dependencies for the example app (#657)
- #658 fix: TS issue with 0.2.3 StripeProvider cannot be used as a JSX component (#658)
- #635 fix: billing address postal code (#635)
- #565 chore: Add jest mock file (#565)
- #587 chore: Update Podfile.lock stripe-react-native version (#587)
- #568 fix: check support for specific TextInputState methods (#568)
- #631 chore: Update tips migration guide (#631)
- #601 feat: Add button color, return URL, allowsDelayedPaymentMethods, and billing details to PaymentSheet (#601)
- #548 chore: split apple pay address by new line (#531)
- #546 fix: resolve initGooglePay with error if it's not available (#533)
- #525 feat: add
openApplePaySetupmethod (#400) - #521 fix: support cardFormView for createToken method
- #514 feat: simpify
presentPaymentSheet - #513 fix: set
nullas initial value forisApplePaySupported(#496) - #506 feat: enhance payment sheet dx (#505)
- #415 feat: add multiline card form element (#83)
- #441 feat(android): add standalone Google Pay (#9)
- #422 feat: add WeChat Pay (#52)
- #453 chore: add JCB support for Apple Pay (#43)
- #451 fix: send postal code with card details (#420)
- #436 fix: cardfield crashes app (#391)
- #419 fix(android): error handling for createToken (#405)
- #394 [BREAKING CHANGE] fix: createToken response discrepancy (#344)
- #354 [BREAKING CHANGE] chore: rename top-level export
confirmPaymentMethodtoconfirmPayment(#318) - #416 fix(android): googlePay setting on initPaymentSheet
- #392 fix:
createdtimestamp discrepancy (#368) - #395 fix: resolve
initPaymentSheetonly when ready (#315) - #390 fix: add missing setupFutureUsage param (#367)
- #389 fix: set url scheme when using paymentMethodId (#378)
- #337 feat: expose CardField methods (focus, blur, clear)
- #366 fix: open payment sheet from modal (#315; #290)
- #309 feat: add
retrieveSetupIntentmethod (#294) - #306 feat: add
dangerouslyGetFullCardDetailsprop toCardFieldcomponent (#280) - #298 feat: support SetupIntents in payment sheet (#293)
- #296 chore: support
testIDprop in all UI components (#268) - #295 feat(ios): return the
paymentMethodobject whenpresentApplePayresolves (#271) - #273 feat: enrich the response error objects with additional information (#206)
- #276 fix(android): payment sheet not opening when
stripeAccountIdset (#267) - #266 feat(ios): add
borderRadiusprop to theApplePayButtoncomponent (#258) - #260 feat: add the
StripeContainercomponent that allows for dismissal of the keyboard when wrapped around theCardFieldcompnent (#222) - #255 fix(android): crash on
onActivityResultwhen Stripe isn't initalized
- #247 feat: add
fontFamilyprop toCardFieldcomponent (#103) - #245 fix: clear card params when
CardFieldinput is invalidated (#237) - #228 feat: add ability to show error in Apple Pay sheet within
onShippingContactSelectedhandler (#148) - #221 feat: add legacy
createTokenmethod for older integrations (#187) - #234 fix: add missing 3D Secure button props (#201)
- #226 feat: add
autofocusprop toCardFieldcomponent (#199)
- #224 chore: upgrade to
stripe-androidversion16.8.2(#212) - #213 fix: expose config-plugin and add blank swift file
- #217 feat: E2E testing CI configuration
- #216 fix: unify cancel handling (#205)
- #215 fix: createPaymentMethod promise reject (#209)
- #208 fix: add
.npmignoredisallow list (#204) - #207 fix: handle different pjson output (#200)
- #197 fix: update library name in expo plugin
- Initial release
Special thanks to: Arek Kubaczkowski, Charlie Cruzan, and Jakub KΕobus.

