- [CHANGED]5848 We now disable the back button while processing intents in
PaymentSheet
to prevent them from incorrectly being displayed as canceled.
- [SECURITY]5798 URL-encode IDs used in URLs to prevent injection attacks.
- [CHANGED]5789 We now disable the back button while confirming intents with
PaymentLauncher
to prevent them from incorrectly being displayed as failed.
- [ADDED]5676 Added
AddressLauncher
, an activity that collects local and international addresses for your customers. - [ADDED]5769 Added
PaymentSheet.Configuration.allowsPaymentMethodsRequiringShippingAddress
. Previously, to allow payment methods that require a shipping address (e.g. Afterpay and Affirm) inPaymentSheet
, you attached a shipping address to the PaymentIntent before initializingPaymentSheet
. Now, you can instead set this property totrue
and setPaymentSheet.Configuration.shippingDetails
orPaymentSheet.FlowController.shippingDetails
whenever your customer’s shipping address becomes available. The shipping address will be attached to the PaymentIntent when the customer completes the checkout.
- [FIXED]5816 Fixed an issue where the SDK would crash when recovering from process death.
- [FIXED]5768 Fixed SDK version reporting in cardscan scan stats
- [FIXED]5762 Use a custom implementation of FileProvider to avoid collision with client app.
- [ADDED]5729 Added support for a custom primary button label via
PaymentSheet.Configuration.primaryButtonLabel
.
- [FIXED]5749 Prevent multiple invocations to
/verify_frames
This release fixes a few bugs in PaymentSession
, PaymentSheet
and CardScan
.
- [FIXED]5722 Fix saving and restoring Google Pay selection in
PaymentSession
.
- [FIXED]5738 Fix crash on Payment Sheet when integrating with Compose.
- [FIXED]5730 Fix crash during initialization.
This release fixes some bugs in ShippingInfoWidget
, PaymentSheet
, and when the app is backgrounded during confirmation on Android 10 and 11.
- [FIXED]5701 Treat blank fields as invalid in
ShippingInfoWidget
. - [FIXED]5667 Completed payments are no longer incorrectly reported as having failed if the app is backgrounded during confirmation on Android 10 and 11.
- [FIXED]5715 Postal codes for countries other than US and Canada are no longer limited to a single character.
This release adds Link as a payment method to the SDK and fixes a minor issue with CardScan.
- [ADDED]5692 Enable Link as a payment method.
- [FIXED]5679 Fix oversized verification_frames payloads leading to failed scans.
This release expands the payment_method
field on ACH requests and fixes a formatting error in CardInputWidget
, CardMultilineWidget
, and CardFormView
.
- [FIXED]5547 Expiry dates in
CardInputWidget
,CardMultilineWidget
, andCardFormView
are no longer formatted incorrectly on certain devices.
- [FIXED]5624
CollectBankAccountResult
included intents will now contain the expandedpayment_method
field.
This release fixes a payment-method related error in PaymentSheet
and manages missing permissions
on Financial Connections.
- [CHANGED]5583 Adds support for
account_numbers
permission.
This release makes the PaymentMethod.Card.networks
field public, fixes the Alipay integration and the card scan form encoding.
- [CHANGED] 5552 Make
PaymentMethod.Card.networks
field public. - [FIXED]5554 Fix Alipay integration when using the Alipay SDK.
- [FIXED] 5574 Fix encoding for form parameters for scan stats.
This release upgrades compileSdkVersion
to 33, updates Google Pay button to match the new brand
guidelines and fixes some bugs in FlowController
.
- [CHANGED] 5495 Upgrade
compileSdkVersion
to 33.
- [ADDED]5502 Added phone number minimum length validation.
- [ADDED]5518 Added state/province dropdown for US and Canada.
- [CHANGED]5487 Updated Google Pay button to match new brand guidelines.
- [FIXED]5480
FlowController
now correctly preserves the previously selected payment method for guests. - [FIXED]5545 Fix an issue where custom flow PaymentSheet UI would have the bottom of the form cut off.
This release adds postal code validation for PaymentSheet and fixed a fileprovider naming bug for Identity.
- [ADDED]5456 Added postal code validation.
- [FIXED]5474 Update fileprovider name.
This release contains several bug fixes for PaymentSheet and binary size optimization for Identity.
- [FIXED]5422 Card expiration dates with a single-digit month are now preserved correctly when closing and re-opening the
PaymentSheet
via theFlowController
.
- [FIXED]5404 Remove Flex OP dependency from Identity SDK and reduce its binary size.
This release contains several bug fixes for Payments, PaymentSheet and Financial Connections.
Adds IdentityVerificationSheet#rememberIdentityVerificationSheet
for Identity.
- [ADDED]5340 Add a
resetCustomer
method toPaymentSheet
, that clears any persisted authentication state. - [FIXED]5388 Fixed issue with Appearance API
not working with
FlowController
. - [FIXED]5399 Bank Account Payments that pass stripeAccountId for connected accounts will now succeed.
- [FIXED]5399
CollectBankAccountLauncher
now acceptsstripeAccountId
for Connect merchants.
- [FIXED]5408
FinancialConnectionsSheet#Configuration
now acceptsstripeAccountId
for Connect merchants.
- [ADDED]5370 Add factory method for Compose.
This release contains several bug fixes for Payments, PaymentSheet, deprecates createForCompose
,
and adds new rememberLauncher
features for Payments
- [FIXED]5321 Fixed issue with forever loading and mochi library.
- [FIXED]5253 Setting setup_future_usage on the LPM level Payment Method Options remove the checkbox.
- [FIXED]5308 OXXO so that processing is considered a successful terminal state, similar to Konbini and Boleto.
- [FIXED]5138 Fixed an issue where PaymentSheet will show a failure even when 3DS2 Payment/SetupIntent is successful.
- [ADDED]5274 Create
rememberLauncher
method enabling usage ofGooglePayLauncher
,GooglePayPaymentMethodLauncher
andPaymentLauncher
in Compose. - [DEPRECATED]5274
Deprecate
PaymentLauncher.createForCompose
in favor ofPaymentLauncher.rememberLauncher
.
This release adds additional support for Afterpay/Clearpay in PaymentSheet.
- [ADDED]5221 Afterpay/Clearpay support for FR, ES countries and EUR currencies
- [FIXED]5215 Fix issue with us_bank_account appearing in payment sheet when Financial Connections SDK is not available
- [FIXED]5226
Persist
GooglePayLauncherViewModel
state across process death - [ADDED]5238 Expose the current card brand in CardFormView, CardInputWidget, and CardMultiLineWidget
- [ADDED]5149 First release to fully support selfie capture
This release contains several bug fixes for Payments, reduces the size of StripeCardScan, and adds
new rememberFinancialConnections
features for Financial Connections.
- [CHANGED] 5162 Upgrade
compileSdkVersion
to 32, Kotlin version to 1.6.21, Android Gradle plugin to 7.2.1.
- [ADDED]5117 Adds rememberFinancialConnectionsSheet and rememberFinancialConnectionsSheetForToken.
- [FIXED]5195 Fix focus when navigating across compose fields
- [FIXED]5196 Fix PaymentOptionsAddPaymentMethodFragmentTest
- [FIXED]5183 Fix Link payment option card in dark mode
- [FIXED]5148 Restore selected payment method when user returns to Link
- [FIXED]5142 Fix issue with animations running on main thread
- [CHANGED]5144 Add a minimal TFLite module to stripecardscan.
This release contains several bug fixes for Payments and PaymentSheet, deprecates the
PaymentSheet's primaryButtonColor
api in favor of the
new appearance api, and adds
card brand icons to the card details form.
- [DEPRECATED]5061 Add Deprecated annotation to old primaryButtonColor api.
- [FIXED]5068 Fix missing theming for add lpm button and notes text.
- [ADDED]5069 Add card brand icons to card details form.
- [FIXED]5079 Add 3ds2 url to list of completion URLs so callbacks work correctly.
- [FIXED]5094 Use correct cvc icon in card form view.
- [FIXED] 5075 Prevent a crash when the fragment is detached.
This release adds appearance customization APIs to payment sheet and enables Affirm and AU BECS direct debit as payment methods within Payment Sheet.
- [CHANGED]5038 Remove force portrait mode in Google Pay.
- [ADDED]5011 Add
allowCreditCards
toGooglePayLauncher
- [FIXED]5039 Fixed the format of the country dropdown in PaymentSheet for all languages.
- [ADDED]5042 Added Affirm and AU BECS Direct Debit.
- [ADDED]5020 Merge Appearance APIs to master.
- [FIXED]5022 Add missing translation for card information.
- [FIXED]5048 Fixed a crash when removing the last payment method in the custom flow editor.
This release adds us_bank_account
PaymentMethod to PaymentSheet.
- [FIXED]5011 fix flying payment sheet by downgrading material from 1.6 to 1.5
- [ADDED]4964
us_bank_account
PaymentMethod is now available in PaymentSheet
- [FIXED]5004 Fix front camera callback to return an upside down image
This release contains bug fixes in PaymentSheet.
- [FIXED]4966 Replaced alpha androidx.lifecycle dependencies with stable versions
- [FIXED]4961 Fix issue entering text with small forms.
This release contains bug fixes in PaymentSheet and Payments.
- [CHANGED] 4910 Some changes affecting
CollectBankAccountLauncher (ACH)
CollectBankAccountResponse#LinkAccountSession
toFinancialConnectionsSession
LinkedAccount
toFinancialConnectionsAccount
.
- [FIXED] 4918 Fix a problem introduced in 20.0.0 where save for future use was defaulted to true.
- [FIXED] 4921 Fixed a crash that could happen when switching between LPMs.
This release adds card scanning to PaymentSheet.
- [ADDED] 4804 Card-scanning in PaymentSheet
- [FIXED] 4861 Remove font resource to save space and default to system default
- [FIXED] 4909 In the multi-step flow when re-opening to a new card the form will pre-populate. Also the default billing address will pre-populate in the form.
- [CHANGED] 4887 Renamed Connections to Financial Connections.
This release includes several Payments and PaymentSheet bug fixes.
- [ADDED] 4874
us_bank_account
PaymentMethod is now available for ACH Direct Debit payments, including APIs to collect customer bank information (requires Connections SDK) and verify microdeposits. - [FIXED] 4875 fix postal code callback not firing when enabled
- [FIXED] 4861 Remove font resource to save space and default to system default
- [CHANGED] 4855 Remove force portrait mode in PaymentLauncher.
This release includes several PaymentSheet bug fixes.
- [FIXED] 4840 Multi-step now shows the last 4 of the card number instead of 'card'.
- [FIXED] 4847 Fix the width of the PaymentSheet payment method selector.
- [FIXED] 4851 Add support for http logoUri.
This release patches on a crash on PaymentLauncher, updates the package name of some public classes, changes the public API for CardImageVerificationSheet and releases Identity SDK.
- [ADDED] 4804 Added card-scanning feature to PaymentSheet
- [FIXED] 4776 fix issue with PaymentLauncher configuration change
- [CHANGED] 4358 Updated the card element on PaymentSheet to use Compose.
- [ADDED] 4820 Release Stripe's Identity SDK.
- [ADDED] 4818 Connections SDK can be optionally included to support ACH Direct Debit payments.
- [CHANGED] 4778 CardImageVerificationSheet: removed the callback from present to create, wrapping it inside a CardImageVerificationResultCallback object.
- [CHANGED] 4800 Relocated network exceptions to :stripe-core.
- [CHANGED] 4803 Remove network related internal files.
- [CHANGED] 4803 The following classes'
packages are changed
com.stripe.android.AppInfo
->com.stripe.android.core.AppInfo
com.stripe.android.model.StripeFile
->com.stripe.android.core.model.StripeFile
com.stripe.android.model.StripeFileParams
->com.stripe.android.core.model.StripeFileParams
com.stripe.android.model.StripeFilePurpose
->com.stripe.android.core.model.StripeFilePurpose
This release patches an issue with 3ds2 confirmation
- [FIXED] 4747 update 3ds2 to v6.1.5, see PR for specific issues addressed.
This release enables a new configuration object to be defined for StripeCardScan and updates our 3ds2 SDK.
- [FIXED] 4646 Update 3ds2 to latest version 6.1.4, see PR for specific issues addressed.
- [FIXED] 4669 Restrict the list of SEPA debit supported countries.
- [ADDED] 4689
The
CardImageVerificationSheet
initializer can now take an additionalConfiguration
object.
- [FIXED] 4606 Keep status bar color in PaymentLauncher
- [ADDED] 4592 Add support for launching card scan from fragments.
This release includes several bug fixes and upgrades Kotlin to 1.6.
- [CHANGED] 4546 Update to kotlin 1.6
- [FIXED] 4560 Fix
cardValidCallback
being added multiple times inCardInputWidget
. - [FIXED] 4574 Take
postalCode
into account inCardMultilineWidget
validation. - [FIXED] 4579 Fix crash when no bank is
selected in
AddPaymentMethodActivity
.
- [FIXED] 4466 Fix issues when activities are lost on low resource phones.
- [FIXED] 4557 Add missing app info to some Stripe API requests
- [FIXED] 4548 Potential work leak when canceling a card scan in StripeCardScan
- [ADDED] 4562 Add an example page for cardscan
- [FIXED] 4575 Fix card add display bug
- [CHANGED] 4515 Disable card saving by default in PaymentSheet
- [FIXED] 4504 Fix CardValidCallback not firing on postal code changes
- [CHANGED] 4512 Relay error message on PaymentResult.Failed
This release enables new payment methods in the Mobile Payment Element: Eps, Giropay, P24, Klarna, PayPal, AfterpayClearpay. For a full list of the supported payment methods, refer to our documentation .
- 4492 Enable Afterpay in Payment Sheet
- 4489 Enable Eps, Giropay, p24, klarna and paypal in payment sheet
- 4481 Add minimal user key auth support to PaymentSheet
Dependencies updated:
- 4484 Bump kotlinCoroutinesVersion from 1.5.2 to 1.6.0
- 4485 Bump kotlinx-serialization-json from 1.3.1 to 1.3.2
- 4478 Bump navigation-compose from 2.4.0-beta02 to 2.4.0-rc01
- 4475 Update gradle version from 7.1.1 to 7.3.2
- 4464 Bump accompanist-flowlayout from 0.20.2 to 0.20.3
- 4472 Bump org.jetbrains.kotlin.plugin.serialization from 1.6.0 to 1.6.10
This release includes several bug fixes and has the first release of Stripe CardScan SDK
- 4426 don't override returnUrl for instant app
- 4424 callback for postal code complete
- 4438 allow non-terminal state for PaymentSheet
- 4432 Span PMs across the PaymentSheet when there are only two of them
- 4414 Add support for new languages: fil, hr, in, ms-rMY, th, vi.
- 4408 revert static height on cmw text boxes
- 4396 Fix snackbar NPE
- 4385 Remove filter on postal codes when switching away from US
- 4354 Convert toast to snackbar in examples
- 4383 Convert entered country code to display name if needed
- 4384 CardFormView will auto convert the country name to country code when typed
Dependencies updated:
- 4463 Bump play-services-wallet from 18.1.3 to 19.0.0
- 4456 Bump gradle from 7.0.3 to 7.0.4
- 4447 Bump daggerVersion from 2.40.4 to 2.40.5
- 4441 Bump json from 20210307 to 20211205
- 4434 Bump daggerVersion from 2.40.3 to 2.40.4
- 4433 Bump ktlint from 0.43.1 to 0.43.2
- 4428 Bump robolectric from 4.7.2 to 4.7.3
- 4425 Bump ktlint from 0.43.0 to 0.43.1
- 4422 Bump daggerVersion from 2.40.2 to 2.40.3
- 4407 Bump dokka-gradle-plugin from 1.5.31 to 1.6.0
- 4406 Bump daggerVersion from 2.40.1 to 2.40.2
- 4395 Bump robolectric from 4.7.1 to 4.7.2
- 4394 Bump logging-interceptor from 4.9.2 to 4.9.3
- 4393 Bump mockitoCoreVersion from 4.0.0 to 4.1.0
- 4388 Bump robolectric from 4.7 to 4.7.1
- 4384 Bump activity-compose from 1.3.1 to 1.4.0
- 4382 Bump org.jetbrains.kotlin.plugin.serialization from 1.5.31 to 1.6.0
- 4379 Bump daggerVersion from 2.40 to 2.40.1
- 4378 Bump kotlinSerializationVersion from 1.3.0 to 1.3.1
- 4377 Bump robolectric from 4.6.1 to 4.7
- 4373 Bump tensorflow-lite from 2.6.0 to 2.7.0
- 4365 Bump binary-compatibility-validator from 0.7.1 to 0.8.0
- 4363 Bump accompanist-flowlayout from 0.20.1 to 0.20.2
- 4356 Bump composeVersion from 1.0.4 to 1.0.5
- 4353 Bump accompanist-flowlayout from 0.20.0 to 0.20.1
- 4352 Bump ktlint from 0.42.1 to 0.43.0
- 4347 Bump gson from 2.8.8 to 2.8.9
This release includes several bug fixes, introduces Klarna as a payment method binding, and renables WeChat Pay within the SDK
- 4323 reship wechat module
- 4325 Add klarna to sdk w/ example
- 4339 Bump tensorflow-lite from 2.4.0 to 2.6.0
- 4340 Bump okio from 2.10.0 to 3.0.0
- 4334 Bank value is allowed to be null in the case of "other"
- 4330 Bump lifecycle-viewmodel-compose from 2.4.0-rc01 to 2.4.0
- 4329 Bump daggerVersion from 2.39.1 to 2.40
- 4309 Card number, CVC, postal, and expiration date should only show digits in keypad
- 4198 Bump lifecycle-viewmodel-compose from 1.0.0-alpha07 to 2.4.0-rc01
- 4296 When processing Result for a PI, refresh until reaches deterministic state
- 4290 Bump composeVersion from 1.0.2 to 1.0.4
This release adds several new features to PaymentSheet
, our drop-in UI integration:
The list of supported payment methods depends on your integration. If you’re using a PaymentIntent
, we support:
- Card
- SEPA Debit, bancontact, iDEAL, sofort
If you’re using a PaymentIntent
with setup_future_usage
or a SetupIntent
, we support:
- Card
- GooglePay
Note: To enable SEPA Debit and sofort, set PaymentSheet.Configuration.allowsDelayedPaymentMethods
to true
on the client. These payment methods can't guarantee you will receive funds from your
customer at the end of the checkout because they take time to settle. Don't enable these if your
business requires immediate payment (e.g., an on-demand service).
See https://stripe.com/payments/payment-methods-guide
PaymentSheet
collects billing details like name and email for certain payment methods. Pre-fill
these fields to save customers time by setting PaymentSheet.Configuration.defaultBillingDetails
.
This is currently only available for cards + Apple/Google Pay.
PaymentSheet
supports PaymentIntents
with setup_future_usage
set. This property tells us to
save the payment method for future use (e.g., taking initial payment of a recurring subscription).
When set, PaymentSheet hides the 'Save this card for future use' checkbox and always saves.
This is currently only available for cards + Apple/Google Pay.
Initialize PaymentSheet
with a SetupIntent
to set up cards for future use without charging.
When a customer is adding a new payment method, PaymentSheet
uses information like the customer's
region to show the most relevant payment methods first.
- 4165 Postal code collection for cards is now limited to US, CA, UK
- 4274 Bump mockitoCoreVersion from 3.12.4 to 4.0.0
- 4279 Fix dependency incorrectly marked as implementation
- 4281 Add analytics event for failure creating 3ds2 params
- 4282 Bump gradle from 7.0.2 to 7.0.3
- 4283 Bump mockito-kotlin from 3.2.0 to 4.0.0
- 4291 Fix so empty string parameters are sent to the server
- 4295 Fix height on CardMultilineWidget textboxes
- 4297 Bump accompanist-flowlayout from 0.19.0 to 0.20.0
This release includes several bug fixes, introduces a test mode indicator, makes a builder class for payment sheet configuration and makes config properties immutable.
- 4202 CardInputWidget.CardValidCallback will consider the postal code in validation
- 4183 Fix address pre-populate on line 1
- 4192 Remove internal on CardUtils
- 4214 Create test mode indicator
- 4265 Make config properties immutable, create Builder
This release includes several bug fixes, introduces PaymentLauncher as a replacement of https://github.com/stripe/stripe-android/blob/master/payments-core/src/main/java/com/stripe/android/Stripe.kt see example in StripeIntentActivity on line 28
- 4157 Pass GooglePayLauncher arguments to DefaultGooglePayRepository
- 4165 Require credit postal for only US, CA, and GB
- 4173 Re-expose CardUtils.getPossibleCardBrand
- 4183 Fix address pre-populate on line 1
- 4159 Migrate PaymentController to PaymentLauncher within PaymentSheet components.
- 4175 Migrate Custom Payment Sheet Example to PaymentLauncher
This release includes several bug fixes, adds the capability to remove cards saved in PaymentSheet
and to set default billing address fields in the PaymentSheet.Configuration
. It is now also
possible to use Setup Intents with Google Pay on the multi-step Payment Sheet UI.
- 4107 Dokka updates for 17.1.1
- 4108 Support deleting saved payment methods
- 4113 Adds support for Google Pay with Setup Intents on Payment Sheet multi-step UI
- 4115 Fix infinite loading when StripeIntent is already confirmed
- 4117 Fix crash on
GooglePayLauncher
when confirmation fails - 4118 Bump binary-compatibility-validator from 0.6.0 to 0.7.0
- 4119 Bump gradle from 7.0.0 to 7.0.1
- 4122 Remove global length and CA postal restrictions
- 4124 Add default billing detail configuration to PaymentSheet
- 4127 Bump gson from 2.8.7 to 2.8.8
- 4128 Bump mockitoCoreVersion from 3.11.2 to 3.12.1
This release includes several bug fixes and temporarily
disabled WeChat Pay module
due to a backend bug, For WeChat Pay integration now, please use Stripe.confirmWeChatPayPayment
.
- 4057 Bump daggerVersion from 2.38 to 2.38.1
- 4065 Bump activity-compose from 1.3.0-rc02 to 1.3.0
- 4066 Bump gradle from 4.2.2 to 7.0.0
- 4069
GooglePayPaymentMethodLauncher
takestransactionId
and returns error code - 4086 Bump activity-compose from 1.3.0 to 1.3.1
- 4088 Upgrade kotlinVersion to 1.5.21, composeVersion to 1.0.1
- 4092 Bump ktlint from 0.41.0 to 0.42.1
- 4098 Disable WeChat Pay module
This release includes several bug fixes and introduces WeChat Pay module
- 3978 Fix bug when cancelling Payment Sheet payment with Google Pay
- 4014 Added support for WeChatPay
- 4026 Bump daggerVersion from 2.37 to 2.38
- 4034 Fix PaymentSheetActivity getting stuck in loading state during recreation
- 4035 Remove dependency from PaymentSheet on RxJava
- 4046 Fix 3DS2 redirect on Firefox
- 4049 Fix bug where 3DS2 completion did not close the PaymentSheet
- 4051 Fix Setup Intent confirmation when using GooglePayLauncher
This release includes several breaking changes. See the migration guide for more details.
This release introduces GooglePayLauncher
and GooglePayPaymentMethodLauncher
to simplify Google
Pay integration. See the Google Pay integration guide
for more details.
- #3820 Upgrade Kotlin to
1.5.10
- #3883 Remove
PaymentIntent#nextAction
- #3899 Introduce
GooglePayLauncher
andGooglePayPaymentMethodLauncher
- Drop-in classes that simplify integrating Google Pay
- #3918 Upgrade Android Gradle plugin
to
4.2.2
- #3942 Upgrade Gradle to
7.1.1
- #3944 Introduce
GooglePayLauncherContract
andGooglePayPaymentMethodLauncherContract
ActivityResultContract
classes that enable integratingGooglePayLauncher
andGooglePayPaymentMethodLauncher
in Jetpack Compose
- #3951 Upgrade material-components to
1.4.0
- #3976 Upgrade Kotlin Coroutines to
1.5.1
- #4010 Upgrade 3DS2 SDK to
6.1.1
- Migrate challenge flow to use Activity Result API
- Add support for Cartes Bancaires and UnionPay
- Upgrade
nimbus-jose-jwt
to9.11.1
- #3811 Fix
CountryCode
parceling - #3833 Fix coroutine usage in Stripe3DS2Authenticator
- #3863
Make
PayWithGoogleUtils#getPriceString()
Locale-agnostic - #3892 Add PaymentSheet support for Jetpack Compose
- #3905 Fix
StripeEditText
crash on instantiation
- #3752 Support connected accounts when using Google Pay in PaymentSheet
- #3761 Publish
CardFormView
- #3762 Add SetupIntent support in PaymentSheet
- #3769 Upgrade Google Pay SDK to
18.1.3
- #3727 Upgrade Gradle to
7.0.2
- #3734 Upgrade
androidx.appcompat:appcompat
to1.3.0
- #3735 Upgrade
fragment-ktx
to1.3.4
- #3737 Add
Stripe.createRadarSession()
API binding for/v1/radar/session
- #3739 Downgrade Kotlin from
1.5.0
to1.4.32
- #3709 Upgrade
org.jetbrains.kotlin.plugin.serialization to
1.5.0
- #3710 Upgrade kotlinx-serialization-json
to
1.2.0
- #3711 Upgrade Gradle to
7.0.1
- #3712 Move PaymentSheet example into its own app
- #3717 Upgrade mockito-core to
3.10.0
- #3721 Fix crash on Android 8 and 9 when opening the PaymentSheet
- #3722 Upgrade Android Gradle Plugin
to
4.2.1
This release adds a prebuilt UI. It combines all the steps required to pay - collecting payment details and confirming the payment - into a single sheet that displays on top of your app. See the guide for more details.
- #3663 Add support for using Chrome to host a 3DS1 authentication page when Custom Tabs are not available
- #3677 Upgrade Android Gradle Plugin
to
4.2.0
- #3680 Deprecate
returnUrl
in someConfirmPaymentIntentParams
create() methods- A custom
return_url
is not needed to return control to the app after an authentication attempt
- A custom
- #3681 Reset PaymentIntent and SetupIntent
status after 3DS1 cancellation in Custom Tabs
- When a customer closed a 3DS1 authentication page hosted in Custom Tabs, the Intent's
status
was not reset fromrequires_action
torequires_payment_method
. This is now fixed.
- When a customer closed a 3DS1 authentication page hosted in Custom Tabs, the Intent's
- #3685 Upgrade Kotlin to
1.5.0
- #3687 Add support for PaymentSheet prebuilt UI.
- #3696 Upgrade
activity-ktx
to1.2.3
- #3653 Support WeChat Pay for creating
a
PaymentMethod
and confirming aPaymentIntent
- WeChat Pay is still in beta. To enable support in API bindings, pass
the
StripeApiBeta.WeChatPayV1
as an argument when instantiating aStripe
instance.
- WeChat Pay is still in beta. To enable support in API bindings, pass
the
- #3567 Use
lifecycleScope
where possible inStripe.kt
- When calling payment and setup confirmation methods (e.g.
confirmPayment()
), using aComponentActivity
subclass (e.g.AppCompatActivity
) will make the call lifecycle-aware.
- When calling payment and setup confirmation methods (e.g.
- #3635 Deprecate
extraParams
inConfirmPaymentIntentParams
- Use
setupFutureUsage
instead.// before ConfirmPaymentIntentParams.createWithPaymentMethodCreateParams( params, clientSecret, extraParams = mapOf("setup_future_usage" to "off_session") ) // after ConfirmPaymentIntentParams.createWithPaymentMethodCreateParams( params, clientSecret, setupFutureUsage = SetupFutureUsage.OffSession )
- Use
- #3640 Add support for beta headers
using
StripeApiBeta
- The following example includes the
wechat_pay_beta=v1
flag in API requests:Stripe( context, publishableKey, betas = setOf(StripeApiBeta.WechatPayV1) )
- The following example includes the
- #3644 Use Custom Tabs for 3DS1 payment
authentication when available
- When a
ConfirmPaymentIntentParams
orConfirmSetupIntentParams
instance is created without a customreturn_url
value and used to confirm aPaymentIntent
orSetupIntent
and the device supports Custom Tabs, use Custom Tabs instead of a WebView to render the authentication page.
- When a
- #3646 Upgrade 3DS2 SDK to
5.3.1
- Gracefully handle unknown directory server ids
- #3656 Deprecate
return_url
inConfirmSetupIntentParams
- Setting a custom
return_url
prevents authenticating 3DS1 with Custom Tabs. Instead, a WebView fallback will be used.
- Setting a custom
- #3568 Add suspending function variants for payment confirmation methods
- #3587 Upgrade Kotlin to
1.4.32
- #3606 Upgrade Gradle to
7.0
- #3626 Upgrade Fragment to
1.3.3
- #3632 Upgrade 3DS2 SDK to
5.3.0
- Upgrade
nimbus-jose-jwt
to9.8.1
- Gracefully handle unknown directory servers
- Upgrade
- #3557 Add suspending function variants of API methods
- #3559 Fix OXXO confirmation flow
- #3575 Upgrade
recyclerview
to1.2.0
- #3555 Fix 3DS2 challenge completion endpoint request
- #3548 Refine
PaymentAuthWebViewClient
completion URL logic - #3549 Add SDK user agent
to
PaymentAuthWebView
's user agent - #3551 Add extra headers
to
PaymentAuthWebViewActivity
's loadUrl request
- #3537 Add account id support
in
IssuingCardPinService
- #3538 Add support for retrying rate-limited API requests
- #3543 Add better support for
auto-dismissing
PaymentAuthWebViewActivity
whenreturn_url
is not provided
- #3457 Fix issue where
StripeEditText
was overriding default text color changes - #3476 Fix
PaymentMethodsAdapter
"new card" click handling - #3479 Add support for Blik payment method
- #3482 Mark incomplete fields
in
CardMultilineWidget
as invalid - #3484 Add new
method
CardInputWidget#setCvcLabel
- #3493 Correctly return error results
from
PaymentAuthWebViewActivity
- #3504 Add default mandate data for all applicable payment method types
- #3507 Invoke issuing API requests on background thread
- #3508 Make
EphemeralKeyProvider
a fun interface - #3517 Add retry logic for 3DS2 challenge completion endpoint
- #3519 Update AndroidX dependencies
androidx.activity:activity-ktx
to1.2.2
androidx.annotation:annotation
to1.2.0
androidx.fragment:fragment-ktx
to1.3.2
androidx.lifecycle:lifecycle-*
to2.3.1
- #3520
Invoke
CardInputWidget#cardInputListener
when postal code field gets focus - #3524 Update
layoutDirection
for card widget fields- Card number, expiration date, and CVC are always LTR
- Postal code is defined by the locale
- #3381 Add
fingerprint
property toPaymentMethod.Card
- #3401 Upgrade Gradle to
6.8.3
- #3429 Fix
ExpiryDateEditText
error messages - #3436 Upgrade
kotlin-coroutines
to1.4.3
- #3438 Upgrade Kotlin to
1.4.31
- #3443 Create new transparent theme for invisible activities
- #3456 Fix tint flicker in
CardBrandView
- #3460 Upgrade
activity-ktx
to1.2.1
- #3334 Upgrade Kotlin to
1.4.30
- #3346 Upgrade Gradle to
6.8.2
- #3349 Upgrade
material-components
to1.3.0
- #3359 Add
brand
andlast4
properties toCardParams
- #3367 Upgrade
fragment-ktx
to1.3.0
andactivity-ktx
to1.2.0
- #3368 Upgrade
androidx.lifecycle
dependencies to2.3.0
- #3372 Upgrade 3DS2 SDK to
5.2.0
- Upgrade
nimbus-jose-jwt
to9.5
- Upgrade Kotlin to
1.4.30
- Upgrade
material-components
to1.3.0
- Upgrade
activity-ktx
to1.2.0
andfragment-ktx
to1.3.0
- Upgrade
androidx.lifecycle
to2.3.0
- Migrate
ProgressBar
toCircularProgressIndicator
- Upgrade
- #3275 Fix spinner positioning
in
CardMultilineWidget
- #3275 Upgrade Android Gradle Plugin
to
4.1.2
- #3291 Upgrade Gradle to
6.8.1
- #3300 Upgrade AndroidX fragment dependency
to
1.3.0-rc2
- #3302 Add support for
creating
afterpay_clearpay
payment methods - #3315 Upgrade 3DS2 SDK to
5.1.1
- Upgrade
nimbus-jose-jwt
to9.4.2
- Upgrade
- #3088 Mark some builders
in
PaymentMethodCreateParams
as deprecated - #3134 Upgrade Kotlin to
1.4.21
- #3154 Fix
CvcEditText
layout issues inCardMultilineWidget
- #3176 Update
GooglePayConfig
constructor - #3205
Add
androidx.activity:activity-ktx:1.2.0-rc01
as a dependency - #3232 Align card number field icon to end
in
CardMultilineWidget
- #3237 Upgrade 3DS2 SDK to
5.0.1
- Sources are now included with the 3DS2 SDK
- Upgrade
bcprov-jdk15to18
to1.6.8
- Upgrade
nimbus-jose-jwt
to9.4
- #3241 Upgrade Gradle to
6.8
- #3028 Upgrade Android Gradle Plugin
to
4.1.1
- #3035 Update handling of deeplinks
in
PaymentAuthWebViewClient
- #3046 Upgrade Gradle to
6.7.1
- #3056 Upgrade Kotlin to
1.4.20
- #3058 Migrate to Kotlin Parcelize plugin
- #3072 Fix crash in card widgets
- #3083 Upgrade
stripe-3ds2-android
to4.1.2
- Fix crash
- #2930 Upgrade Android Gradle Plugin
to
4.1.0
- #2936 Upgrade Gradle to
6.7
- #2955 Add support for UPI payment method
- #2965 Add support for Netbanking payment method
- #2976 Update
ExpiryDateEditText
input allowlist - #2977 Fix crash
in
CardNumberTextInputLayout
- #2981 Fix
PaymentMethodCreateParams
annotations on create methods - #2988
Update
PaymentSession.handlePaymentData()
to take a nullableIntent
- #2989 Handle null
client_secret
in resultIntent
- #2995 Upgrade constraintlayout to
2.0.4
- #3006 Upgrade coroutines to
1.4.1
- #3010 Upgrade
stripe-3ds2-android
to4.1.1
- Upgrade
bcprov-jdk15to18
to1.6.7
- Upgrade
nimbus-jose-jwt
to9.1.2
- Upgrade
- #2894 Make
CardParams
constructor public - #2895 Add support for configuring a footer layout in payment methods screen
- #2897 Only allow digits in
CvcEditText
- #2900 Only allow digits in BECS BSB and account number fields
- #2913 Add support for Oxxo PaymentMethod
This release includes several breaking changes. See the migration guide for more details.
This release adds support for 19-digit cards in CardInputWidget
and CardMultilineWidget
.
- #2715 Add support for GrabPay PaymentMethod
- #2721 Upgrade Kotlin coroutines to
1.3.9
- #2735 Upgrade Android Gradle Plugin
to
4.0.1
- #2766 Upgrade Gradle to
6.6.1
- #2821 Support pasting a 19 digit PAN
in
CardNumberEditText
- #2836 Handle
CustomerSession
failure inPaymentMethodsActivity
- #2837 Upgrade Kotlin to
1.4.10
- #2841 Add new string translations
- Adds support for several new languages
- #2847 Update
CardInputWidget
text size forldpi
screens - #2854
Upgrade
com.google.android.material:material
to1.2.1
- #2867 Upgrade 3DS2 SDK to
4.1.0
- Upgrade
material-components
to1.2.1
- Upgrade
com.nimbusds:nimbus-jose-jwt
to9.0.1
- Guard against crash when
TransactionTimer
is unavailable
- Upgrade
- #2873 Fix
CardInputWidget
field rendering in RTL - #2878 Remove
Stripe.createToken()
- #2880 Fix date formatting
in
KlarnaSourceParams
- #2887 Re-render shipping methods screen when shipping methods change
- #2671 Add
cardParams
property toCardInputWidget
andCardMultilineWidget
- #2675 Add
CardParams
methods toStripe
- #2677 Deprecate
Card.create()
- #2679 Add missing
TokenizationMethod
valuesTokenizationMethod.Masterpass
andTokenizationMethod.VisaCheckout
- #2692 Add support for Alipay PaymentMethod
- See
Stripe#confirmAlipayPayment()
- See
- #2693 Upgrade
androidx.appcompat:appcompat
to1.2.0
- #2696 Upgrade to Gradle
6.6
- #2704 Deprecate metadata field on retrieved
API objects
- See
MIGRATING.md
for more details
- See
- #2708 Bump 3DS2 SDK to
4.0.5
- Fix crash related to SDK app id
- Upgrade
com.nimbusds:nimbus-jose-jwt
to8.20
- #2666 Bump 3DS2 SDK to
4.0.4
- #2671 Add
cardParams
property toCardInputWidget
andCardMultilineWidget
- #2674 Add
SourceParams
creation method forCardParams
- #2675 Add
CardParams
methods toStripe
class - #2679 Add missing
TokenizationMethod
values- Add
Masterpass
andVisaCheckout
- Add
- #2681 Mark code using
Card
for card object creation as@Deprecated
- #2641 Add support for Bank Account as source
on
Customer
object - #2643 Add missing fields to
Customer
model - #2644 Support new directory server network
names
- Enable support for Discover and other new networks
- #2646 Allow
CardMultilineWidget
' sTextInputLayout
s to be styled - #2649 Add
@JvmOverloads
toGooglePayJsonFactory
methods - #2651 Update Kotlin coroutines to
1.3.8
- #2657 Fix HTML select option rendering
in
WebView
This release includes several breaking changes. See the migration guide for more details.
- #2542 Use
CustomerSession.stripeAccountId
inAddPaymentMethodActivity
- #2543 Target JVM 1.8
- #2544 Remove deprecated code related
to
BankAccount
andActivityStarter
- #2545 Remove
deprecated
AccountParams.create()
method - #2546 Remove deprecated
next_action
data objects fromPaymentIntent
andSetupIntent
- #2547 Convert
BankAccount.BankAccountType
toBankAccount.Type
enum - #2554 Update
PaymentAuthWebViewActivity
's back button behavior - #2551 Fix
StrictMode
DiskReadViolation
violations - #2555 Improve
PaymentAuthWebViewActivity
- #2559 Represent
PaymentIntent
' sconfirmationMethod
andcaptureMethod
as enums - #2561 Make
CardInputListener.FocusField
an enum - #2562
Make
SourceTypeModel.Card.ThreeDSecureStatus
an enum - #2563 Make
PaymentMethod.Card#brand
aCardBrand
- #2566 Make
Token.Type
an enum - #2569 Refactor
Source
class and related classes - #2572 Fix
StrictMode
DiskReadViolation
violations when starting 3DS2 - #2577
Make
CustomerSource#tokenizationMethod
aTokenizationMethod?
- #2579 Make
PaymentMethod.Card.Networks
fields public - #2587 Fix BouncyCastle Proguard rule
- #2594 Fix vector icon references in layout
files
- Reduce SDK size by ~30kb
- Fix Google Pay icon in
PaymentMethodsActivity
- #2595 Bump SDK
minSdkVersion
to21
- #2599 Remove
StripeSSLSocketFactory
- #2604 Add
stripeAccountId
toPaymentConfiguration
and use inAddPaymentMethodActivity
- #2609
Refactor
AddPaymentMethodActivity.Result
- #2610 Remove
PaymentSession
andCustomerSession
's "Activity" Listeners - #2611 Target API 30
- #2617 Convert
CustomizableShippingField
to enum - #2623 Update Gradle to
6.5.1
- #2557 Update 3DS2 SDK to
4.0.3
- #2453
Add
ConfirmPaymentIntentParams#receiptEmail
- #2458 Remove INTERAC
from
GooglePayJsonFactory.DEFAULT_CARD_NETWORKS
- #2462 Capitalize currency code
in
GooglePayJsonFactory
- #2466
Deprecate
ActivityStarter.startForResult()
with no args - #2467 Update
CardBrand.MasterCard
regex - #2475 Support
android:focusedByDefault
inCardInputWidget
- Fixes #2463 on Android API level 26 and above
- #2483 Fix formatting of
maxTimeout
value inStripe3ds2AuthParams
- #2494 Support starting 3DS2 challenge flow from a Fragment
- #2496 Deprecate
StripeIntent.stripeSdkData
- #2497 Deprecate
StripeIntent.redirectData
- #2513 Add
canDeletePaymentMethods
toPaymentSessionConfig
canDeletePaymentMethods
controls whether the user can delete a payment method by swiping on it inPaymentMethodsActivity
- #2525 Upgrade Android Gradle Plugin to 4.0.0
- #2531 Update 3DS2 SDK to 3.0.2
- Fix bug in 3DS2 SDK where multi-screen challenges were not correctly returning result to starting Activity/Fragment
- #2536 Update Gradle to 6.5
- #2441 Catch
IllegalArgumentException
inApiOperation
- #2442 Capitalize
GooglePayJsonFactory
' sallowedCountryCodes
- #2445 Bump 3DS2 SDK to
2.7.8
- Downgrade BouncyCastle to
1.64
- Downgrade BouncyCastle to
- #2379 Add optional
stripeAccountId
param to mostStripe
methods- This enables passing a
Stripe-Account
header on a per-request basis
- This enables passing a
- #2398 Add optional
stripeAccountId
param toStripe#confirmPayment()
- #2405 Add optional
stripeAccountId
param toStripe#confirmSetupIntent()
- #2406 Add optional
stripeAccountId
param toStripe#authenticateSource()
- #2408 Update
PaymentMethod.Type#isReusable
values - #2412 Make
StripeIntentResult
implementParcelable
- #2413
Create
Stripe#retrievePaymentIntent()
andStripe#retrieveSetupIntent()
async methods - #2421 Capitalize
countryCode
inGooglePayJsonFactory
- #2429 Fix SDK source paths and source publishing
- #2430
Add
GooglePayJsonFactory.isJcbEnabled
- Enables JCB as an allowed card network. By default, JCB is disabled.
- #2435 Bump 3DS2 SDK to
2.7.7
- On 3DS2 challenge screen, handle system back button tap as cancel button tap
- #2436 Add
advancedFraudSignalsEnabled
property * See Advanced fraud detection for more details
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 14.4.0 or greater.
- #2334 Add support for BACS Debit
in
PaymentMethodCreateParams
- #2335 Add support for BACS Debit Payment Method
- #2336 Improve
ShippingInfoWidget
- Make postal code and phone number fields single line
- Make phone number field use
inputType="phone"
- #2342 Convert
CardBrand
prefixes to regex- Add
^81
as a pattern forCardBrand.UnionPay
- Add
- #2343 Update
CardBrand.JCB
regex - #2362 Add support for
parsing
shippingInformation
inGooglePayResult
- #2365 Convert png assets to webp to reduce asset size
- #2373 Set default
billingAddressFields
toBillingAddressFields.PostalCode
- #2381 Add support for SOFORT PaymentMethod
- #2384 Add support for P24 PaymentMethod
- #2389 Add support for Bancontact PaymentMethod
- #2390 Bump Kotlin version to
1.3.72
- #2392 Add
shipping
property toPaymentIntent
- #2394 Add support for Giropay PaymentMethod
- #2395 Add support for EPS PaymentMethod
- #2396 Expose
klarna
property onSource
- #2401 Bump 3DS2 SDK to
2.7.4
- Add new translations for 3DS2 SDK strings
- Upgrade BouncyCastle to
1.65
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 14.4.0 or greater.
- #2299 Make
SourceParams.OwnerParams
constructor public and properties mutable - #2304 Force Canadian postal codes to be uppercase
- #2315 Add
Fragment
support toAddPaymentMethodActivityStarter
- #2325 Update
BecsDebitWidget
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 14.4.0 or greater.
- #2278 Add ability to require US ZIP code
in
CardInputWidget
andCardMultilineWidget
- #2279 Default
CardMultilineWidget
to global postal code configuration - #2282 Update pinned API version
to
2020-03-02
- #2285
Create
BecsDebitMandateAcceptanceFactory
for generating BECS Debit mandate acceptance copy - #2290 Bump 3DS2 SDK to
2.7.2
- Fix
onActivityResult()
not called after 3DS2 challenge flow when "Don't keep activities" is enabled - Use view binding
- Upgrade BouncyCastle to
1.64
- Fix
- #2293 Add min length validation to BECS account number
- #2295
Create
BecsDebitMandateAcceptanceTextView
- #2297
Add
BecsDebitWidget.ValidParamsCallback
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 14.4.0 or greater.
- #2257 Disable Kotlin Synthetics and migrate to view binding
- #2260 Update Kotlin Gradle Plugin
to
1.3.70
- #2271 Update Proguard rules to remove unneeded BouncyCastle class
- #2272 Update
kotlinx.coroutines
to1.3.4
- #2274
Make
ConfirmPaymentIntentParams#savePaymentMethod
nullable
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 14.4.0 or greater.
- #2207
Add
CardInputWidget#setPostalCodeTextWatcher
- #2211 Add support for 16-digit Diners Club card numbers
- #2215 Set
CardInputWidget
's postal code field's IME action to done - #2220 Highlight "Google Pay" option in payment methods screen if selected
- #2221 Update 14-digit Diners Club formatting
- #2224 Change
CardInputWidget
icon to represent validity of input - #2234 Add support for
setup_future_usage
in PaymentIntent confirmation - #2235 Update Android Gradle Plugin to 3.6.1
- #2236 Change
CardMultilineWidget
icon to represent validity of input - #2238 Add support for
shipping
in PaymentIntent confirmation
This release includes several breaking changes. See the migration guide for more details.
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 14.4.0 or greater.
- #2136
Update
com.google.android.material:material
to1.1.0
- #2141 Fix crash when deleting a payment
method in
PaymentMethodsActivity
- #2155 Fix parceling
of
PaymentRelayStarter.Args
- #2156 Fix FPX bank order
- #2163 Remove return type
from
PaymentSession.init()
- #2165 Simplify
PaymentSession
state and lifecycle management- When instantiating a
PaymentSession()
with anActivity
, it must now be aComponentActivity
(e.g.AppCompatActivity
orFragmentActivity
) PaymentSession#init()
no longer takes asavedInstanceState
argument- Remove
PaymentSession#savePaymentSessionInstanceState()
- Remove
PaymentSession#onDestroy()
- When instantiating a
- #2173 Fix Mastercard display name
- #2174 Add optional params
to
CustomerSession.getPaymentMethods()
- See List a Customer's PaymentMethods for more details
- #2179 Fetch previously used
PaymentMethod
inPaymentSession
- If
PaymentSessionConfig.shouldPrefetchCustomer == true
, when a newPaymentSession
is started, fetch the customer's previously selected payment method, if it exists, and return viaPaymentSessionListener#onPaymentSessionDataChanged()
- If
- #2180
Remove
PaymentSession.paymentSessionData
- #2185 Convert
Card.FundingType
toCardFunding
enum - #2189 Cleanup
StripeException
subclasses - #2194 Upgrade 3DS2 SDK to
2.5.4
- Update
com.google.android.material:material
to1.1.0
- Fix accessibility issues on 3DS2 challenge screen
- Update 3DS2 styles for consistency
- Create
BaseStripe3DS2TextInputLayout
that extendsWidget.MaterialComponents.TextInputLayout.OutlinedBox
- Create
Stripe3DS2TextInputLayout
that extendsBaseStripe3DS2TextInputLayout
- Apply
Stripe3DS2TextInputLayout
toTextInputLayout
- Create
BaseStripe3DS2EditText
with parentWidget.MaterialComponents.TextInputEditText.OutlinedBox
- Rename
Stripe3DS2EditTextTheme
toStripe3DS2EditText
and change its parent toBaseStripe3DS2EditText
- Apply
Stripe3DS2EditText
toTextInputEditText
- Create
- Update
- #2195 Upgrade kotlin coroutines to 1.3.3
- #2196 Create
SourceTypeModel
sealed class- Move
SourceCardData
subclass toSourceTypeModel.Card
- Move
SourceSepaDebitData
subclass toSourceTypeModel.SepaDebit
- Change type of
Source#sourceTypeModel
toSourceTypeModel?
- Move
- Update 3DS2 SDK to v2.3.7
- Update dependencies
- Add
advancedFraudSignalsEnabled
property * See Advanced fraud detection for more details - Include sources
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 13.2.0 or greater.
- #2112 Enable adding Mandate to confirm params
- #2113 Enable requiring postal code
in
CardInputWidget
andCardMultilineWidget
- #2114 Fix bug in
highlighting
StripeEditText
fields with errors
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 13.2.0 or greater.
- #2105 Fix crash when confirming a Payment Intent or Setup Intent and an error is encountered
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 13.2.0 or greater.
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 13.2.0 or greater.
- #2074 Populate
isSelected
for selectedPaymentMethodsAdapter
item - #2076 Announce invalid fields when
validating
CardInputWidget
- #2077 Add delete payment method
accessibility action in
PaymentMethodsAdapter
- #2078 Make
StripeEditText
errors accessible - #2082 Use ErrorMessageTranslator for AddPaymentMethodActivity errors
- #2083 Add accessibility traversal rules
on
AddPaymentMethodActivity
- #2084 Update
BankAccount
constructor to support all bank account token parameters - #2086 Add
id
andstatus
fields toBankAccount
- #2087 Use
BankAccountTokenParams
for bank account token creation- Create
Stripe#createBankAccountToken()
andStripe#createBankAccountTokenSynchronous()
that take aBankAccountTokenParams
object - Deprecate
BankAccount
for token creation
- Create
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 13.2.0 or greater.
- #2055 Fix styling of
CardInputWidget
andCardMultilineWidget
com.google.android.material:material:1.1.0-rc01
breaksTextInputLayout
styling; fix by explicitly setting a style that extendsWidget.Design.TextInputLayout
- #2056 Update
CardInputWidget
'sEditText
size- Fix "Postal Code" field being partially cut off on some screens
- #2066 Add support for uploading a file to
Stripe
- See
Stripe#createFile()
andStripe#createFileSynchronous()
- See
- #2071 Fix accessibility issues on Payment
Methods selection screen
- Mark
View
s representing existing payment methods and add a new payment method action as focusable and clickable
- Mark
This release includes several breaking changes. See the migration guide for more details.
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 13.2.0 or greater.
- #1950 Add idempotency key for
Stripe
API POST methodsclass MyActivity : AppCompatActivity() { private fun createPaymentMethod( params: PaymentMethodCreateParams, idempotencyKey: String? ) { stripe.createPaymentMethod( params = params, idempotencyKey = idempotencyKey, callback = object : ApiResultCallback<PaymentMethod> { override fun onSuccess(result: PaymentMethod) { } override fun onError(e: Exception) { } } ) } }
- #1993 Remove deprecated methods
from
PaymentSession
- See the Migration Guide for more details
- #1994 Enable postal code field
in
CardInputWidget
by default - #1995 Enable Google Pay option in Basic
Integration and Stripe Activities
-
PaymentSession
PaymentSessionConfig.Builder() // other settings .setShouldShowGooglePay(true) .build()
-
PaymentMethodsActivity
PaymentMethodsActivityStarter.Args.Builder() // other settings .setShouldShowGooglePay(true) .build()
-
- #1996 Update postal code logic
for
CardMultilineWidget
- Default to showing postal code (i.e.
shouldShowPostalCode = true
) - Postal code is now optional when displayed
- Remove validation on postal code field
- Change postal code field hint text to "Postal Code"
- Remove
CardInputListener.onPostalCodeComplete()
- Default to showing postal code (i.e.
- #1998 Use
CardBrand
enum to represent card brands- Change the type of
Card#brand
andSourceCardData#brand
properties fromString?
toCardBrand
- Remove
Card.CardBrand
- Change the type of
- #1999 Remove deprecated
BroadcastReceiver
logic fromPaymentFlowActivity
- See the Migration Guide for more details
- #2000 Pass
PaymentSessionConfig
instance toPaymentSession
constructor - #2002 Fix regression in
CardInputWidget
styling To customize the individualEditText
fields ofCardInputWidget
, define aStripe.CardInputWidget.EditText
style that extendsStripe.Base.CardInputWidget.EditText
. For example,<style name="Stripe.CardInputWidget.EditText" parent="Stripe.Base.CardInputWidget.EditText"> <item name="android:textSize">22sp</item> <item name="android:textColor">@android:color/holo_blue_light</item> <item name="android:textColorHint">@android:color/holo_orange_light</item> </style>
- #2003 Add support for authenticating
a
Source
via in-app WebViewclass MyActivity : AppCompatActivity() { private fun authenticateSource(source: Source) { stripe.authenticateSource(this, source) } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { super.onActivityResult(requestCode, resultCode, data) if (data != null && stripe.isAuthenticateSourceResult(requestCode, data)) { stripe.onAuthenticateSourceResult( data, object : ApiResultCallback<Source> { override fun onSuccess(result: Source) { } override fun onError(e: Exception) { } } ) } } }
- #2006 Create
TokenizationMethod
enum- Change the type of
Card#tokenizationMethod
andSourceCardData#tokenizationMethod
fromString?
toTokenizationMethod?
- Change the type of
- #2013 Populate shipping address country from pre-populated shipping info
- #2015 Update
PaymentSessionConfig
's defaultBillingAddressFields
toPostalCode
- #2020 Change
PaymentMethod.type
fromString?
toPaymentMethod.Type?
- #2028 Update
SourceParams
fields- Update
setOwner()
to takeOwnerParams
instead ofMap
- Remove
setRedirect()
, usesetReturnUrl()
instead - Update some setters to take null values, simplifying usage
- Update comments
- Update
- #2029 Update
CardInputWidget
to useTextInputLayout
- Make
StripeEditText
extendTextInputEditText
- Make
- #2038 Update
CardInputWidget
to focus on first error field when validating - #2039 Add support for creating a person
token
- Add
Stripe#createPersonToken()
andStripe#createPersonTokenSynchronous()
- Add
- #2040 Add support for CVC recollection in
PaymentIntents
- Update
ConfirmPaymentIntentParams.createWithPaymentMethodId()
with optionalPaymentMethodOptionsParams?
argument
- Update
- #2042
Create
AccountParams.BusinessTypeParams
BusinessTypeParams.Company
andBusinessTypeParams.Individual
model the parameters for creating a company or individual account token. Use these instead of creating raw maps representing the data.AccountParams.createAccountParams()
is now deprecated. Use the appropriateAccountParams.create()
method.
- Update 3DS2 SDK to v2.3.7
- Update dependencies
- Add
advancedFraudSignalsEnabled
property * See Advanced fraud detection for more details - Include sources
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 12.9.0 or greater.
- #1974
Add
PaymentSessionConfig#shouldPrefetchCustomer
- Mark
PaymentSessionConfig#init()
withshouldPrefetchCustomer
argument as deprecated
- Mark
- #1980 Don't show a
Dialog
inStripeActivity
ifisFinishing()
- #1989 Create
CardBrand
enum - #1990 Relax validation of UK postal codes
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 12.9.0 or greater.
- #1968 Upgrade 3DS2 SDK to
2.2.7
- Downgrade to
com.google.android.material:material:1.0.0
- Downgrade to
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 12.9.0 or greater.
- #1947 Allow setting of window flags on
Stripe Activities
-
Basic Integration
PaymentSessionConfig.Builder() .setWindowFlags(WindowManager.LayoutParams.FLAG_SECURE) .build()
-
Custom Integration
AddPaymentMethodActivityStarter.Args.Builder() .setWindowFlags(WindowManager.LayoutParams.FLAG_SECURE) .build()
-
- #1956 Add support for configuring billing
address fields on
AddPaymentMethodActivity
-
Basic Integration
PaymentSessionConfig.Builder() .setBillingAddressFields(BillingAddressFields.Full) .build()
-
Custom Integration
AddPaymentMethodActivityStarter.Args.Builder() .setBillingAddressFields(BillingAddressFields.Full) .build()
-
- #1957
Enable
PaymentSessionConfig.ShippingInformationValidator
andPaymentSessionConfig.ShippingMethodsFactory
- #1958 Add validation for PaymentIntent and SetupIntent client secrets
- #1959 Upgrade 3DS2 SDK to
2.2.6
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 12.9.0 or greater.
- #1915 Update API version to 2019-12-03
- #1928 Make Payment Method
Wallet
a sealed class - #1930 Update text size for
CardInputWidget
fields - #1939 Update Android Gradle Plugin
to
3.5.3
- #1946 Upgrade 3DS2 SDK to
2.2.5
- Upgrade to
com.google.android.material:material:1.2.0-alpha2
- Upgrade to
- #1949 Catch
NullPointerException
when callingStripeEditText.setHint()
. This is a workaround for a known issue on some Samsung devices. - #1951 Expose ability to enable postal code
on
CardInputWidget
- Enable via layout
<com.stripe.android.view.CardInputWidget android:id="@+id/card_input_widget" android:layout_width="match_parent" android:layout_height="wrap_content" app:shouldShowPostalCode="true" />
- Enable via code
- Java:
cardInputWidget.setPostalCodeEnabled(true)
- Kotlin:
cardInputWidget.postalCodeEnabled = true
- Java:
- Enable via layout
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 12.9.0 or greater.
- #1897 Upgrade 3DS2 SDK to
2.2.4
- Fix crash when using Instant App
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 12.9.0 or greater.
- #1859 Create
GooglePayJsonFactory
, a factory for generating Google Pay JSON request objects - #1860 Namespace drawables with
stripe_
prefix - #1861 Create
GooglePayResult
to parse and model Google Pay Payment Data response - #1863 Complete migration of SDK code to Kotlin 🎉
- #1864 Make Klarna Source creation methods
public and create example
- See
SourceParams.createKlarna()
- See
- #1865 Make all model classes
implement
Parcelable
- #1871 Simplify configuration of example app
- Example app can be configured via
$HOME/.gradle/gradle.properties
instead ofSettings.kt
STRIPE_EXAMPLE_BACKEND_URL=https://hidden-beach-12345.herokuapp.com/ STRIPE_EXAMPLE_PUBLISHABLE_KEY=pk_test_12345 STRIPE_ACCOUNT_ID=
- Example app can be configured via
- #1883
Enable
PaymentSessionConfig.ShippingInformationValidator
andPaymentSessionConfig.ShippingMethodsFactory
- See the Migration Guide for an example of how to use the new interfaces
- #1884 Mark
PaymentFlowExtras
as deprecated - #1885 Create
Stripe#retrieveSource()
for asynchronousSource
retrieval - #1890 Upgrade 3DS2 SDK to 2.2.3
- Fix crash when using Instant App
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 12.9.0 or greater.
- #1836 Add support
for statement_descriptor
field to
Source
model viaSource#statementDescriptor
- #1837 Add support
for source_order param
via
SourceOrderParams
- #1839 Add support
for source_order field
to
Source
model viaSource#sourceOrder
- #1842
Add
PaymentSessionConfig.Builder.setAllowedShippingCountryCodes()
. Used to specify an allowed set of countries when collecting the customer's shipping address viaPaymentSession
.// Example PaymentSessionConfig.Builder() // only allowed US and Canada shipping addresses .setAllowedShippingCountryCodes(setOf("US", "CA")) .build()
- #1845 Fix country code validation
in
PaymentFlowActivity
's shipping information screen- Require that the customer submits a country that exists in the autocomplete dropdown
- Show error UI when the submitted country fails validation
- #1857 Fix crash related to Kotlin Coroutines
- Downgrade
kotlinx-coroutines
from1.3.2
to1.3.0
- Add Proguard rules
- Downgrade
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 12.9.0 or greater.
- #1792 Remove default selection of a Payment
Method from
PaymentMethodsActivity
- #1797 Document
StripeDefaultTheme
style - #1799 Document
Stripe3DS2Theme
and related styles - #1809 Update to Gradle 6.0
- #1810 Update API version to 2019-11-05
- #1812 Upgrade 3DS2 SDK to 2.2.2
- #1813 Don't select a new PaymentMethod after
deleting one in
PaymentMethodsActivity
- #1820 Update
PaymentMethodsActivity
result andPaymentSession.handlePaymentData()
logicPaymentMethodsActivity
returns result code ofActivity.RESULT_OK
when the user selected a Payment MethodPaymentMethodsActivity
returns result code ofActivity.RESULT_CANCELED
when the user taps back via the toolbar or device back buttonPaymentSession#handlePaymentData()
now callsPaymentSessionListener#onPaymentSessionDataChanged()
for any result fromPaymentMethodsActivity
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 12.9.0 or greater.
- #1775 Add support for idempotency key on Stripe Token API requests
- #1777 Make
Card
implementParcelable
- #1781 Mark
Stripe#createToken()
as@Deprecated
; replace withStripe#createCardToken()
- #1782 Mark
Stripe#authenticatePayment()
andStripe#authenticateSetup()
as@Deprecated
; replace withStripe#handleNextActionForPayment()
andStripe#handleNextActionForSetupIntent()
, respectively - #1784 Update API version to 2019-10-17
- #1787 Fix
CardNumberEditText
performance - #1788 Fix
ExpiryDateEditText
performance
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 12.9.0 or greater.
- #1745 Make
StripeEditText
public - #1746 Make
FpxBank
enum public - #1748 Update FPX bank list with offline status
- #1755 Annotate
Stripe
methods with@UiThread
or@WorkerThread
- #1758
Refactor
CustomerSession.setCustomerShippingInformation()
- #1764 Add support for Javascript confirm dialogs in 3DS1 payment authentication WebView
- #1765 Fix rotation issues with shipping info and shipping method selection screens
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 12.9.0 or greater.
- #1738 Enable specifying Payment Method type to use in UI components
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 12.9.0 or greater.
- #1721 Properly cleanup and
destroy
PaymentAuthWebView
- #1722 Fix crash in 3DS2 challenge screen when airplane mode is enabled
- #1731
Create
ConfirmSetupIntentParams.createWithoutPaymentMethod()
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 12.9.0 or greater.
- #1699 Remove deprecated methods
- Replace
Stripe#createTokenSynchronous(Card)
withStripe#createCardTokenSynchronous(Card)
- Replace
Card#getCVC()
withCard#getCvc()
- Remove
AddPaymentMethodActivity#EXTRA_NEW_PAYMENT_METHOD
, useAddPaymentMethodActivityStarter.Result.fromIntent()
instead - Create overloaded
ShippingMethod
constructor with optionaldetail
argument
- Replace
- #1701 Payment Intent API requests (i.e.
requests to
/v1/payment_intents
) now return localized error messages - #1706 Add
Card#toPaymentMethodsParams()
to create aPaymentMethodCreateParams
instance that includes both card and billing details
- Update 3DS2 SDK to v2.3.7
- Update dependencies
- Add
advancedFraudSignalsEnabled
property * See Advanced fraud detection for more details - Include sources
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 11.3.0 or greater.
- #1686 Fix native crash on some devices in 3DS1 payment authentication WebView
- #1690 Bump API version to
2019-10-08
- #1693 Add support for SEPA Debit in PaymentMethod
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 11.3.0 or greater.
- #1677 Add logging to PaymentAuthWebViewActivity
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 11.3.0 or greater.
- #1616
Make
AddPaymentMethodActivityStarter.Result.fromIntent()
public - #1619
Add
CardMultilineWidget#getPaymentMethodBillingDetailsBuilder()
- #1643
Create
Stripe.createCardTokenSynchronous()
- #1647 Add
StripeDefault3DS2Theme
for 3DS2 customization via themes - #1652 In
PaymentMethodsActivity
, select a new Payment Method if the previously selected one was deleted - #1658 Add
stripe_
prefix to Stripe resources - #1664 Upgrade AGP to 3.5.1
- #1666 Add logging support
// Example val enableLogging: Boolean = true val stripe: Stripe = Stripe(this, "pk_test_demo", enableLogging = enableLogging) stripe.confirmPayment(this, confirmPaymentIntentParams) // View logs using // $ adb logcat -s StripeSdk
- #1667 Add support for SEPA Debit Payment
Methods
// Example PaymentMethodCreateParams.create( PaymentMethodCreateParams.SepaDebit.Builder() .setIban("__iban__") .build() )
- #1668 Update Google Pay integration example in example app
- #1669 Update 3DS2 SDK to 2.1.3
- Prevent challenge screen's cancel button from being clicked more than once
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 11.3.0 or greater.
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 11.3.0 or greater.
- #1582 Update 3DS2 SDK to 2.0.5
- Add translations for
ko
,nn
,ru
, andtr
- Add translations for
- #1583
Create
AddPaymentMethodActivityStarter.Result
- Mark
AddPaymentMethodActivity.EXTRA_NEW_PAYMENT_METHOD
as@Deprecated
. UseAddPaymentMethodActivityStarter.Result
instead.
// Example // before val paymentMethod: PaymentMethod? = data.getParcelableExtra(EXTRA_NEW_PAYMENT_METHOD) // after val result: AddPaymentMethodActivityStarter.Result = AddPaymentMethodActivityStarter.Result.fromIntent(data) val paymentMethod: PaymentMethod? = result?.paymentMethod
- Mark
- #1587 Fix logic for entering 3DS2 challenge flow
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 11.3.0 or greater.
- #1581 Fix WebView issues in API 21 and 22
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 11.3.0 or greater.
- #1578 Disable dokka in
:stripe
to fix release process
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 11.3.0 or greater.
- #1545 Add Connect Account Id support
to
GooglePayConfig
- #1560 Add swipe-to-delete gesture on added
Payment Methods in
PaymentMethodsActivity
- #1560 Fix
HandlerThread
leak inPaymentController.ChallengeFlowStarterImpl
- #1561 Move
CardMultilineWidget
focus to first error field on error - #1572 Update 3DS2 SDK to 2.0.4
- #1574 Fix
HandlerThread
leak inStripeFireAndForgetRequestExecutor
- #1577 Fix
ShippingMethodView
height
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 11.3.0 or greater.
- #1538 Update
PaymentAuthWebView
to fix issues
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 11.3.0 or greater.
- #1533 Update 3DS2 SDK to 2.0.3
- #1534 Add ability to select checked item
in
PaymentMethodsActivity
- #1537 Fix out-of-band web payment authentication
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 11.3.0 or greater.
- #1530 Finish
PaymentAuthWebViewActivity
after returning from bank app
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 11.3.0 or greater.
- #1527 Support
"intent://"
URIs in payment auth WebView
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 11.3.0 or greater.
- #1518 Fix crash when payment authentication is started from Fragment and user taps back twice
- #1523 Correctly handle deep-links in the in-app payment authentication WebView
- #1524 Update 3DS2 SDK to 2.0.2
- Fix issue with 3DS2 encryption and older BouncyCastle versions
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 11.3.0 or greater.
- #1474 Fix darkmode issue with "Add an Address" form's Country selection dropdown
- #1475 Hide keyboard after submitting "Add an Address" form in standard integration
- #1478 Migrate to AndroidX
- #1479 Persist
PaymentConfiguration
toSharedPreferences
- #1480 Make
Source
immutable - #1481 Remove
@Deprecated
methods fromStripeIntent
models- Remove
PaymentIntent#getSource()
; usePaymentIntent#getPaymentMethodId()
- Remove
SetupIntent#getCustomerId()
- Remove
SourceCallback
; useApiResultCallback<Source>
- Remove
TokenCallback
; useApiResultCallback<Token>
- Remove
- #1485 Update 3DS2 SDK to 2.0.1
- #1494 Update
PaymentMethodsActivity
UX - #1495 Remove
@Deprecated
fields and methods fromPaymentMethodsActivity
- #1497 Remove
Stripe
methods that accept a publishable key - #1506 Remove
Stripe#createToken()
withExecutor
argument - #1514 Bump API version to
2019-09-09
- Update 3DS2 SDK to v1.3.1
- Update dependencies
- Add
advancedFraudSignalsEnabled
property * See Advanced fraud detection for more details - Include sources
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 10.5.0 or greater.
- Apply hot-fixes from 11.x
- Update BouncyCastle Proguard rules. Keep only the BouncyCastle provider classes.
- Hide progress bar in
onPageFinished()
instead ofonPageCommitVisible()
to avoid potential crash on some devices.
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 10.5.0 or greater.
- Apply hot-fixes from 11.x
- Enable DOM storage in
PaymentAuthWebView
to fix crash
- Enable DOM storage in
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 10.5.0 or greater.
- Apply hot-fixes from 11.x
- #1471 Fix issue with
CardUtils
visibility
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 10.5.0 or greater.
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 10.5.0 or greater.
- #1457 Fix crash in "Add an Address" screen when value for Country is empty
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 10.5.0 or greater.
- #1421
Create
PaymentMethodsActivityStarter.Result
to retrieve result ofPaymentMethodsActivity
- #1427 Mark
Stripe
methods that accept a publishable key as deprecated// Example // before val stripe = Stripe(context) stripe.createPaymentMethodSynchronous(params, "pk_test_demo123") // after val stripe = Stripe(context, "pk_test_demo123") stripe.createPaymentMethodSynchronous(params)
- #1428 Guard against opaque URIs
in
PaymentAuthWebViewClient
- #1433 Add
setCardHint()
toCardInputWidget
andCardMultilineWidget
- #1434 Add setters on Card widgets for card number, expiration, and CVC
- #1438 Bump API version to
2019-08-14
- #1446 Update
PaymentIntent
andSetupIntent
models- Add missing
PaymentIntent#getPaymentMethodId()
- Mark
PaymentIntent#getSource()
as@Deprecated
- usePaymentIntent#getPaymentMethodId()
- Mark
SetupIntent#getCustomerId()
as@Deprecated
- this attribute is not available with a publishable key
- Add missing
- #1448 Update Gradle to 5.6.1
- #1449 Add support for
cancellation_reason
attribute to PaymentIntent - #1450 Add support for
cancellation_reason
attribute to SetupIntent - #1451 Update Stripe 3DS2 library to
v1.2.2
- Dismiss keyboard after submitting 3DS2 form
- Exclude
org.ow2.asm:asm
dependency
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 10.5.0 or greater.
- #1394 Add
shouldPrefetchCustomer
arg toPaymentSession.init()
- #1395 Fix inconsistent usage of relative
attributes on card icon in
CardMultilineWidget
- #1412
Make
AddPaymentMethodActivityStarter()
available for startingAddPaymentMethodActivity
// Example usage AddPaymentMethodActivityStarter(activity).startForResult( AddPaymentMethodActivityStarter.Args.Builder() .setShouldAttachToCustomer(true) .setShouldRequirePostalCode(true) .build() )
- #1417 Update Stripe 3DS2 library to
v1.2.1
-
Add support for updating status bar color and progress color using
Stripe3ds2UiCustomization.Builder.createWithAppTheme(Activity)
or UI customization builders// Example usage Stripe3ds2UiCustomization.Builder.createWithAppTheme(this) PaymentAuthConfig.Stripe3ds2UiCustomization.Builder() .setAccentColor("#9cdbff") .build() PaymentAuthConfig.Stripe3ds2ToolbarCustomization.Builder() .setStatusBarColor("#392996") .build()
-
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 10.5.0 or greater.
- #1327 Deprecate
SourceCallback
andTokenCallback
- Use
ApiResultCallback<Source>
andApiResultCallback<Token>
respectively
- Use
- #1332 Create
StripeParamsModel
interface for Stripe API param classes - #1334 Remove
StripeModel#toMap()
- #1340 Upgrade Android Gradle Plugin
to
3.5.0-rc03
- #1342 Update Builds Tools to
29.0.2
- #1347 Mark
Stripe.setStripeAccount()
as deprecated- Use
new Stripe(context, "publishable_key", "stripe_account_id")
instead
- Use
- #1376 Add
shouldPrefetchEphemeralKey
arg toCustomerSession.initCustomerSession()
- #1378 Add
last_payment_error
field to PaymentIntent model - #1379 Add
last_setup_error
field to SetupIntent model - #1388 Update Stripe 3DS2 library to
v1.1.7
- Fix issue in
PaymentAuthConfig.Stripe3ds2UiCustomization.Builder()
andPaymentAuthConfig.Stripe3ds2UiCustomization.Builder.createWithAppTheme()
that was resulting in incorrect color customization on 3DS2 challenge screen - Improve accessibility of select options on 3DS2 challenge screen by setting minimum height to 48dp
- Fix issue in
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 10.5.0 or greater.
- #1314 Expose pinned API version via Stripe.API_VERSION
- #1315 Create SourceParams#createCardParamsFromGooglePay()
- #1316 Fix issue
where
InvalidRequestException
is thrown when confirming a Setup Intent using ConfirmSetupIntentParams#create()
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 10.5.0 or greater.
- #1275 Add support for
launching
PaymentSession
from aFragment
- #1288 Upgrade Android Gradle Plugin
to
3.5.0-rc02
- #1289 Add support for launching payment
confirmation/authentication flow from a
Fragment
- #1290 Convert samplestore app to Kotlin
- #1297 Convert example app to Kotlin
- #1300
Rename
StripeIntentResult#getStatus()
to StripeIntentResult#getOutcome() - #1302 Add GooglePayConfig#getTokenizationSpecification() to configure Google Pay to use Stripe as the gateway
- #1304
Add PaymentMethodCreateParams#createFromGooglePay()
to create
PaymentMethodCreateParams
from a Google Pay PaymentData object
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 10.5.0 or greater.
- #1275 Fix
StripeIntentResult.Status
logic - #1276 Update Stripe 3DS2 library to
v1.1.5
- Fix crash in 3DS2 challenge flow when conscrypt is installed
- #1277 Fix StrictMode failure
in
StripeFireAndForgetRequestExecutor
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 10.5.0 or greater.
- #1244 Add support for Stripe Connect in 3DS2
- #1256 Add
StripeIntentResult.Status
flag to 3DS1 authentication results - #1257 Correctly pass
Status.FAILED
when 3DS2 auth fails - #1259
Add
StripeIntentResult.Status.TIMEDOUT
value - #1263
Update
PaymentSession#presentPaymentMethodSelection()
logic- Add overloaded
presentPaymentMethodSelection()
that takes a Payment Method ID to initially select - Add
PaymentSessionPrefs
to persist customer's Payment Method selection acrossPaymentSession
instances
- Add overloaded
- #1264 Update
Stripe3ds2UiCustomization
- Add
Stripe3ds2UiCustomization.Builder.createWithAppTheme(Activity)
to create aStripe3ds2UiCustomization.Builder
based on the app theme
- Add
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 10.5.0 or greater.
- Update Stripe 3DS2 library to
v1.1.2
- Disable R8 following user-reported issue
- Update Proguard rules
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 10.5.0 or greater.
- #1238 Update Proguard rules to fix integration issues with Stripe 3DS2 library
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 10.5.0 or greater.
- #1226 Prevent non-critical network requests from blocking API requests by moving fire-and-forget requests to separate thread
- #1228 Update to Android Gradle Plugin to 3.5.0-rc01
- Update Stripe 3DS2 library to
v1.1.0
- Re-enable R8 following bug fix in Android Studio 3.5
- Move
org.ow2.asm:asm
dependency totestImplementation
- Fix known issue with 3DS2 challenge flow and API 19 devices
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 10.5.0 or greater.
- Add support for 3DS2 authentication through the Payment Intents API and Setup Intents API.
See Supporting 3D Secure Authentication on Android
.
- Payment Intents - see our guide
for Using Payment Intents on Android
- Stripe#confirmPayment() for automatic confirmation
- Stripe#authenticatePayment() for manual confirmation
- Setup Intents - see our guide
for Saving card details without a payment
- Stripe#confirmSetupIntent() for automatic confirmation
- Stripe#authenticateSetup() for manual confirmation
- PaymentAuthConfig for optional authentication customization
- Payment Intents - see our guide
for Using Payment Intents on Android
- Add support for the Setup Intents API. See Saving card details without a payment . * Use ConfirmSetupIntentParams to confirm a SetupIntent
- #1172 Refactor
PaymentIntentParams
- #1173 Inline all
StringDef
values
- Update 3DS2 SDK to v1.3.1
- Update dependencies
- Add
advancedFraudSignalsEnabled
property * See Advanced fraud detection for more details - Include sources
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 9.4.0 or greater.
- #1193 Fix
RuntimeException
related to 3DS2
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 9.4.0 or greater.
- #1154 Fix
NullPointerException
inPaymentMethodsActivity
- #1174 Add
getCardBuilder()
method to Card widgets - #1184 Fix
NullPointerException
related to 3DS2
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 9.4.0 or greater.
- #1148 Fix 3DS2 dependency Proguard issues
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 9.4.0 or greater.
- #1138 Fix
AppInfo
param name
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 9.4.0 or greater.
- #1133 Make
AppInfo
public
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 9.4.0 or greater.
- #1108 Create
Card#toBuilder()
- #1114 Update
CustomerSession
methods to take@NonNull
listener argument - #1125 Create
StripeIntent
interface and movePaymentIntent.Status
andPaymentIntent.NextActionType
toStripeIntent
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 9.4.0 or greater.
- #1104 Handle null response body
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 9.4.0 or greater.
- #1099 Fix Gradle module issue
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 9.4.0 or greater.
- #1019
Introduce
CustomerSession#detachPaymentMethod()
- #1067 Remove
PaymentResultListener
. ReplacePaymentSession#completePayment()
withPaymentSession#onCompleted()
. - #1075 Make model classes final
- #1080 Update Build Tools to 29.0.0
- #1082 Remove
StripeJsonModel#toJson()
- #1084 Rename
StripeJsonModel
toStripeModel
- #1093 Add
Stripe#setAppInfo()
. See Identifying your plug-in or library for more details.
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 9.4.0 or greater.
- #1019 Upgrade pinned API version
to
2019-05-16
- #1036 Validate API key before every request
- #1046 Make
Card
model fields immutable
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 9.4.0 or greater.
- #1006 Remove null values
in
PaymentMethod.BillingDetails#toMap()
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 9.4.0 or greater.
- #952 Update standard integration UI to use PaymentMethods instead of Sources
- #962 Add initial dark theme support to widgets
- #963 Add Autofill hints to forms
- #964 Upgrade Android Gradle Plugin to 3.4.1
- #972 Add PaymentIntent#getNextActionType()
- #989 Fix StripeEditText's error color logic
- #1001
Overload
PaymentSession#presentPaymentMethodSelection
to allow requiring postal field
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 9.4.0 or greater.
- #945 Add
business_type
param to Account tokenization when available
Note: this release has breaking changes. See MIGRATING.md
This version of the SDK is not compliant with Google Play's Prominent Disclosure & Consent Requirements. The non-compliant code was unused and has been removed. Please upgrade to version 9.4.0 or greater.
- #873 Update pinned API version
to
2019-03-14
- #875 Inject
Context
inCustomerSession
andStripeApiHandler
- #907 Update
PaymentIntent
model for API2019-02-11
- #894 Upgrade Android Gradle Plugin to 3.4.0
- #872
Create
CustomerSession.ActivityCustomerRetrievalListener
to handleActivity
weak refs - #935 Increase
minSdkVersion
from 14 to 19
- #863 Fix garbage-collection issues
with
Stripe
callbacks - #856 Fix race-conditions
with
CustomerSession
listeners - #857 Correctly parse JSON when creating or deleting customer card source
- #858 Fix crash on some devices (e.g. Meizu)
related to
TextInputEditText
- #862 Improve
PaymentMethodCreateParams.Card
creation - #870 Update
PaymentIntent#Status
enum - #865 Fix some memory leak issues in example app
- #849 Downgrade from AndroidX to Android Support Library
- #843 Add setter for custom CVC field label
on
CardMultilineWidget
- #850 Fix a11y traversal order
in
CardInputWidget
- #839 Refactor
StripeApiHandler
to use instance methods
- #805 Clean up
PaymentIntent
- #806 Pass
StripeError
in onError - #807 Create
ErrorMessageTranslator
and default implementation - #809 Make
StripeSourceTypeModel
public - #817 Fix TalkBack crash in
CardInputWidget
- #822 Fix account token failure on latest API version
- #827 Upgrade Android Gradle Plugin to 3.3.2
- #828 Support save to customer param
on
PaymentIntent
confirm - #829 Add
"not_required"
as possible value ofSource
redirect[status]
- #830 Add
"recommended"
as possible value ofSource
card[three_d_secure]
- #832 Pin all Stripe requests to API
version
2017-06-05
- #793 Add StripeError field to StripeException
- #787 Add support for creating a CVC update Token
- #791 Prevent AddSourceActivity's SourceCallback from being garbage collected
- #790 Fix IME action logic on CVC field in CardMultilineWidget
- #786 Add metadata field to Card
- #780 Fix bug related to ephemeral keys introduced in 8.2.0
- #778 Migrate to Android X
- #771 Add errorCode and errorDeclineCode fields to InvalidRequestException
- #766 Upgrade to Android Gradle Plugin 3.3.0
- #770 Remove Saudi Arabia from the no postal code countries list
- #675 Add support for Android 28
- Update Android SDK Build Tools to 28.0.3
- Update Android Gradle plugin to 3.2.1
- Update compileSdkVersion and targetSdkVersion to 28
- Update Android Support Library to 28.0.0
- #671 Add ability to set card number and
validate on
CardMultilineWidget
- #537 Add support for iDeal Source with connected account
- #669 Add support for Portuguese
- #624 Add ability to cancel callbacks without
destroying
CustomerSession
instance - #673 Improve accessibility on card input fields
- #656 Add
AccessibilityNodeInfo
to widgets - #678 Fix crash in
ShippingMethodView
on API 16
- Add support for latest version of PaymentIntents
- Fix NPEs in
CountryAutocompleteTextView
- Fix NPEs in
PaymentContext
experiences - Helper method for converting tokens to sources
- Fix bug with Canadian and UK postal code validation
- #609 BREAKING Renamed PaymentIntentParams methods for readibility
- Add beta support for PaymentIntents for usage with card sources []
- Add sample integration with PaymentIntents
- Fix crash in MaskedCardAdapter
- #589 BREAKING Add
preferredLanguage
parameter toSourceParams.createBancontactParams
- #583 Add EPS and Multibanco support
to
SourceParams
- #586 Add
RequiredBillingAddressFields.NAME
option to enumeration - #583 BREAKING Fix
@Nullable
and@NonNull
annotations forcreateP24Params
function
- Make iDEAL params match API -
name
is optional and optional idealbank
andstatement_descriptor
can be set independently
- #559 Remove Bitcoin source support. See MIGRATING.md.
- #549 Add create Masterpass source support
- #548 Add support for 3 digit American Express CVC
- #547 Fix crash when JCB icon is shown
- Handle soft enter key in AddSourceActivity
- Add translations for ” ending in ” in each supported language.
- Add API bindings for removing a source from a customer.
- Update Android support library to 27.1.0.
- Fix invalid response from stripe api error
- Fix proguard minification error
- Add ability to create a source with extra parameters to support SEPA debit sources.
- Catch possible ClassCastException when formatting currency string
- Fix Dutch Translation for MM/YY
- Set the CardNumberEditText TextWatcher to the correct EditText
- Add binding to support custom Stripe Connect onboarding in Europe
- Expose interface to add text input listeners on the Card Widgets
- Updating Android support library version to 27.0.2
- Updating gradle 3.0.1
- Fix typo in docs
- Updating gradle and wrapper to 4.3, using android build tools 3.0.0
- Fixed double-notification bug on error in AddSourceActivity
- Fixed compile error issue with Google support libraries 27.0.0
- Adding P24 support
- Upgrades Gradle wrapper version to 4.2.1
- Surfaces error handling in API errors from Stripe
- Make resource namespaces private to prevent collisions
- Fixing a bug for PaymentFlowActivity not returning success when collecting shipping info without method
- Adding the PaymentSession for end-to-end session handling
- Adding Alipay source handling
- Adding controls to enter customer shipping address and custom shipping methods
- Adding the CustomerSession and EphemeralKeyProvider classes
- Adding CardMultilineWidget class for adding Card data in material design
- Adding AddSourceActivity and PaymentMethodsActivity for selecting customer payment
- Stability and efficiency improvements
- BREAKING Moving networking and utils classes to be package-private instead of public
- BREAKING Upgrading Gradle wrapper version
- BREAKING Upgrading Android support library versions
- BREAKING Upgrading build tools version
- Fixing Android Pay string translation crash for decimal comma languages
- Fixing a display bug for dates in certain locales
- Adding ability to specify countries for shipping in the Android Pay MaskedWalletRequest
- Adding ability to specify card networks in the Android Pay MaskedWalletRequest
- Adding Stripe-Account optional header for integration with Connect merchant accounts
- Adding AndroidPayConfiguration.setCountryCode optional method to specify transaction country
- Fixing a missing method call in android pay
- Removing the android support V4 libraries
- Fixing a preference default in android pay
- Added a token field to SourceParams. You can use this to create a source from an existing token.
- https://stripe.com/docs/api#create_source-token
- Added support for PII tokens
- Added ability to clear the card input widget
- Upgraded fraud detection tools
- Added StripePaymentSource interface, extended by both Source and Token
- Upgraded for compatibility with stripe:stripe-android-pay
- Released stripe:stripe-android-pay library, dependent on stripe:stripe-android
- Added setters for the card number, expiration date, and cvc fields in the CardInputWidget
- Added a new example project with back end integration
- Added the ability to set a listener on the CardInputWidget for various events
- Made the card brand icon show in the widget when the CVC entry is complete
- Fixed issue #179, where certain pasted in credit cards would be incorrectly read as invalid
- BREAKING Removed the try/catch required around Stripe instance creation.
- Fixed design tab display bug on card input widget
- Upgraded to Gradle version 3.4.1
- SEPA Debit address is now optional
- Added support for creating and retrieving Source objects
- Added support for redirect flow and polling to update Source status
- Restyled the example project, added secondary activity to demonstrate 3DS support
- Removed
@Deprecated
tag from most setters on the Card object
- Added a card input widget to allow easy UI for collecting card data.
- BREAKING Increased the minimum SDK version to 11 (needed for animation classes).
- BREAKING Added required Context argument to Stripe constructor for resolving resources
- Added bindings to allow creation of bank account tokens.
- Updated OS version logging to be relevant for Android.
- Made the StripeApiHandler.VERSION constant public.
- Made the Token, Card, and Error parsing functions public.
- Removed the dependency on stripe-java and gson
- Added a synchronous version of requestToken (still deprecated)
- Removed the (previously deprecated) requestToken methods
- Refactored the bundled example project
- Reverted change in StripeTextUtils to exclude reference to framework classes
- Exposed funding property on Card object
- Updated getType() to getBrand() to match Stripe API (getType() is still supported)
- Added synchronous method to create tokens which allows integration with RxJava
- Updated example application to include RxJava integration example
- Flattened example project structure for clarity
- Updated to stripe-java 3.2.0
- Fixed American Express number validation problem
- Updated build target sdk version, build tools
- Moved tests out of example project and into stripe project
- Modified Java bindings dependency
- Updated Card model to reflect recent changes
- Updated proguard and dependency versions
- Remove incorrect Diner's Club card prefix
- Add Fabric properties file