Release notes

Learn about the latest updates to our API, and Drop-in/Components for web, iOS, and Android.

This page contains the release notes for Pay by Link, Checkout API, and Drop-in/Components for web, iOS, Android, React Native, and Flutter starting from 2020.

Get updates by RSS
Filter by
Android Components/Drop-in
5.0.0
March 2025
SunMonTueWedThuFriSat
1
2345678
9101112131415
16171819202122
23242526272829
3031
Select dates
Copy url
icon
Android Components/Drop-in v5.0.0

We recommend you use Checkout API v70 or later.

Breaking Changes

To migrate from an earlier version, follow the migration guide.

  • For Drop-in, you can now configure if you show a dialog to dismiss Drop-in with a finished state or error state.
    • DropInServiceResult.Error now requires the ErrorDialog parameter.
    • DropInServiceResult.Finished now has an optional FinishedDialog parameter.
  • PaymentMethodDetails and its sub-classes now have the checkoutAttemptId field.
  • You can no longer manually instantiate the Environment class and the baseUrl field has been removed.
  • Restructured packages and moved classes. If you are upgrading, you only need to re-import them because most classes names haven't changed.
  • All classes in com.adyen.checkout.action are now in com.adyen.checkout.action.core. If you import the classes, you must update import statements.
  • All public classes that should not be directly used are now marked as internal.
  • For Components integrations, each payment component no longer handles 3D Secure 2 and WeChat Pay actions. To handle the actions, you must add dependencies for each action:

    Copy code
    implementation 'com.adyen.checkout:3ds2:YOUR_VERSION'
    implementation 'com.adyen.checkout:wechatpay:YOUR_VERSION'

    Exceptions: CardComponent and BcmcComponent are able to handle the 3D Secure 2 action. They do not require the additional dependencies.

  • For Drop in, you can no longer get the result using onActivityResult(). Drop-in now uses the Activity Result API instead.
  • For Components, you can no longer use requiresView() for action Component providers.
  • You now must configure environment. The default value is no longer TEST.
  • Build configuration: compileSdkVersion and targetSdkVersion: 34.
  • Dependency versions.
  • requiresConfiguration() in action Component providers. For all Components, configuration is optional.
  • CardConfiguration.Builder.setAddressVisibility(). Use CardConfiguration.Builder.setAddressConfiguration() instead.
  • Environment.LIVE. Use the same live environment as your backend instead. You can find that value in your Customer Area.
  • saveState() and restoreState() in action components. The component will automatically handle the state now.
  • DropInServiceResult.Action constructor from JSON string. Use the constructor with the Action and Action.SERIALIZER instead.
  • Amount.EMPTY is removed. Pass amounts with a valid value and currency.
  • In the UnencryptedCard class, setExpiryDate(month, year) now replaces setExpiryMonth and setExpiryYear.
New
  • Payment methods:

  • Analytics are turned on by default. Find out what we track and how you can configure it.

    • The method for setting analytics configuration has changed:
    v5.0.0 Earlier versions
    setAnalyticsConfiguration(analyticsConfiguration: AnalyticsConfiguration) setAnalyticsEnabled(isAnalyticsEnabled: Boolean)
  • Jetpack Compose compatibility.

    • For Drop-in, use the drop-in-compose module.
    • For Components, use the components-compose module.
  • For Components:

    • Payment method Components now handle actions. You no longer need a payment Component and action Components for a payment method with additional actions.
    • The GenericActionComponent that can handle all action types. You no longer need to implement separate Components for redirects and 3D Secure 2 authentication, for example.
    • A Pay button that you can configure to be hidden.
    • The submit() method that can be used to add your own pay/submit button.
    • You can now add amount to the configuration to show it on the pay/submit button.
    • The onSubmit() event that gets emitted when the shopper pays.
  • For cards:

    • The BIN value callback is invoked while the shopper inputs their card number. The callback uses up to the first 8 digits.
    • The BIN lookup callback is invoked when brands are detected on the card.
    • The brand attribute is now included in the paymentMethod object for all cards. Previously, it was just included for co-badged ones.
  • When the shopper is redirected to another app or browser, a new callback is invoked.

  • When the shopper is redirected back from an external app or website, an intermediate view with a loading spinner and a Cancel button now shows. The shopper can select to cancel the redirect back to your app.

  • For Drop-in, you can now navigate the shopper back to the payment methods list, for example to load new payment methods. To do this, use DropInServiceResult.ToPaymentMethodsList.

  • You can now safely exclude any payment method from Drop-in. Do this by excluding the Adyen Checkout module that includes the payment method. For example:

    Copy code
    implementation('com.adyen.checkout:drop-in:YOUR_VERSION') {
    exclude group: 'com.adyen.checkout', module: 'card'
    exclude group: 'com.adyen.checkout', module: 'ideal'
    }
  • You can now safely exclude unnecessary third-party dependencies. Do this by excluding the Adyen Checkout module that includes the third-party dependency. For example:

    Copy code
    implementation('com.adyen.checkout:drop-in:YOUR_VERSION') {
    exclude group: 'com.adyen.checkout', module: '3ds2'
    exclude group: 'com.adyen.checkout', module: 'wechatpay'
    }

    Make sure that you do not include a payment method that corresponds to the module that you exclude.

  • For Google Pay, new configuration in GooglePayConfiguration:

Function Description
setAllowCreditCards Specify if you allow credit cards.
setAssuranceDetailsRequired Specify if you require assurance details.
  • Sessions flow using the single /sessions request is now supported.
  • Localization for the Portuguese (Portugal) language.
Fixed
  • QR code payment methods no longer crash in some cases.
  • Rotating a device during the redirect flow no longer causes a crash.
  • @RestrictTo annotations no longer cause false lint check warnings.
  • @RestrictTo annotations no longer cause false errors with Android Studio Hedgehog (Beta).
  • The Drop-in bottom sheet no longer shifts position on the screen when launching some flows, like redirect and 3D Secure 2.
  • The redirect flow on Android 11.
Improved
  • The email address input field now has more specific validation rules.
  • You can now instantiate more than one instance of the same Component within the same lifecycle. Passing the key parameter to the Component provider get() method. For example, you can show cards and stored cards on the same screen.
  • For Components, you no longer need to handle duplicate events such as submit callbacks or errors with because they are only emitted once. Flows are now used instead of LiveData.
  • More UI theme customization options like dark mode.
  • The expiry date input field now has more specific validation rules and error messages.