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.
Release notes
Learn about the latest updates to our API, and Drop-in/Components for web, iOS, and Android.
We recommend you use Checkout API v67.
For guidance on upgrading to this version, have a look at the migration guide.
- All Components, including action Components, now require a configuration object.
- All configuration objects now require a client key. For the
cardConfiguration
andbcmcConfiguration
objects, the client key replaces the Client Encryption Public Key used in earlier versions. - If using
ResultHandlerIntent
, you now need to pass this instartPayment
instead ofDropInConfiguration
. - The
handleResultIntent
in theWeChatPayActionComponent
has been replaced by thehandleIntent
method. - The
handleRedirectResponse
in theRedirectComponent
has been replaced by thehandleIntent
method. - Refactored
CallResult
toDropInServiceResult
. - Refactored module structure so that each payment method has only one module: the
card-base
andcard-ui
modules have been merged into a singlecard
module, and similarly for other payment methods. - Refactored the
cse
module, renaming theCard
class and theCardEncrypter class
. For more information, refer to our custom card integration guide. - Renamed package
com.adyen.checkout.base
tocom.adyen.checkout.components
. - Renamed package
com.adyen.checkout.base.component
tocom.adyen.checkout.components.base
.
- We removed all methods that were marked as deprecated in earlier versions.
- The
SimplifiedDropInService
has been removed. We recommend that you handle the/payments
response using theDropInService
. - For MB WAY, we removed the
shopperEmail
field because it is no longer required. - We removed the
WeChatPayComponent
. If you want to check whether the WeChat app is available, you can do so by callingWeChatPayProvider.isAvailable
. - We removed
PaymentComponentProvider.isAvailable
. Payment method providers that require an availability check (currently Google Pay and WeChat Pay), will now implementPaymentMethodAvailabilityCheck
instead.
- The
Adyen3DS2Component
supports the new 3D Secure 2 flow introduced in Checkout API v67. The old flow is still supported if you are using an API version earlier than v67. TheAdyen3DS2Component
implementsIntentHandlingComponent
, and has ahandleIntent
method for handling 3D Secure 1 redirects. -
- For Google Pay, the payment method type is now googlepay.
- The
QRCodeComponent
handles all payment methods withaction.type
: qrCode, including Bancontact mobile, Swish, and Pix. TheQRCodeComponent
implementsIntentHandlingComponent
, and has ahandleIntent
method. - New supported payment method: BLIK.
- We added support for the following shopper locales:
cs-rCZ
,el-rGR
,hr-rHR
,hu-rHU
,ro-rRO
,sk-rSK
,sl-rSI
. - To hide the CVC field, you can now include the
hideCvc
or thehideCvcStoredCard
flag in thecardConfiguration
object. IfhideCvcStoredCard
is set to true and the shopper pays with a stored card that doesn't require a CVC, they will see a Pay button immediately after selecting the payment method. - The
CardComponent
now returns the BIN and last 4 digits of the card number in theCardComponentState
. DropInService
now has theonPaymentsCallRequested
andonDetailsCallRequested
methods for asynchronous handling of the API responses. When handling the API responses synchronously, you can use theonPaymentsCallRequested
method to access a non-serialized version of thePaymentComponent
JSON at the moment when the shopper submits the payment.ActionComponentProvider
has the following new methods:canHandleAction
: checks if the Component can handle the specified action type.requiresView
: indicates whether a view is required to handle this action.getSupportedActionTypes
: returns the list of supported action types.
- We improved card brand recognition in the
CardComponent
. - For cards that do not require a CVC, the CVC field will now be marked as optional.
- We updated the UI for phone number input for MB WAY.
- We updated the 3D Secure SDK to version 2.2.0.
- For the custom card integration with encryption, we now validate the Client Encryption Public Key.
- Drop-in now has a default
GooglePayConfiguration
and aCardConfiguration
object, so it is no longer required to set these configurations inDropInConfiguration.Builder
. - You can now see the GooglePay SDK dependency, so you no longer need to explicitly declare it to access Google Pay specific code.
- The default Google Pay environment now automatically follows the Adyen environment.
- New releases are now published to Maven Central.
- We migrated from the Android Support Library to AndroidX.
- The minimum supported Android API version is now 21.
- For the
GooglePayConfiguration.Builder
, you no longer need to pass amerchantAccount
. Instead, you need to pass a client key, as for all other configuration objects. GooglePayComponent
is now anActivityResultHandlingComponent
. No methods are affected by this change.- For debug builds, you are now allowed to take a screenshot of the Card Component.
DropInService
is now a regular boundService
instead of aJobIntentService
.- For CI builds and example app without values,
example.local.gradle
has been renamed todefault.local.gradle
.
- Drop-in now renders all available payment methods at the same time.
- Intent results are now also handled in case
DropInActivity
got destroyed.
We recommend you use Checkout API v67.
- Removed support for iOS 10.0.
- The new minimum required TLS version is 1.2.
- iOS Components has a new module structure.
- Each component initialization requires an instance of
apiContext
, which specifies the client key and the environment. - Changed how the end of a component flow is handled.
- Renamed the payment method configuration objects.
- In the
Adyen
module, theAmount
object now adopts theCodable
protocol. - Moved the
payment
property fromPresentableComponent
toPaymentComponent
. - Specifying the country code is now required for the
Payment
object. - Moved the
Amount
property outside of thePayment
object. - The
didCancel
method fromDropInComponentDelegate
now returnsPaymentComponent
instead ofPresentableComponent
. - Moved card configuration to the
CardComponent.Configuration
object. - Moved Apple Pay configuration to the
ApplePayComponent.Configuration
object. - Moved the
payment
parameter to theApplePayComponent.Configuration
constructor. - Changed how you specify supported Apple Pay card networks.
- The Apple Pay token is now a base64-encoded string. This replaces the plain text JSON format.
- To proccess voucher payments your app's Info.plist must contain
NSPhotoLibraryAddUsageDescription
. - Renamed
DropInActionComponent
toAdyenActionComponent
and moved it toAdyenActions
module. This allows you to use the component outside ofAdyenDropIn
. - Renamed
AdyenActionComponent.perform()
toAdyenActionComponent.handle()
for consistency with other action components. - To present the redirect component UI, you now need to set
RedirectComponent.presentationDelegate
. - The styles for all action components are now grouped under
ActionComponentStyle
.
Have a look at the migration guide for details about the more complex breaking changes.
- Deprecated classes, functions, properties.
disableCloseButton
frompresent(component: PresentableComponent)
inPresentationDelegate
.cancelHandler
from theApplePayComponent
.cancelCallback
from the Apple Pay component. Use thedidFail(with error: Error, from component: PaymentComponent)
function withComponentError.cancelled
instead.
paymentData
is now optional inRedirectAction
,ActionComponentData
andRedirectComponent
. This is to support the removal ofpaymentData
starting Checkout API v67.
- The
ThreeDS2Component
supports the new 3D Secure flow from Checkout API v67. The old flow is still supported if you are using an API version earlier than v67. VoucherComponent
handles actions for voucher payment flows, for example Doku Alfamart.QRCodeComponent
to handle payment methods that use QR codes, like PIX.DropInComponent
now has thecardComponentDelegate
property.DropInComponentDelegate
now has thedidOpenExternalApplication(component:)
callback which notifies you about redirects to an external app.DropInDelegate.didSubmit
now has aPaymentMethod
object to allow you to identify which payment method is being submitted.didComplete(from component: DropInComponent)
method forDropInComponentDelegate
andActionComponentDelegate
.- Support for right-to-left layout.
- Arabic (international) is now a supported language.
- Adds support for stored payment details for BLIK.
- You can configure button border color and width using
ButtonStyle
.
Payment method support:
- Pix,
PixComponent
- Boleto,
BoletoComponent
- Indonesian bank transfers and cash payments at convenience stores through
DokuComponent
. - Japanese voucher payments through econtext:
- At Seven Eleven stores,
SevenElevenComponent
. - At other convenience stores,
EContextStoreComponent
. - Using ATM machines,
EContextATMComponent
. - Online,
EContextOnlineComponent
.
- At Seven Eleven stores,
- Prevent leaking API keys when URL responses are cached.
- Added CVC length validation for the stored cards component.
- You can now use
CardEncryptor
to encrypt individual card fields, for example CVC or expiry month. - Added assertion validation for country code and currency code.
- Improved accuracy for card brand detection.
- Added billing address fields to the card component.
GiftCardComponent
now has native support for full and partial payments using gift cards.- Uses a continous curve by default for rounding corners.
- You can now control the position of the title and Cancel button for DropIn.
- You can now add a custom image to the Cancel button.
- Added a configuration screen to the UIKit and SwiftUI demo apps so you can change configuration fields during runtime.
- The
MBWayComponent
now shows Portugal and Spain in the phone prefix dropdown list of phone extensions. - Fixed a bug where gift card payment methods had a missing logo.
- Fixes localization warning when using Swift Package Manager.
- For Swish redirects, you now get all the query parameters in
returnUrlQueryString
. - Fixed an issue where users couldn't scroll properly through a form.
For the Apple Pay Component, the `PaymentData.amount
passed from the SDK to the didSubmit
callback is nil. Fixed in v4.8.0.
This release requires Checkout API v67 or later.
For more guidance on upgrading to this version, have a look at the migration guide.
- The origin key is no longer supported. If you haven't already, switch to using the client key for client-side authentication.
- Configuration at the component level overrides all other configuration.
- Drop-in now only accepts props related to itself.
- We removed some deprecated props.
- You must now configure aria labels using translation fields.
For Boleto Bancário, the state.data
is missing the billingAddress.country
, causing the payment to fail. This issue is fixed in Web Components 4.2.2.
- For npm installations, we now also release ES and CommonJS (CJS) format bundles. This is in addition to the Universal Module Definition (UMD) format bundle released with previous versions.
- For Google Pay, the payment method type is now googlepay.
-
You can now configure action components by action type inside
paymentMethodsConfiguration
. For example, to change the default window size for a 3D Secure challenge:const checkout = new AdyenCheckout({ paymentMethodsConfiguration: { threeDS2: { challengeWindowSize: '05' // '02' is the default size } } });
- The
onChange
event now also returns error and validation information. Thestate.valid
object returns a boolean for each field, andstate.errors
can be used to log the state of your form. You should only use theonError
event for non-validaton errors, for example network errors. - Drop-down menus now have search functionality which filters results as you type. This applies, for example, for the list of issuers for iDEAL payments, or the lists of countries, states, or provinces for payment methods that require these.
- If an issuing bank is offline, it appears greyed out to the shopper and they cannot select it from the dropdown menu. This applies, for example, to Dotpay.
Install this version of the Adyen Web Node package:
npm install @adyen/adyen-web@4.0.0 --save