v2.6.0
November 6, 2026 Card Payments- Split One Payment Across Two Cards
transaction.start([...])takes an array of two card payment methods, each with itsdata.amount. The SDK creates one composite token, hands it tocreatePayment, runs each card’s 3DS in turn and sends oneonStatusfor the whole payment. WithautoContinuePayment: falseit stops aftercreatePaymentand you continue each card on your side. An invalid array rejectsstart()withINVALID_SPLIT_PAYMENTbefore any request.
v2.5.1
November 5, 2026 Checkout-
Click to Pay enrolment works again when the shopper ticks the consent box
In the Golden Flow card form, ticking “Save my information with Mastercard Click to Pay” showed a tick but the SDK received it as unticked, so the card was paid as a regular card and never enrolled in Click to Pay. “Remember me in this browser” and the mandate consent checkbox had the same problem. All three now report what the shopper sees. -
Every Express Wallet You Switch On Now Renders As A Button
With Horizontal express button stacking, every wallet whose Render as express button switch is on now renders as an express button, in your list order. Two rules used to pull wallets out of the row: Google Pay moved into the payment method list as soon as a second express wallet was on, and the row stopped at three buttons. Both are gone. Instead of dropping a wallet to make the rest fit, the row wraps: buttons keep an equal width, a row holds two on a phone and three when there is room, and a short last line is centred. The list order, the fallback to the list when a button does not load, and Vertical stacking behave as before. Merchants with two or more express wallets on will see Google Pay move from the list into the row, and merchants with more than three will see every wallet as a button over two or more lines.
v2.5.0
November 3, 2026 Checkout-
Customer fields you already sent can be hidden, read-only or editable
When the checkout session carries a customer and the Checkout Builder sets a state for a customer field, the form follows it: a hidden field is not shown and its value is still sent with the payment, a read-only field shows the value locked with a lock icon, and an editable field shows the value prefilled so the shopper can change it for this payment only. The SDK checks every hidden and read-only value with the same validation as the form: a value that fails it is shown editable with its error instead. When every field is hidden and valid, the form is skipped. If the country data the document, phone or address check needs cannot be loaded, those values are sent as they are. Without a state, without a customer or without a value, the fields behave as before. -
Payment method list shows before the wallet buttons
The payment method list now appears as soon as its payment methods render, without waiting for the Google Pay or Apple Pay buttons. A wallet that loads slowly or never loads no longer keeps the list behind a spinner for up to 5 seconds.
- Apple Pay loads sooner on the payment method list
On the payment method list, the SDK now starts loading the Apple Pay button and Apple’s SDK as soon as the payment methods arrive, when Apple Pay is in the list, so the wallet buttons appear sooner. Nothing changes when Apple Pay is not offered or cannot be shown on the device.
-
Performance logs include time since SDK start
Performance logs now include the time elapsed since the merchant calledstart(), so slow starts can be traced from the merchant’s first call. -
SDK chunk download timings are reported as network metrics
The SDK’s own lazy JS and CSS chunks now report their download timing as network metrics, with cache hits marked, so slow chunk loads show up in monitoring. Loading behaviour and timing are unchanged. -
A performance log marks when all external buttons have rendered
On the payment method list, the SDK logs once when every external button has finished loading, as Web SDK 1.11 does. -
Unfinished chunk and wallet loads are logged when the page is hidden
When the page is hidden while a chunk download or a wallet button is still loading, the SDK logs which loads were still open and for how long.
v2.4.0
November 3, 2026 Installments- Installment options are identified by plan id
When two installment options shared the same number of installments, choosing the second one displayed the first. Options are now identified by their plan id, the selected plan id travels with the one-time token, and options with interest show an interest label. TheonInstallmentSelectedcallback also receives the plan id (installmentId), the plan type, the rate and its financial costs (sdk-web-core 9.7.0).
- Apple Pay Button Outside Safari
When Apple answersapplePayUnsupportedfor the merchant identifier on a browser other than Safari, the SDK no longer hides the Apple Pay button on that answer alone: it now shows the button whencanMakePayments()is true. Shoppers with no card in Wallet (paymentCredentialsUnavailable) still do not see it.
v2.3.0
October 29, 2026 Enrollment- Vaulted Token On The Enrollment onStatus Result
When an enrollment ends with status ENROLLED, the result delivered toonStatusnow carriesvaultedTokenwith the token of the saved payment method, on every enrollment path. Other statuses and payment results do not carry the field.
- Saved PayPal accounts no longer show the “Unauthorized payment” banner
Selecting a saved PayPal account whose instalment lookup returns no plans no longer shows NuPay’s “Unauthorized payment. There are no payment options available” banner. That banner is NuPay’s own rule and only applies to NuPay; a saved PayPal account with no plans pays as any other saved payment method.
-
Wallet views follow showStatusScreen
The wallet views fromgetPaymentMethodsViews(Apple Pay, Google Pay, PayPal, Samsung Pay, Revolut Pay and PayPal Braintree) ignored the transaction’sshowStatusScreenand always showed the SDK status screen, so withshowStatusScreen: falseonStatuswaited for the shopper to click Continue. They now follow the transaction’s value, as the payment method list does: withfalseno status screen is shown andonStatusfires without it. -
Mount Waits For Late Container
When the element given in elementSelector is not in the page yet, the SDK now waits up to 3 seconds for it to appear before reporting ELEMENT_NOT_FOUND. Nothing changes when the element is already there.
v2.2.1
October 29, 2026 Core SDK- Wallet views follow showStatusScreen
The wallet views fromgetPaymentMethodsViews(Apple Pay, Google Pay, PayPal, Samsung Pay, Revolut Pay and PayPal Braintree) ignored the transaction’sshowStatusScreenand always showed the SDK status screen, so withshowStatusScreen: falseonStatuswaited for the shopper to click Continue. They now follow the transaction’s value, as the payment method list does: withfalseno status screen is shown andonStatusfires without it.
v2.2.0
October 27, 2026 Core SDK-
Redirect payment methods can open in a popup window
When a provider connection is set to open its redirect in a popup, redirect-based payment methods open the provider in a window owned by the SDK instead of replacing the page. The merchant page stays mounted, and the SDK waits for the payment result, closes the window and fires the existing result callbacks, so no integration change is needed. The window opens at the step where the page used to be redirected; when the browser blocks it, the shopper gets a Continue to payment button. Connections without that setting keep the same-tab redirect. -
A second transaction on the same page calls createPayment
When a page ran a payment withoutcreatePaymentand then a payment withcreatePaymentusing the SDK form, the second one created the payment itself and reportedINVALID_CHECKOUT_SESSION. It now hands the token tocreatePayment, as it does when it is the first transaction on the page.
- Checkout.com Risk.js Device Session
When a connection routed to Checkout.com hasRISK_JS_ENABLEDon, aPUBLIC_KEYand the merchant-specific sub-domain (MSSD), the SDK loads Checkout.com’s Risk.js in the background when the payment method mounts, publishes the device data and sends the returneddeviceSessionIdwith the token and the payment as theCHECKOUTthird-party session id, so Checkout.com can forward it asrisk.device_session_id. It applies to every payment method routed to Checkout.com (cards, wallets and alternative payment methods). A failed script load, initialisation or publish never blocks the checkout: the entry is left empty, the failure is logged and the next request publishes again. Checkout.com keeps the device session for 20 minutes after it is issued, so a checkout that stays open longer than that pays without it.
-
Card fields follow the Checkout Builder field colour
When the Checkout Builder field colour is a colour other than white, the card number, expiration date and CVV fields and the address suggestions take it. Their text uses the Checkout Builder text colours and the borders and highlighted options are mixed from the text and field colours, so light text on a dark field stays readable. Nothing changes when the field colour is white or not set, and the styles passed incard.stylesstill apply on top (sdk-web-card 1.93.0). -
More options spacing and divider
In the Moon Active and folded layouts, the “More options” section has room above it, and it shows the “Or pay with” divider between the express buttons and the other payment methods.
v2.1.2
October 20, 2026 Transaction- Check whether a payment method will render before listing it
Newtransaction.isPaymentMethodAvailable({ paymentMethodType })resolves totrueorfalsefor any payment method type, with the same decision the SDK takes before it shows that method for the checkout session. Merchants that draw their own payment method list can call it and hide the methods that would not render.
-
Payment method names keep the checkout font
On host pages that set fonts on every element with a*rule, the payment method name and its Checkout Builder description in the radio list use the checkout font, weight and spacing. -
Checkbox texts keep the checkout font
On host pages that set fonts on every element with a*rule, the text of every checkbox (save card, save on success, billing same as shipping, mandate consent, Click to Pay sign-up and remember me) and of the Click to Pay radio options uses the checkout font, weight and spacing, like the payment method names (sdk-web-core 9.4.1).
v2.1.1
October 19, 2026 Card Payments- Card CVC Length Follows The Card Service
The CVC field now enforces thesecurity_code_lengththe card service returns for the card’s brand, for a new card and for a saved card. A 4-digit CVC typed on a 3-digit brand (Elo, Alelo, Edenred, Sodexo, VR) shows “Invalid security code” instead of being sent, which Adyen refused with code 103 “CVC is not the right length”. Amex keeps 4 digits, and brands with no length from the card service keep the previous 3-or-4 rule. Also picks up sdk-web-card 1.91.1: a card frame served from y.uno ignores anapiUrlorassetUrloutside the Yuno domain (sdk-web-card 1.92.0).
v2.1.0
October 17, 2026 Universal Web SDK-
Czech Checkout Language
Adds Czech (cs, cs-CZ) localization to the Universal Web SDK checkout, with the same copy as the Web SDK 1.11 release. -
Payment method description from the Checkout Builder
In the payment method list, the description the merchant sets for a payment method in the Checkout Builder (custom_description) shows as a grey second line under its name. The text is shown complete, wraps to as many lines as it needs and keeps its line breaks. Methods without a description, and saved cards or accounts, render as before. Same behavior as the Web SDK 1.11 release. -
Fixed Loader After 3DS Setup
When a payment ends at the 3DS setup step and the merchant handles the payment status (showStatusScreen: false), the SDK now hides its loader as soon as it delivers the result. Before, the loader stayed on screen for about a minute and then showed a “Transaction failed” error, even though the result had already reached the merchant. This affected 3DS-only authentications and card payments declined during 3DS authentication. Same behavior as the Web SDK 1.11 release. -
EBANX Fingerprint No Longer Throws “invalid country”
When EBANX device fingerprinting is configured and thecountryCodepassed to the SDK is a country EBANX does not support (for exampleUS), the SDK no longer surfaces an uncaughtinvalid countryerror on every load. The error is now caught and logged, and the EBANX fingerprint is skipped for that load. Payments were not affected before or after this change.
v2.0.0
October 16, 2026-
A new Yuno SDK
Version 2.0.0 is the new Yuno SDK: one integration for payments and enrollment, with the same API on Web, iOS and Android. Load it from the CDN, create a transaction, and get the result inonStatus. It replaces the Full, Lite, Seamless, Render, Headless and Secure Fields integrations and isn’t compatible with 1.x.
Migration guide → See also: Yuno SDK documentation · Get started -
New global: SdkPayments
The SDK is exposed aswindow.SdkPaymentsand initialized withSdkPayments.initialize(previouslywindow.Yuno). See also: Get started -
Previous SDK supported until 2027
The 1.x SDK (Full, Lite, Seamless, Render, Headless and Secure Fields) stays supported side by side with the new Yuno SDK during the transition. Its deprecation is scheduled for 2027. Contact your Account Manager to plan the migration.