> ## Documentation Index
> Fetch the complete documentation index at: https://yuno-3979e326-2026-05-13-universal-sdk-proposal.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Web SDK Changelog

> Latest updates and version history for the Yuno Web SDK

export const ChangelogBadge = ({type}) => {
  const types = {
    added: {
      color: 'success',
      label: 'ADDED'
    },
    changed: {
      color: 'warning',
      label: 'CHANGED'
    },
    deprecated: {
      color: 'alert',
      label: 'DEPRECATED'
    },
    removed: {
      color: 'error',
      label: 'REMOVED'
    },
    fixed: {
      color: 'info',
      label: 'FIXED'
    },
    security: {
      color: 'security',
      label: 'SECURITY'
    },
    breaking: {
      color: 'breaking',
      label: 'BREAKING'
    }
  };
  const config = types[type.toLowerCase()] || ({
    color: 'secondary',
    label: type.toUpperCase()
  });
  return <span className={`status-badge status-${config.color}`}>
      {config.label}
    </span>;
};

## v1.7.3

*May 11, 2026*

**Fraud & Risk**

* <ChangelogBadge type="fixed" /> **Improved EBANX Device Session Handling**\
  Improved EBANX device session recovery in supported fraud flows.

## v1.7.2

*May 11, 2026*

**Core SDK**

* <ChangelogBadge type="added" /> **POST Redirect Support**\
  Added support for payment providers that require `POST` redirects.

* <ChangelogBadge type="changed" /> **Expanded Required Field Support**\
  Added support for additional required payment data such as `shipping_address` in supported flows.

**Secure Fields**

* <ChangelogBadge type="added" /> **Improved Session Handling**\
  Improved Secure Fields behavior in session-based payment flows.

**Card Payments**

* <ChangelogBadge type="changed" /> **Improved Card Retry Flows**\
  Enhanced retry behavior for card payments in supported checkout flows.

## v1.7.1

*May 11, 2026*

**Core SDK**

* <ChangelogBadge type="fixed" /> **More Reliable Payment Status Updates**\
  Improved payment status handling when real-time connection tracking is interrupted.

**Payment Actions**

* <ChangelogBadge type="fixed" /> **Improved QR, Barcode, and Image Rendering**\
  Improved rendering for payment steps that rely on images, QR codes, or barcodes.

* <ChangelogBadge type="changed" /> **Improved OTP and PIN Flows**\
  Refined OTP and PIN-based payment steps for a smoother authentication experience.

**Google Pay**

* <ChangelogBadge type="fixed" /> **Improved Button Rendering**\
  Improved Google Pay button rendering for a more consistent checkout experience.

## v1.7.0

*May 11, 2026*

**Click to Pay**

* <ChangelogBadge type="added" /> **Card Type Filtering Support**\
  Added support for card type restrictions in Click to Pay flows.

* <ChangelogBadge type="added" /> **Transaction Amount Support for Passkey Flows**\
  Click to Pay initialization now includes transaction amount metadata for supported passkey flows.

## v1.6.8

*April 15, 2026*

**Core SDK**

* <ChangelogBadge type="added" /> **unMountSdk() Helper**\
  Introduced a new top-level `unMountSdk()` method for explicit SDK cleanup. Call it when removing the SDK from the page to avoid memory leaks.

<Accordion title="Unmount the SDK">
  ```js theme={null}
  yuno.unmountSdk();
  ```
</Accordion>

* <ChangelogBadge type="changed" /> **Rollback Cancel Flow**\
  Unified cancel flow events. The SDK now explicitly reports `CANCELED_BY_USER` in the `yunoPaymentResult` callback for all cancellation scenarios.

* <ChangelogBadge type="changed" /> **Legacy Event Rollback**\
  Legacy cancel-related events have been consolidated into the standard result flow. No new API changes required.

* <ChangelogBadge type="fixed" /> **Forter Token Listener**\
  Added a listener for the `ftr:tokenReady` event to ensure reliable capture of the Forter session token. Previously the token could be missed on slow page loads.

**Apple Pay**

* <ChangelogBadge type="added" /> **Metadata Support**\
  The cancel flow now includes a `metadata` parameter with a `paymentCreated` boolean, letting merchants determine whether a payment object was created before cancellation.

* <ChangelogBadge type="added" /> **Contact Info Passthrough**\
  The SDK now automatically collects and forwards the customer's email, phone, and name from `shippingContact`. No configuration required.

**PayPal**

* <ChangelogBadge type="added" /> **No OTT Flow**\
  Added support for a `REDIRECT` workflow that skips OTT creation, enabling PayPal payments without a prior server-side session.

<Accordion title="PayPal redirect flow (no OTT)">
  ```js theme={null}
  yuno.startSeamlessCheckout({
    paypal: {
      workflow: 'REDIRECT',
      orderId: 'YOUR_PAYPAL_ORDER_ID',
    }
  });
  ```
</Accordion>

* <ChangelogBadge type="added" /> **PayPal Button Modal**\
  New `PaypalButtonModal` component that renders the PayPal button inside a modal overlay, useful for merchants using a custom checkout UI.

## v1.6.0

*March 20, 2026*

* <ChangelogBadge type="added" /> **Subresource Integrity Support**\
  The SDK script tag now supports the `integrity` attribute for SRI-compliant loading, preventing unauthorized code injection. The `@yuno-payments/sdk-web` npm package exposes a `loadScript` method for SRI-compliant dynamic loading.

<Accordion title="Script tag with SRI">
  ```html theme={null}
  <script
    src="https://sdk-web.y.uno/v1.6/main.js"
    integrity="sha384-..."
    crossorigin="anonymous"
  ></script>
  ```
</Accordion>

* <ChangelogBadge type="added" /> **Arabic Language and RTL Layout**\
  Added Arabic (`ar`) language support. The checkout UI automatically switches to a Right-to-Left layout when Arabic is selected — no extra configuration required.

<Accordion title="Initialize with Arabic">
  ```js theme={null}
  const yuno = await window.Yuno.initialize(publicApiKey);

  await yuno.startCheckout({
    checkoutSession,
    elementSelector: '#root',
    countryCode: 'AE',
    language: 'ar',
  });
  ```
</Accordion>

* <ChangelogBadge type="changed" /> **Faster Initialization**\
  Improved initialization performance for both Lite and Full SDKs, reducing time-to-interactive on first load.

* <ChangelogBadge type="added" /> **Detailed Error Codes**\
  Configuration errors now surface more descriptive error codes, making it easier to diagnose integration issues during development.

* <ChangelogBadge type="fixed" /> **3DS Modal Centering**\
  Fixed an issue where the 3DS challenge modal was not centered on mobile devices. The modal now correctly fills and centers within the viewport.

## v1.5.0

*January 15, 2026*

* <ChangelogBadge type="added" /> **mountExternalButtons Method**\
  New `mountExternalButtons(buttons)` method lets merchants render Google Pay and Apple Pay buttons in any custom location within their UI, providing full control over button placement and styling.

<Accordion title="Mount wallet buttons in custom locations">
  ```js theme={null}
  const yuno = await window.Yuno.initialize(publicApiKey);

  await yuno.startCheckout({
    checkoutSession,
    elementSelector: '#root',
    countryCode: 'US',
    language: 'en',
  });

  await yuno.mountExternalButtons([
    {
      paymentMethodType: 'APPLE_PAY',
      elementSelector: '#apple-pay',
    },
    {
      paymentMethodType: 'GOOGLE_PAY',
      elementSelector: '#google-pay',
    },
  ]);
  ```
</Accordion>

* <ChangelogBadge type="added" /> **Button Unmounting Methods**\
  Added `unmountExternalButton(paymentMethodType)` to remove a single external wallet button and `unmountAllExternalButtons()` to remove all mounted wallet buttons at once.

<Accordion title="Unmount wallet buttons">
  ```js theme={null}
  // Remove a single button
  yuno.unmountExternalButton('APPLE_PAY');

  // Remove all buttons
  yuno.unmountAllExternalButtons();
  ```
</Accordion>

* <ChangelogBadge type="changed" /> **Wallet Buttons as Direct Buttons**\
  Google Pay and Apple Pay now appear as direct action buttons instead of radio-button list items, providing a cleaner and more prominent placement in the checkout UI.

* <ChangelogBadge type="changed" /> **PayPal Enrollment UX**\
  The PayPal payment sheet now opens immediately after the customer selects PayPal for enrollment or payment, removing an extra confirmation step for a faster checkout experience.

**Lite Web SDK**

* <ChangelogBadge type="breaking" /> **Lite SDK External Buttons Required**\
  Google Pay and Apple Pay in the Lite Web SDK now require explicit mounting via `mountExternalButtons()`. Previously they rendered automatically as radio buttons. Lite SDK integrations must add a `mountExternalButtons` call — Full SDK integrations are not affected.\
  [Migration guide →](/changelog/migration-guides/web/v1-4-to-v1-5)

## v1.4.0

*October 15, 2025*

* <ChangelogBadge type="added" /> **Card Payment Voucher Messages**\
  Added voucher messaging for card payments, giving customers clear confirmation and transaction details immediately after a successful payment.

* <ChangelogBadge type="added" /> **Language Override for Loader**\
  The Yuno loader now accepts a `language` property, allowing explicit UI language control independent of browser settings. Useful for multi-language environments.

<Accordion title="Set language on initialize">
  ```js theme={null}
  Yuno.initialize({
    language: 'es',
  });
  ```
</Accordion>

* <ChangelogBadge type="changed" /> **Enhanced Click-to-Pay Rendering**\
  Improved rendering support for Click-to-Pay (C2P) elements, streamlining the checkout experience for enrolled cards.

**PayPal**

* <ChangelogBadge type="added" /> **PayPal Installments Enrollment**\
  Customers can now enroll in PayPal installment plans directly through the PayPal payment flow, providing flexible payment options at checkout.

* <ChangelogBadge type="added" /> **PayPal External Button Redirect**\
  PayPal can now be integrated via redirect flow with external buttons, giving merchants greater flexibility in building their payment UI.

## v1.3.0

*March 20, 2025*

* <ChangelogBadge type="added" /> **Smart Payment Method Grouping**\
  When a customer has an enrolled payment method, all other available methods are grouped under a collapsible "More options" dropdown. The enrolled method is prominently displayed by default.

* <ChangelogBadge type="added" /> **European and Asian Language Support**\
  Added support for German (`de`), Dutch (`nl`), Swedish (`sv`), French (`fr`), Italian (`it`), Japanese (`ja`), and Korean (`ko`). Pass the corresponding code via the `language` initialization parameter.

* <ChangelogBadge type="fixed" /> **General Bug Fixes**\
  Resolved various stability issues to improve reliability across payment flows.

* <ChangelogBadge type="changed" /> **Enhanced Styling and Branding**\
  Improved visual consistency and expanded customization options across checkout components.

## v1.2.0

*February 20, 2025*

* <ChangelogBadge type="added" /> **Optional Initialization Options**\
  Added an optional `options` parameter to `Yuno.initialize` for teams with advanced use cases such as custom session handling or tracking requirements.

* <ChangelogBadge type="changed" /> **Extended continuePayment Parameters**\
  `continuePayment` now accepts `checkoutSession`, `showPaymentStatus`, `yunoPaymentResult`, `yunoError`, `countryCode`, and `language`, allowing configuration overrides during payment continuation without restarting the checkout.

<Accordion title="continuePayment with overrides">
  ```js theme={null}
  yuno.continuePayment({
    checkoutSession: '438413b7-4921-41e4-b8f3-28a5a0141638',
    showPaymentStatus: true,
    yunoPaymentResult: (status) => {
      console.log('Payment completed with status:', status);
    },
    yunoError: (message, data) => {
      console.error('Payment error:', message, data);
    },
    countryCode: 'US',
    language: 'en',
  });
  ```
</Accordion>

* <ChangelogBadge type="added" /> **21+ Language Support**\
  Expanded language coverage to over 21 locales including Chinese Simplified (`zh-CN`), Chinese Traditional (`zh-TW`), Vietnamese (`vi`), Russian (`ru`), Turkish (`tr`), Polish (`pl`), and more. Pass the language code to the `language` parameter in `startCheckout`.

**Lite Web SDK**

* <ChangelogBadge type="added" /> **Lite SDK continuePayment Overrides**\
  The Lite SDK `continuePayment` method now accepts the same configuration overrides available in the Full SDK, enabling dynamic session, language, and callback changes during payment continuation.

<Accordion title="Lite SDK continuePayment with overrides">
  ```js theme={null}
  if (paymentResponse.sdk_action_required) {
    await yuno.continuePayment({
      countryCode: 'DE',
      language: 'de',
      showPaymentStatus: false,
      yunoPaymentResult: (status) => {
        console.log('Payment continued with result:', status);
      },
      yunoError: (message, data) => {
        console.error('Payment error:', message, data);
      },
    });
  }
  ```
</Accordion>

* <ChangelogBadge type="added" /> **Lite SDK Expanded Language Support**\
  Lite SDK v1.2 adds support for 18+ locales (up from 7 in v1.1), including European and Asian language codes such as `de`, `fr`, `it`, `ja`, `ko`, `ru`, and `zh-CN`.

## v1.1.0

*January 20, 2025*

* <ChangelogBadge type="breaking" /> **Async SDK Methods**\
  The `initialize()`, `mountCheckout()`, and `startCheckout()` methods now return Promises. Add `await` or `.then()` to each call — synchronous usage will no longer work.\
  [Migration guide →](/changelog/migration-guides/web/v1-0-to-v1-1)

<Accordion title="Async initialization (v1.1)">
  ```js theme={null}
  const yuno = await Yuno.initialize(PUBLIC_API_KEY);
  await yuno.startCheckout(config);
  ```
</Accordion>

* <ChangelogBadge type="added" /> **continuePayment Method**\
  Introduced `continuePayment()` for handling complex payment flows. Call it when the API response includes `sdk_action_required: true` — the SDK then automatically renders 3DS challenges, external wallet steps, or redirects as needed.

<Accordion title="Handle sdk_action_required with continuePayment">
  ```js theme={null}
  const yuno = await Yuno.initialize(PUBLIC_API_KEY);

  await yuno.startCheckout(config);

  if (paymentResponse.sdk_action_required) {
    const result = await yuno.continuePayment();
  }
  ```
</Accordion>

* <ChangelogBadge type="changed" /> **Simplified 3DS Integration**\
  3DS data collection and setup are now bundled into the payment creation step. Remove any standalone 3DS setup service calls — implement `continuePayment()` and `yunoPaymentResult()` callbacks instead.

* <ChangelogBadge type="added" /> **Boleto Bancário Support**\
  Boleto Bancário is now available for merchants operating in Brazil, expanding local payment options for customers who prefer offline payment methods.

* <ChangelogBadge type="changed" /> **Hybrid Cards Default to Credit**\
  Brazilian hybrid cards are now processed as credit by default, improving authorization rates for Brazil-based merchants.

* <ChangelogBadge type="added" /> **Airwallex Security Integration**\
  Integrated Airwallex as an additional security layer for web payments, enhancing fraud protection without requiring extra configuration.

* <ChangelogBadge type="added" /> **Forter Fraud Prevention**\
  Integrated Forter's fraud prevention technology. The SDK automatically collects device signals; no separate setup is required.

* <ChangelogBadge type="added" /> **Checkout.com 3DS Support**\
  Added support for Checkout.com as a 3DS provider. The SDK renders the authentication page automatically when the transaction provider is `checkout3ds`.

* <ChangelogBadge type="added" /> **Unlimit 3DS Support**\
  Introduced 3DS authentication support for Unlimit payments, enhancing fraud prevention for merchants using the Unlimit provider.

* <ChangelogBadge type="added" /> **Click-to-Pay Enhancements**\
  Terms & Conditions and card logos now update dynamically based on the selected card. C2P options are hidden for unsupported cards. A phone number field has been added for C2P registration. Compliance settings for `privacy` and `tnc` are forwarded with each card.

* <ChangelogBadge type="added" /> **Inline Card Input**\
  Customers can now enter card details directly beneath the Card option without navigating to a separate screen. Fields persist when switching payment methods, and the flow is fully compatible with installments and the card selector.

**Lite Web SDK**

* <ChangelogBadge type="added" /> **Lite SDK Initial Release**\
  Launched the Lite Web SDK (v1.1) — a streamlined integration offering essential payment methods, async `initialize()` support, and core callbacks (`yunoPaymentResult`, `yunoError`) with reduced setup complexity.

<Accordion title="Lite SDK basic checkout">
  ```js theme={null}
  const yuno = await Yuno.initialize(PUBLIC_API_KEY);

  yuno.startCheckout({
    checkoutSession: '438413b7-4921-41e4-b8f3-28a5a0141638',
    elementSelector: '#root',
    countryCode: 'FR',
    language: 'fr',
    showLoading: true,
    issuersFormEnable: true,
    showPaymentStatus: true,
    card: {
      isCreditCardProcessingOnly: true,
    },
    onLoading: (args) => {
      console.log(args);
    },
    yunoPaymentResult: (status) => {
      console.log('Payment result:', status);
    },
    yunoError: (message, data) => {
      console.error('Payment error:', message, data);
    },
  });
  ```
</Accordion>

## v1.0.0

*January 1, 2025*

**Core SDK**

* <ChangelogBadge type="added" /> **Initial SDK Release**\
  First stable release of the Yuno Web SDK. Provides four integration variants: Full Checkout SDK, Lite Checkout SDK, Seamless SDK, and Headless SDK — covering a full range of UI customization needs.

* <ChangelogBadge type="added" /> **Core Payment Methods**\
  Out-of-the-box support for credit and debit cards, digital wallets (PayPal, Apple Pay, Google Pay), bank transfers, direct debits, and regional local payment methods across multiple currencies and countries.

* <ChangelogBadge type="added" /> **Three Integration Modes**\
  SDK can be loaded via an HTML `<script>` tag, dynamic JavaScript, or as an npm module (`@yuno-payments/sdk-web`), supporting both classic and modern JavaScript framework workflows.

* <ChangelogBadge type="added" /> **Seven Language Support**\
  Initial international support includes Spanish (`es`), English (`en`), Portuguese (`pt`), Filipino (`fil`), Indonesian (`id`), Malay (`ms`), and Thai (`th`).

* <ChangelogBadge type="added" /> **Core SDK Methods**\
  Provides `Yuno.initialize()`, `startCheckout()`, `mountCheckout()`, and `startPayment()` as the foundational API surface. All methods are synchronous in v1.0.

<Accordion title="Full checkout initialization (v1.0)">
  ```js theme={null}
  const yuno = Yuno.initialize(PUBLIC_API_KEY);

  yuno.startCheckout({
    checkoutSession: '438413b7-4921-41e4-b8f3-28a5a0141638',
    elementSelector: '#root',
    country_code: 'FR',
    language: 'fr',
    showLoading: true,
    issuersFormEnable: true,
    showPaymentStatus: true,
    card: {
      isCreditCardProcessingOnly: true,
    },
    onLoading: (args) => {
      console.log(args);
    },
    yunoPaymentMethodSelected: () => {
      console.log('Payment method selected');
    },
    yunoPaymentResult: (status) => {
      console.log('Payment result:', status);
    },
    yunoError: (message, data) => {
      console.error('Payment error:', message, data);
    },
  });
  ```
</Accordion>
