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. - See Stripe#confirmPayment() for more details.
- 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
- #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.3.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.3.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.3.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.3.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.3.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