> ## Documentation Index
> Fetch the complete documentation index at: https://primer.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# React Native SDK

<Update label="v2.45.0" description="2026-06-04">
  **iOS**

  iOS SDK updated to **v2.49.0**

  **✨ Improvements**

  * General fixes and improvements

  **Android**

  Android SDK updated to **v2.51.0**

  **✨ Improvements**

  * General fixes and improvements

  <Info>
    **Primer SDK now depends on `io.primer:klarna-android:1.3.0`**<br />
    If you are using the Klarna dependency in your code, you are encouraged to update it and align with the supported version.

    Klarna SDK was updated from v2.7.1 to v2.11.3. Please refer to the official Klarna [CHANGELOG](https://github.com/klarna/klarna-mobile-sdk-android/blob/master/CHANGELOG.md)
    for more information.
  </Info>
</Update>

<Update label="v2.44.1" description="2026-05-20">
  **iOS**

  iOS SDK updated to **v2.48.0**

  **🚀 New features**

  * Improved payment method processing

  **Android**

  Android SDK updated to **v2.50.0**

  **🚀 New feature**

  * Improved payment method processing

  **🔧 Fixes**

  * Fixes some issues with text color and dark mode theming
</Update>

<Update label="v2.43.1" description="2026-05-14">
  **🚀 New features**

  * Added `KlarnaComponent.cleanUp()` to tear down the Klarna component, enabling consecutive Klarna payments within the same app session.
</Update>

<Update label="v2.43.0" description="2026-04-27">
  **iOS**

  iOS SDK updated to **v2.47.0**

  **🚀 New features**

  * Improved payment method processing

  **✨ Improvements**

  * Improvements to Card Network data

  **Android**

  Android SDK updated to **v2.49.0**

  **🚀 New feature**

  * Improved payment method processing

  **✨ Improvements**

  * Add cvvLabel to CardNetwork Descriptor
</Update>

<Update label="v2.42.2" description="2026-02-02">
  * Fixed an issue that could cause Codegen errors on older React Native versions.
</Update>

<Update label="v2.42.1" description="2026-01-28">
  **iOS**

  iOS SDK updated to **v2.44.1**

  **🔧 Fixes**

  * Fixed an issue that could cause a precondition to trigger
  * Fixed an issue that could cause the app to become unresponsive after dismissing Apple Pay
  * General improvements around error handling
</Update>

<Update label="v2.42.0" description="2026-01-16">
  **iOS**

  iOS SDK updated to **v2.44.0**

  <Warning>
    **Note**: From this version onward, `Primer3DS` requires a minimum version of `2.7.0`.
  </Warning>

  **✨ Improvements**

  * Show processing screen prior to presenting 3DS challenge.

  **Android**

  Android SDK updated to **v2.47.0**

  **✨ Improvements**

  <Warning>
    **Primer SDK now depends on `io.primer:3ds-android:1.8.0`**<br />
    If you are using the 3DS dependency in your code, you are required to update it and align with the supported version. Otherwise, 3DS will result in failure.

    **Changelog**:<br />

    * New LOA Reference Number
    * Updated Device Information Data Version to EMVCo 3DS SDK Device Information 1.7
    * Bouncy Castle (artefact: org.bouncycastle:bcprov-jdk15to18) has been removed as a dependency. The 3DS SDK defaults to the default OS Security Provider in case Bouncy Castle is not found.
  </Warning>

  **🔧 Fixes**

  * improved 3DS locale normalization
  * improved custom Locale handling in Drop-in
</Update>

<Update label="v2.41.0" description="2025-12-12">
  **iOS**

  iOS SDK updated to **v2.43.1**

  **✨ Improvements**

  * EFTPOS co-badged cards selection is now automatic based on merchant's network preference
  * Improved deeplink handling
  * Klarna UI fixes (Continue button, back button)

  **🔧 Fixes**

  * Fixed an issue with surcharge amount validation
  * Fixed card network state not properly cleared when card number field emptied
  * Fixed card validation issues that could cause network picker display problems

  **Android**

  Android SDK updated to **v2.46.0**

  <Warning>
    **Primer SDK now depends on `io.primer:3ds-android:1.7.0`**

    If you are using the 3DS dependency in your code, you are required to update it and align with the supported version. Otherwise, 3DS will result in failure.

    **Changelog:**

    * The 3DS SDK now follows the EU Directive 2019/882.
  </Warning>

  **✨ Improvements**

  * EFTPOS co-badged cards selection is now automatic based on merchant's network preference

  **🔧 Fixes**

  * Fixed a corner case when switching between different co-badged cards
  * Fixed navigation bar blur when edge-to-edge enabled
  * Fixed initial deeplink handling
</Update>

<Update label="v2.40.0" description="2025-11-14">
  **iOS**

  iOS SDK updated to **v2.42.2**

  **🔧 Fixes**

  * Fixes an issue where received url schemes were causing an exception.

  **Android**

  Android SDK updated to **v2.45.0**

  **✨ Improvements**

  * Raised the minimum supported SDK version to `23`
  * Updated `play-services-wallet` dependency to `19.5.0`
</Update>

<Update label="v2.39.2" description="2025-10-30">
  **iOS**

  iOS SDK updated to **v2.42.1**

  **🔧 Fixes**

  * Fixes an issue where a back button was showing incorrectly in Klarna headless flow
  * Improve threading in InternalCardComponentsManager
  * Improved Swift interoperability path resolution
</Update>

<Update label="v2.39.1" description="2025-10-24">
  **🚀 New features**

  * Migrated Drop-In to use **Turbo Modules** for improved performance, reliability, and startup time.

  **Android**

  Android SDK updated to **v2.44.1**

  **✨ Improvements**

  * Fixed crash that occurred when user returned to 3DS screen using a deeplink.
  * Reduced redundant data fetching to speed up loading and improve overall performance.
</Update>

<Update label="v2.38.0" description="2025-10-15">
  **🚀 New feature**

  * Add EFTPOS network support
</Update>

<Update label="v2.37.1" description="2025-09-25">
  **🔧 Fixes**

  * Enable TypeScript declaration generation
</Update>

<Update label="v2.37.0" description="2025-09-24">
  <Warning>
    **Breaking Change**: This version removes support for legacy API versions. The SDK now requires API version 2.4 or later.

    The `PrimerApiVersion.V2_3` option for `settings.apiVersion` has been removed. The SDK now exclusively uses API version 2.4.

    **If you were using the `PrimerApiVersion.V2_3` setting:**

    1. Ensure your backend integration supports API version 2.4
    2. Review the [Migration Guide](/changelogs/migration-guides/API-2.3-to-2.4) for detailed upgrade instructions

    For more information, see our [SDK reference](/sdk/react-native/v2.x.x/common-objects/PrimerSettings#apiVersion) and [API Reference](/api-reference/get-started/overview).
  </Warning>

  **iOS**

  **✨ Improvements**

  * iOS SDK updated to v2.41.1
  * Improved iOS 26 and Xcode 26 compatibility
  * Enhanced error reporting clarity
  * Fixed card network validation security issue

  **Android**

  **✨ Improvements**

  * Android SDK updated to v2.43.0
  * Enhanced internal storage of analytics events
</Update>

<Update label="v2.36.0" description="2025-09-04">
  **Android**

  **✨ Improvements**

  * Improved internal analytics event processing to consolidate redundant events and enhance payload data with richer contextual metadata.
    This internal improvement reduces network overhead while providing better system insights.
  * Improvements to Klarna theme selection.

      <Info>
        **Primer SDK now depends on `io.primer:klarna-android:1.2.0`**<br />
        If you are using the Klarna dependency in your code, you are encouraged to update it and align with the supported version.

        Klarna SDK was updated from v2.6.27 to v2.7.1. Please refer to the official Klarna [CHANGELOG](https://github.com/klarna/klarna-mobile-sdk-android/blob/master/CHANGELOG.md)
        for more information.
      </Info>

  **🔧 Fixes**

  * Fixed crash that occurred when switching payment methods after the `PrimerSessionIntent` parameter was changed
  * Fixed crash that could occur when calling `cleanup()` if the Drop-in dismissal event was not properly handled internally
  * Continuing 3DS flow sometimes failed silently, resulting in `failed-to-resume` or `payment-failed` errors.
    We have fixed that and improved our logging in this specific use case.
</Update>

<Update label="v2.35.0" description="2025-08-27">
  **iOS**

  **🚀 New features**

  * Add appearance mode override to respect app-level theme settings.

  **✨ Improvements**

  * Improvements to Klarna vaulting flow.

  <Warning>
    If you are using the Klarna dependency in your code, you are encouraged to update `PrimerKlarnaSDK` to `1.2.0`.
    **Please note that this version contains critical fixes for the new Liquid Glass UI when built with Xcode 26/iOS 26.**

    Klarna SDK was updated from v2.6.14 to v2.7.2. Please refer to the official Klarna [CHANGELOG](https://github.com/klarna/klarna-mobile-sdk/blob/master/CHANGELOG.md)
    for more information.
  </Warning>

  **🔧 Fixes**

  * Improved payment tokenization and cancellation flow.
</Update>

<Update label="v2.34.1" description="2025-08-20">
  **🔧 Fixes**

  * Fixed compilation bug on RN 0.81+
</Update>

<Update label="v2.34.0" description="2025-07-16">
  **iOS**

  **🚀 New features**

  This release introduces **Apple Pay merchant tokens**, a powerful new feature that enables merchants
  to process recurring payments, subscriptions, and automatic reloads without being tied to specific customer devices.

  **Ready to get started?** Follow our [implementation guides](/connections/payment-methods/apple-pay/overview#apple-pay-mpan-configuration)
  to request merchant tokens (MPANs) and integrate this feature into your payment flow.

  **✨ Improvements**

  * Added support for MM/YY expiry date format
  * Enhanced Apple Pay error handling with new specific error IDs:
    * `apple-pay-no-cards-in-wallet`: Detects when no payment cards are configured in Apple Wallet
    * `apple-pay-device-not-supported`: Identifies devices that don't support Apple Pay
    * `apple-pay-configuration-error`: Reports merchant configuration issues
    * `apple-pay-presentation-failed`: Captures general presentation failures

  **🔧 Fixes**

  * Reduce console noise for nil remoteUrl in ImageManager
  * Reduce excessive validation logging

  **🛠️ Refactor**

  * Introduce default values for PrimerError
  * Migrated many classes and files to async await
  * Clean up UI event posting

  **Android**

  **✨ Improvements**

  * Primer SDK now depends on **`Kotlin 2.0.21`**

  <Warning>
    **Primer SDK now depends on `io.primer:3ds-android:1.6.2`**<br />
    If you are using the 3DS dependency in your code, you are required to update it and align with the supported version. Otherwise, 3DS will result in failure.

    **Changelog**:<br />

    * Due to several security vulnerabilities, Bouncy Castle (artefact : org.bouncycastle:bcprov-jdk15to18) was updated to version 1.79
    * This update improves performance on devices with larger memory capacities by fulfilling Google's requirement for 16 KB memory page sizes, ensuring full compatibility with future Play Store regulations.
  </Warning>
</Update>

<Update label="v2.33.0" description="2025-06-13">
  **iOS**

  **✨ Improvements**

  * Klarna auto continues when single payment option
  * Implement the Co-badged Cards feature on Drop-in

  **🔧 Fixes**

  * Fix memory crash in validateRawData with weak self capture

  **Android**

  **✨ Improvements**

  * We have bumped `compile` and `target` versions to **`35`**
  * **Analytics:** We have reduced number of analytics events captured and sent to our server
  * Improvements to DI resolution
</Update>

<Update label="v2.32.2" description="2025-05-16">
  **✨ Improvements**

  * We have added `CardFormUIOptions.payButtonAddNewCard` to support the "Add New Card" option in the card form flow.
  * Introduced support for the 'Continue payment flow' workflow action to configure checkout outcome. See our [documentation](/workflows/apps/native-apps/primer-payments-app/continue-payment-flow-action#control-the-checkout-result-with-checkout-outcome) for more info.
</Update>

<Update label="v2.32.1" description="2025-04-17">
  **Android**

  **✨ Improvements**

  * **PayPal**: Improved support for picture-in-picture mode. Fixed an issue where some successful authentication flows were incorrectly marked as errors by the SDK.
  * **3DS**: Enhanced locale normalization. Resolved an issue where certain locales were being rejected by the 3DS SDK, causing the flow to fail.
  * **Klarna**: Updated Klarna SDK to `1.1.0`

  <Warning>
    ⚠️ **Primer SDK now supports BOM (Bill of Materials) via `io.primer:bom`**

    If you're using Klarna in your own code, you can **switch to the BOM** to automatically stay aligned with the supported version:

    **`implementation(platform("io.primer:bom:<version>"))
         implementation("io.primer:klarna-android")`**

    This removes the need to manage Klarna versions manually.

    If you choose **not** to use the BOM, make sure you manually update to **`io.primer:klarna-android:1.1.0`**
  </Warning>
</Update>

<Update label="v2.32.0" description="2025-03-25">
  **🚀 New feature**

  * The SDK will now default to using API version 2.4 when initialised. It is possible to use API version 2.3 via `PrimerSettings.apiVersion`. For more information see our [SDK reference](/sdk/android/v2.x.x/common-objects/PrimerSettings#properties.apiVersion), [Api Reference](/sdk/react-native/v2.x.x/common-objects/PrimerSettings)  and [Migration Guides](/changelogs/migration-guides/API-2.3-to-2.4).
</Update>

<Update label="v2.31.0" description="2025-03-19">
  **Android**

  **✨ Improvements**

  * **3DS Locale Propagation:** Resolved an issue where the 3DS SDK occasionally rejected propagated locale settings.
  * **iDEAL via Adyen:** iDEAL is now fully supported as a redirect-based payment method.

  **🔧 Fixes**

  * We have fixed a bug in the Drop-In Checkout which resulted in "Additional fees may apply" text being shown for the Card payment method, when no surcharge was present.
  * **3DS Flow Stability:** Fixed crashes that occurred when the 3DS flow failed while the app was running in the background.

  **iOS**

  **✨ Improvements**

  * Improved error handling when server returns 202 response code
</Update>

<Update label="v2.30.2" description="2025-02-26">
  *No Android Changes*

  **iOS**

  **🔧 Fixes**

  * We have fixed a bug in the Drop-In Checkout which resulted in "Additional fees may apply" text being shown for the Card payment method, when no surcharge was present.

  **✨ Improvements**

  * We have made changes to our internal Analytics logging system which will result in fewer unnecessary logs being sent.
</Update>

<Update label="v2.30.1" description="2025-02-12">
  **✨ Improvements**

  * We've increased the timeout for payment creation and handling for better stability.

  **🔧 Fixes**

  **iOS**

  * We have fixed a bug in our Drop-In Card Form, which resulted in a poor user experience while using RTL formatted languages.
</Update>

<Update label="v2.30.0" description="2025-02-05">
  **🚀 New feature**

  * With this version it is possible to opt-in to use API v2.4. For more information see our [SDK reference](/sdk/react-native/v2.x.x/common-objects/PrimerSettings#apiVersion), [API Reference](/api-reference/get-started/overview)  and [Migration Guides](/changelogs/migration-guides/API-2.3-to-2.4). By default, SDK will remain backward compatible and use API `v2.3`.

  **✨ Improvements**

  * **Expanded Language Support**: The React Native SDK now supports additional languages in drop-in, including:
    * Arabic
    * Bulgarian
    * Czech
    * Spanish (Argentina & Mexico)
    * Estonian
    * Croatian
    * Hungarian
    * Japanese
    * Latvian
    * Portuguese (Brazil)
    * Romanian
    * Vietnamese
  * **3DS Sandbox Testing**: Enhanced support for testing 3D Secure (3DS) flows in the sandbox environment.

  **Android**

  * **Improved Analytics & Reporting**: Enhanced tracking and insights for better performance monitoring.

  **🔧 Fixes**

  **Android**

  * **Drop-in**: fixed an issue causing crashes when calling `Primer.dismiss()` after the checkout sheet is already dismissed.
</Update>

<Update label="v2.29.0" description="2025-01-27">
  **✨ Improvements**

  * API Timeout values have been updated to improve behaviour in the loading phases of the checkout.

  **Android**

  * **Enhanced Card Expiry Date Validation:** We've improved the accuracy of expiry date validation for both headless and drop-in integrations.
  * **Improved Stability:** Resolved crashes caused by `ConcurrentModificationException` during SDK initialization.

  **🚀 New feature**

  * We have added additional dismissal controls to IPrimerUIOptions. It is now possible to dismiss the Primer UI via gestures, an explicit close button, or both.

  **Android**

  * **Co-badged cards in Drop-in**: Primer SDK will automatically detect co-badged cards in the Drop-In integration. This release also brings improvements to card network detection in general. Visit our [documentation](/payment-services/cobadged-cards/) about co-badged cards in order to learn more.

  **🔧 Fixes**

  **Android**

  * **Analytics**: fixed serialization and deserialization of analytics events.
</Update>

<Update label="v2.28.0" description="2024-12-23">
  **🚀 New feature**

  * **Native Payment Method Button Support**: Some payment methods require and offer their native views. To support this, we've updated our Asset Manager and introduced the [**`getPaymentMethodResource`**](/sdk/react-native/v2.x.x/primer-headless-checkout/assets-manager/getPaymentMethodResources) method to access these native resources seamlessly. If you are using Headless integration, make sure to check our updated [documentation](/checkout/headless#step-2-render-available-payment-methods-ui) about rendering of payment method buttons.

      <Note>
        ℹ️

        Usage of Native Payment Method Button is a requirement for all new Android Google Pay API integrations that use a Google Pay payment button.
      </Note>

  * **ACH Vaulting via Stripe**: The ACH payment method through Stripe now supports a [vaulting flow](/connections/payment-methods/ach/stripe), enabling you to save customer details on agreement for future transactions.

  * **Google Pay Enhancements**: You can now collect additional user data through Google Pay, including the user's email and shipping address. Check out our [guide](/connections/payment-methods/google-pay) for details on enabling this feature.

  * **Apple Pay Enhancements**: You can now collect additional user data through Apple Pay, including the user's email and shipping address. Check out our [docs](/sdk/react-native/v2.x.x/common-objects/PrimerSettings#paymentMethodOptions-properties.applePayOptions) for details on enabling this feature.

  **🔧 Fixes**

  **Android**

  * **3DS Locale Handling**: We've fixed an issue where locale extensions were stripped, causing failed 3DS transactions. This update ensures compliance with 3DS guidelines and smoother transaction processing.

  **Deprecations**

  * In order to support `Native Payment Method Button` requirements, we have deprecated following methods:
    * [AssetsManager.getPaymentMethodAsset](/sdk/react-native/v2.x.x/primer-headless-checkout/assets-manager/getPaymentMethodAsset)
    * [AssetsManager.getPaymentMethodAssets](/sdk/react-native/v2.x.x/primer-headless-checkout/assets-manager/getPaymentMethodAssets)
</Update>

<Update label="v2.27.2" description="2024-11-26">
  **🔧 Fixes**

  **Android**

  * Prevent dismissal of Drop-in card form while a payment is active.
  * Vipps via Adyen will now fall back to the Web flow in the event that the Vipps mobile app was not installed.
  * We've fixed the crashes that occurred when using Blik through Adyen's Drop-In in standalone mode.
  * We've resolved occasional crashes related to the "fragment not attached" issue in Drop-In.
  * We've resolved the issue causing crashes when users were deeplinked multiple times from PayPal.
  * We've fixed the issue that caused crashes when retrying a 3DS challenge while another challenge was still in progress.

  <Warning>
    ⚠️ **Primer SDK now depends on `io.primer:3ds-android:1.5.0`**
    If you are using the 3DS dependency in your code, you are required to update it and align with the supported version. Otherwise, 3DS will result in failure.
  </Warning>

  **iOS**

  * Fixes for range or index out of bounds crash in the Card Form UI.
  * Fixes for a crash in InternalCardComponentsManager.

  <Note>
    ℹ️ New 3DS SDK version is available
    If you are using the 3DS dependency in your code, we suggest updating to version **2.4.1**.
  </Note>
</Update>

<Update label="v2.27.1" description="2024-10-28">
  **🔧 Fixes**

  * iOS - Prevent dismissal of Drop-in card form while a payment is active.
  * iOS - Discover card network image not showing.
  * iOS - Move the cursor to the end of the text after pasting the card number.
  * iOS - Errors in the card form are now correctly localized.
  * iOS - Adyen Blik dismissal issue and small UI glitch.
  * iOS - Fixed an issue where Adyen Vipps would not fall back to the Web flow in the event that the Vipps mobile app was not installed.
  * iOS - Fixed an issue where Adyen Blik was not present in PrimerHeadlessUniversalCheckout availablePaymentMethods.
  * iOS - Various stability improvements.
  * Android - Fixed serialization issue on RN 0.76+
</Update>

<Update label="v2.27.0" description="2024-09-23">
  **🚀 New feature**

  * The SDK now supports the Stripe ACH Payment Method
  * Read about how to integrate [here](/connections/payment-methods/ach/stripe/).
</Update>

<Update label="v2.26.3" description="2024-08-28">
  **🔧 Fixes**

  * iOS - Fixed an issue where the PayPal flow was unusable in the Drop-In Universal Checkout
  * iOS - Fixed an issue where `PrimerCheckoutData` was nil when reporting an error in payment creation.
</Update>

<Update label="v2.26.1" description="2024-08-10">
  **✨ Improvements**

  **Client Session caching**

  * It is now possible to cache the ClientSession configuration client-side, which can speed up certain flows in the SDK.
  * This can be enabled via the [clientSessionCachingEnabled](/sdk/react-native/v2.x.x/common-objects/PrimerSettings#clientSessionCachingEnabled) flag. Before enabling the flag to true it's recommended to reach out to Primer support for additional verification since there are edge cases where it is not advised.
</Update>

<Update label="v2.24.0" description="2024-06-26">
  **✨ Improvements**

  **Both platforms**

  * We have aligned the card expiry date validation logic between the Drop-In and Headless integrations, which were previously different. Additionally, we fixed a bug that caused the current month and year to be considered invalid expiry dates.
  * We have aligned error handling across mobile platforms and enhanced our analytics capabilities. Additionally, we have thoroughly documented all errors. For more details, please refer to the official documentation for [Android](/sdk/react-native/v2.x.x/common-objects/PrimerError) and [iOS](/sdk/ios/v2.x.x/common-objects/PrimerError).

  **iOS**

  * We have fixed an issue where `primerWillCreatePaymentWithData` would be triggered twice when using the Klarna payment method.

  **🔧 Fixes**

  **Android**

  * We have resolved the issue with the 3DS service initialization that was incorrectly triggering errors during the initialization process.
  * Please note, that with this update, compatibility requires the use of the `1.4.3` version of the 3DS SDK (`io.primer:3ds-android:1.4.3`).

  **iOS**

  * We have improved validation of the custom URL scheme setting used for payment methods with native UI.
  * Fixed a bug in the Klarna Headless implementation where the correct events were not fired during a manual payment flow.
</Update>

<Update label="v2.23.1" description="2024-05-29">
  **✨ Improvements**

  * We've added support for theming Drop-in Checkout - read more about configuring a theme in [our documentation](/checkout/drop-in/customization#theme)
</Update>

<Update label="v2.23.0" description="2024-05-28">
  **🔧 Fixes**

  **iOS:**

  * Klarna Cocoapods dependency build issue is now fixed. If `PrimerKlarnaSDK` was not present in the Pods, the compiler was reporting an error even if you do not have Klarna set up in your Primer dashboard.

  **Both platforms:**

  * **PayPal**: We have improved the PayPal payment method token by providing additional data, including the payer's first name, last name, and external payer ID. For more information, see our docs ([Android](/sdk/android/v2.x.x/common-objects/PrimerPaymentMethodTokenData#properties.paymentInstrumentData-properties.externalPayerInfo), [iOS](/sdk/ios/v2.x.x/common-objects/PrimerPaymentMethodTokenData#parameters.paymentMethodTokenData-parameters.paymentInstrumentData-parameters.externalPayerInfo)).

  **✨ Improvements**

  * We started the implementation of the comprehensive testing strategy for the ReactNative SDK. We have added a bunch of Unit tests to our project with the purpose of increasing confidence in our codebase. Much more tests are coming.

  NOTE: This does not require any change on the merchant side.
</Update>

<Update label="v2.22.0" description="2024-04-30">
  ****💳 APMs support****

  ****iDEAL via Adyen****

  Adds the **`ComponentWithRedirectManager`** that provides access to **`BanksComponent`**. Using the **`BanksComponent`** you can easily:

  * load list of all supported banks
  * submit user's selection

  For more information, see our [payment method guide](/connections/payment-methods/ideal/adyen-headless) for iDEAL via Adyen, and [sdk reference](/sdk/react-native/v2.x.x/primer-headless-checkout/component-with-redirect-manager/constructor) docs for ComponentWithRedirectManager.

  ****Klarna is now available on HeadlessUniversalCheckout****

  We have extended our support for Klarna to React Native HeadlessUniversalCheckout.

  **Klarna payment categories have been expanded to allow support for all the available categories, including:**

  * Pay now
  * Pay later: Pay in 30 days
  * Pay over time: Pay in 3-4 instalments. First payment right away, then the rest in instalments (no interest)
  * Fair financing: Instalment plans of 6, 12, 24, and 36 months with flexible payments (with interest)

  For more information, see our [payment method guide](/connections/payment-methods/klarna/headless) for Klarna headless, and [sdk reference](/sdk/react-native/v2.x.x/primer-headless-checkout/klarna-headless-manager/constructor) docs for KlarnaHeadlessManager.

  **🚀 New Feature**

  **Support for Klarna EMD**

  Klarna may request extra merchant data (EMD) based on the merchant segment or consumer services. This additional information helps Klarna enhance risk assessment and improve conversion rates.

  You can now dynamically pass any relevant [EMD package](https://docs.klarna.com/klarna-payments/in-depth-knowledge/extra-merchant-data/#how-to-send-emd) via the Client Session as described [here](/connections/payment-methods/klarna/direct-integration/).  Available schemas are documented [here](https://docs.klarna.com/api-reference/attachment-schema/).
</Update>

<Update label="v2.21.1" description="2024-04-19">
  \*\* 🔧 Fixes\*\*

  **iOS:**

  Previously on iOS, the SDK was sending an unexpected type for the `paymentMethodType` in the `IPrimerCheckoutPaymentMethodData` interface. To rectify this, we have added a new `paymentMethod` field of type `String` which should be used going forward. The `paymentMethodType` field has been deprecated.

  **Android:**

  The `paymentMethodType` field of the `IPrimerCheckoutPaymentMethodData` interface has been deprecated in favour of `paymentMethod`.
</Update>

<Update label="v2.21.0" description="2024-04-12">
  **🚀 New Features**

  * **Recapture the CVV of Saved Cards**: In compliance with PCI standards, we've introduced a feature to recapture the CVV for saved cards to potentially increase the success rate of card-on-file transactions. This feature is particularly beneficial as some processors or issuers may have lower authorization rates for transactions without a CVV.
  * **Android - Google Pay**: By default, Google Pay is presented to the user regardless of whether they have a supported card in their wallet. You can now automatically hide Google Pay if the user's wallet does not contain a supported card by setting **`existingPaymentMethodRequired`** to **true**. Check our [guide](/sdk/react-native/v2.x.x/common-objects/PrimerPaymentMethodTokenData#required-existing-payment-method) on how to enable this feature.
  * **Android - PayPal**: We have improved the PayPal [payment method token](/sdk/android/v2.x.x/common-objects/PrimerPaymentMethodTokenData#properties.paymentInstrumentData-properties.externalPayerInfo) by providing additional data, including the payer's first name, last name, and external payer ID.

  **✨ Improvements**

  * **Checkout Experience Enhancements**:
    * Enhanced immediacy of the loading spinner in the drop-in checkout process for a smoother user experience.
    * Local card network identification has been made faster and more efficient.
  * **Client Session API**: The **`orderedAllowedCardNetworks`** option has been introduced, allowing for the specification of supported card networks. This feature enhances network detection and validation for card payments and Apple Pay.
  * **iOS - 3DS SDK Upgrade**: Compatibility has been extended to version 2.3.0 or higher of the Primer 3DS SDK.
  * **iOS - Version Requirement**: The minimum supported iOS version has been raised to 13.0, ensuring our SDK aligns with the latest iOS standards for improved app performance.
  * **iOS - Validation Error Handling**: For card payments, the SDK now intelligently handles validation errors by only sending events when there's a change in a field's validation state. This optimization is specifically for card payments via headless checkout.
  * **iOS - Primer3DS SDK Version 2.2.0**: The SDK has been upgraded to the latest version, ensuring access to state-of-the-art security features and an enhanced user experience.
  * **Android -** Please note, that with this update, compatibility requires the use of the **`1.4.2`** version of the 3DS SDK (**`io.primer:3ds-android:1.4.2`**).
  * **Currency Handling**: A new JSON data format for currencies has been introduced, centralizing currency information on our server to improve accuracy and efficiency.

  **🔧 Fixes**

  * **Analytics Service Improvements**: Significant enhancements have been made to our analytics service, improving its performance and resolving a memory leak issue that could lead to crashes in older SDK versions.
  * **UI Corrections**: In the drop-in checkout, the card icon now accurately updates in response to changes in the entered card number.
  * **Android** -Previously, when the app utilizing our SDK was built in release mode with minification applied, initialization of the SDK would fail. We've since addressed this issue by updating our **consumer-rules.pro** files. You **should not manually** include any Proguard rules, as **consumer-rules.pro** are seamlessly integrated with your existing Proguard rules.
</Update>

<Update label="v2.20.0" description="2024-02-08">
  **✨ Improvements**

  * In this latest release, our 3DS support has undergone some slight enhancements. Please note, with this update, compatibility requires the use of the 1.4.0 version of the Android 3DS SDK (`io.primer:3ds-android:1.4.0`) and **`pod 'Primer3DS', '2.2.0'`** for iOS. We recommend upgrading to this version as it brings new LOA Reference Number for all protocol versions.
  * Internally, between the different platforms, we have aligned how the currencies are formatted. Currency metadata is now being served from our server, allowing us to adapt to potential changes without the SDK update being needed.

  \*\* 🔧 Fixes\*\*

  **Android**:

  * Previously, Google Pay was hidden in case the amount was set to 0. From now on, Google Pay will be always shown in case it was enabled in Primer Dashboard and the device supports payments with Google Pay.
</Update>

<Update label="v2.19.2" description="2024-02-01">
  **✨ Improvements**

  Android

  * Fixed bug where [order.fees.type](https://apiref.primer.io/reference/create_client_side_token_client_session_post#request.body.order.fees) was not being correctly deserialized by the SDK.
</Update>

<Update label="v2.19.1" description="2024-01-25">
  **✨ Improvements**

  **iOS**

  * Fixed an issue where typescript definitions weren't being included in the release.
</Update>

<Update label="v2.19.0" description="2024-01-05">
  **✨ Improvements**

  In this release, substantial enhancements have been made to our 3DS support, introducing a variety of improvements aimed at boosting the conversion rate of 3DS challenges. Please note, with this update, compatibility requires the use of **`io.primer:3ds-android:1.3.0`** for Android and **`pod 'Primer3DS', '2.1.0'`** for iOS.

  **Features**

  **Headless Vault Manager**

  In this release, we have added `VaultManager.configure()` which configures an instance of `VaultManager`, which can then be used to:

  * Fetch a list of vaulted payment methods
  * Delete a vaulted payment method
  * Perform a payment using a vaulted payment method and additional data (e.g. CVV)

  Explore our [documentation](/sdk/react-native/v2.x.x/primer/methods/configure) for detailed information.
</Update>

<Update label="v2.18.0" description="2023-11-06">
  **✨ Improvements**

  **iOS**

  * Fix the ApplePay bug where the flow was not shown if there were no cards added in the Wallet app.
    * Added 2 flags:
      * `showApplePayForUnsupportedDevice`: Bool
        If in some cases you don't want to present the ApplePay option if the device is not supporting it set this to `false`. The default value is `true`.
      * `checkProvidedNetworks`: Bool
        Flag introduced to enable the initiation of the ApplePay flow even when no cards are present in the Wallet. To enable ApplePay Add Card Flow, set this flag to `false` This flag is set to `true` by default due to enable backward compatibility with older versions.
  * 🍎 Upgraded Primer iOS SDK to 2.18.0 ([Git](https://github.com/primer-io/primer-sdk-ios/releases/tag/2.18.0) | [Changelog](https://www.notion.so/5a86e1d933fc4fae83b1497f80c7310a?pvs=21))

  **Android**

  * 🤖 Upgraded Primer Android SDK to 2.18.0 ([Git](https://github.com/primer-io/primer-sdk-android/releases/tag/2.18.0) | [Changelog](https://www.notion.so/8b4bd28444eb4af283678c9f2b5f46fe?pvs=21))
</Update>

<Update label="v2.17.3" description="2023-09-26">
  **✨ Improvements**

  **RN**

  * ⚛ Upgraded react native to 0.72.6 ([Changelog](https://github.com/facebook/react-native/releases/tag/v0.72.0))
    * Still compatible with 0.70.x

  **Android**

  * 🤖 Upgraded Primer Android SDK to 2.17.3 ([Git](https://github.com/facebook/react-native/releases/tag/v0.72.0) | [Changelog](https://www.notion.so/8b4bd28444eb4af283678c9f2b5f46fe?pvs=21))

  **iOS**

  * 🍎 Upgraded Primer iOS SDK to 2.17.4 ([Git](https://github.com/primer-io/primer-sdk-ios/releases/tag/2.17.4) | [Changelog](https://www.notion.so/5a86e1d933fc4fae83b1497f80c7310a?pvs=21))
</Update>

<Update label="v2.17.2" description="2023-08-17">
  **✨ Improvements**

  Android:

  In this version of the SDK we have introduced a new version of 3DS library. Primer SDK will depend on `io.primer:3ds-android:1.2.0` from now on.

  <Warning>
    ⚠️ **If you are using 3DS dependency in your code, you are required to update it in order to align with the supported version. Otherwise, 3DS will result in failure.**
  </Warning>
</Update>

<Update label="v2.17.1" description="2023-08-09">
  **🔧 Fixes**

  **iOS**

  * Fix Apple Pay crash

  **Android**

  * Removed requirements for `amount` in client session when vaulting PayPal
</Update>

<Update label="v2.17.0" description="2023-07-28">
  <Warning>
    ⚠️ This version introduces breaking changes for Headless Checkout
  </Warning>

  **✨ Improvements**

  It's been more than 6 months that Headless Checkout has been released in Beta!

  We gathered insightful feedback that pushed us to work on critical improvements to the developer experience of Headless Checkout.

  This release candidate introduces a more robust, scalable, and stable flow for integrating Headless Checkout to implement a fully custom interface for your checkout.

  Our [documentation](/checkout/headless#react-native) has been updated to reflect these changes. You can also find a [Migration Guide](/changelogs/migration-guides/) detailing the changes.

  **3DS Service**

  Our 3DS service has been completely revamped. Primer SDK now supports 3DS protocol version `2.2.0`

  * Support 3DS weak validation
  * Support 3DS OOB flow
  * Improve 3DS reporting

  Check out our detailed documentation [here](/checkout/headless#android)

  <Note>
    ℹ️ iOS: If you are using `Primer3DS` in your integration, make sure to bump it to v.1.2.0
  </Note>

  **🔧 Fixes**

  **iOS**

  * Fix vaulted payment method on Drop In not getting tapped
  * Enhance 3DS auth rates
  * Fix checkout not rendering when there are vaulted payment methods
  * Make performance improvements on raw data manager validation delegate
  * Fix the scenario where the payment method's image file is missing
  * Print console warning when a **`decisionHandler`** is not implemented
  * Observability improvements
  * Improves cancellation happening from 3rd party payment apps through deep links
  * Fix Atome cancellation from within the web view
  * Fix UI unresponsiveness happening on iOS 16.0.x in certain cases

  **Android**:

  ✨ Improvements:

  * Improvements to deeplink handling for PayPal and Redirect based payment methods
  * Reintroduce showing a payment method directly with the Drop In UI integration
  * Koin dependency has been bumped to version `3.3.3`
  * Better interoperability with `Java` when using Primer SDK
  * Internal SDK improvements
  * `PrimerPaymentMethodAsset` now exposes the payment method's friendly name
</Update>

<Update label="v2.17.0-rc.13" description="2023-07-17">
  **✨ Improvements since 2.17.0-rc.12**

  **Android**

  * Improvements to deeplink handling for PayPal and Redirect based payment methods

  **iOS**

  * Fix vaulted payment method on Drop In not getting tapped
</Update>

<Update label="v2.17.0-rc.12" description="2023-07-12">
  <Warning>
    ⚠️ If you are using `Primer3DS` in your integration, make sure to bump it to v.1.2.0
  </Warning>

  **✨ Improvements since 2.17.0-rc.11**

  * Enhance 3DS auth rates
</Update>

<Update label="v2.17.0-rc.11" description="2023-07-11">
  **✨ Improvements since 2.17.0-rc.10**

  **iOS**

  * Fix issue with Vipps getting presented
</Update>

<Update label="v2.17.0-rc.10" description="2023-06-09">
  **✨ Improvements**

  * Reintroduce showing a payment method directly with the Drop In UI integration

  **✨ Improvements since 2.17.0-rc.9**

  **iOS**

  <Warning>
    ⚠️ If you are also integrating `Primer3DS`, make sure to install v.1.1.2 to avoid archiving issues with Xcode 14.3.1
  </Warning>

  * Fix checkout not rendering when there are vaulted payment methods
  * Make performance improvements on raw data manager validation delegate

  **Android**

  * Apply fix on PayPal vaulting
  * Resolved bug where Drop In UI could be launched multiple times at same time
</Update>

<Update label="v2.17.0-rc.9" description="2023-05-31">
  <Note>
    ⚠️ This version has a know bug and won't render the Universal Checkout if there're vaulted payment methods for the user defined in the client session
  </Note>

  **✨ Improvements since 2.17.0-rc.8**

  **iOS**

  * Apply fix on PayPal vaulting
  * Fix Klarna archiving issue
</Update>

<Update label="v2.17.0-rc.8" description="2023-05-30">
  **✨ Improvements**

  <Note>
    ⚠️ This version introduces breaking changes for Headless Checkout. You also have to update the iOS pod `Primer3DS` to version 1.1.1.
  </Note>

  <Note>
    ⚠️ This version has a know bug and won't render the Universal Checkout if there're vaulted payment methods for the user defined in the client session
  </Note>

  * Our 3DS service has been completely revamped. Primer SDK now supports 3DS protocol version `2.2.0`
  * Support 3DS weak validation
  * Support 3DS OOB flow
  * Improve 3DS reporting
  * Add 3DS sanity check in `PrimerSettings`

  Check out our detailed documentation [here](/checkout/headless#react-native)

  **✨ Improvements since 2.17.0-rc.11**

  * Minor fixes
</Update>

<Update label="v2.16.7" description="2023-05-10">
  **🔧 Fixes**

  **iOS:**

  * Take into account tax and discount on Apple Pay items
  * Prioritize merchant amount over total amount
  * Only take into account surcharge when merchant amount is not set
</Update>

<Update label="v2.16.6" description="2023-05-08">
  **🔧 Fixes**

  **iOS:**

  * Expose payment instrument data on tokenization callback
</Update>

<Update label="v2.17.0-rc.6" description="2023-05-08">
  **🔧 Fixes**

  **iOS:**

  * Expose payment instrument data on tokenization callback
</Update>

<Update label="v2.17.0-rc.4" description="2023-04-04">
  <Note>
    ⚠️ This version introduces breaking changes for Headless Checkout
  </Note>

  **✨ Improvements**

  * `Asset` now exposes the payment method's friendly name as `paymentMethodName`

  **🔧 Fixes**

  **iOS**:

  * Improved analytics
  * Fix scenario where payment method's image file is missing
  * Print console warning when a `decisionHandler` is not implemented
</Update>

<Update label="v2.17.0-rc.3" description="2023-03-21">
  <Note>
    ⚠️ This version introduces breaking changes for Headless Checkout
  </Note>

  **✨ Improvements**

  **💳 APMs support**

  **Cards via iPay88**

  In this version of the SDK we added the support for Cards via iPay88.

  Cards via iPay88 Payment Method now is fully supported via Headless Universal Checkout and Drop-In.

  You can now make one-off payments or vault a card with iPay88 in order to make recurring payments.

  **✨ Improvements**

  **Android**:

  * It is now possible to capture billing address using Google Pay by specifying `googlePayOptions.isBillingAddressCaptureEnabled = true.`
    Please check official [docs](/connections/payment-methods/google-pay/drop-in#capture-billing-address) for more details.
  * Contains the features and improvements of 2.16.5

  **iOS**:

  * Contains the features and improvements of 2.16.5
  * Observability improvements
  * Improves cancellation happening from 3rd party payment apps through deep links
  * Fix Atome cancellation from within the webview
  * Fix UI unresponsiveness happening on iOS 16.0.x on certain cases
  * Fix iOS console warnings
</Update>

<Update label="v2.16.5" description="2023-03-14">
  **🚀 Improvements**

  **Android**:

  * Improved handling of payment cancellations for `Atome`
  * Improved internal analytics for 3DS events
  * Improved internal analytics for headless integration

  **🔧 Fixes**

  **iOS:**

  * Fix an issue that prevented 3DS from working with some card networks (AMEX, Maestro, Discover, and JCB)
  * Fix an issue that prevented 3DS from working when the billing address is set or updated after the SDK is initialized with a client session
</Update>

<Update label="v2.17.0-rc.2" description="2023-01-23">
  <Note>
    ⚠️ This version introduces breaking changes for Headless Checkout
  </Note>

  **✨ Improvements**

  It's been more than 6 months that Headless Checkout has been released in Beta!

  We gathered insightful feedback that pushed us to work on critical improvements to the developer experience of Headless Checkout.

  This release candidate introduces a more robust, scalable, and stable flow for integrating Headless Checkout to implement a fully custom interface for your checkout.

  Our [documentation](/checkout/headless#react-native) has been updated to reflect these changes. You can also find a [Migration Guide](/changelogs/migration-guides/) detailing the changes.

  This release candidate will soon be merged into the main releases.

  **In addition to `RC1` release, we have improved couple of things based on your feedback:**

  * Fixed issue when calling `AssetsManager`'s `getPaymentMethodAsset` on Android that caused the result to be a string instead of an object

  * Fixed an issue causing `applePay.isBillingAddressCaptureEnabled` to be ignored

  * Reverted back old way of setting Drop-In callbacks: 2.17.0 does not introduce any breaking change for the drop-in checkout

  * Fixed an issue that caused Google Pay to be proposed on iOS

  * We've also added the changes to 2.16.4
</Update>

<Update label="v2.16.4" description="2023-02-09">
  **New languages**

  * Malay
  * Thai
  * Mandarin Chinese
</Update>

<Update label="v2.17.0-rc.1" description="2023-01-23">
  <Note>
    ⚠️ This version introduces breaking changes for Headless Checkout
  </Note>

  **✨ Improvements**

  It's been more than 6 months that Headless Checkout has been released in Beta!

  We gathered insightful feedback that pushed us to work on critical improvements to the developer experience of Headless Checkout.

  This release candidate introduces a more robust, scalable, and stable flow for integrating Headless Checkout to implement a fully custom interface for your checkout.

  Our [documentation](/checkout/headless#react-native) has been updated to reflect these changes. You can also find a [Migration Guide](/changelogs/migration-guides/) detailing the changes.

  This release candidate will soon be merged into the main releases.
</Update>

<Update label="v2.16.2" description="2022-01-23">
  **✨ Improvements**

  * Google Pay payments now support native 3DS

  **🔧 Fixes**

  * \[Android] Drop-In can now be initialized with a `0` amount in the client session
  * \[Android] Card flows that use `showPaymentMethod` have been improvemend
  * \[iOS] Fix an issue with OVO via Xendit redirect
</Update>

<Update label="v2.16.0" description="2022-12-21">
  **✨ Improvements**

  In this version we are adding support for iPay88 card payments.

  We have also added events to monitor the Headless flow.

  **Android**

  * In this version of the SDK we have introduced a new version of 3DS library. Primer SDK will depend on `io.primer:3ds-android:1.1.2` from now on.

      <Warning>
        ⚠️ **If you are using 3DS dependency in your code, you are required to update it in order to align with the supported version. Otherwise, 3DS will result in failure.**
      </Warning>

  * We have added a way to capture billing address using Google Pay. You will need to pass `captureBillingAddress = true` to `PrimerGooglePayOptions`

  **🔧 Fixes**

  * \[iOS] Remove Xcode configuration flags from podspec.
  * \[iOS] Apple Pay will return an error on simulator.
</Update>

<Update label="v2.15.1" description="2022-11-29">
  **🔧 Fixes**

  * Fixing the MBWay local asset loading on iOS
  * Removed the `GENERATE_INFOPLIST_FILE` as part of the `xcconfig` of the `PrimerSDK` podspec dependency, as it was causing an issue upon archiving the hosting apps.
  * Added `CODE_SIGNING_ALLOWED => NO` to `xcconfig` in `PrimerSDK` `podspec` dependency to remove the Signing requirement introduced in Xcode 14+
  * Fixed an issue on Android when a developer wanted to disable the showing of some screens. Previously that was broken due to Android OS automatically showing the bottom sheet dialog when we get back on the main screen, even if we hide it before.
</Update>

<Update label="v2.15.0" description="2022-11-18">
  **✨ Improvements**

  <Note>
    👌 Alongside the listed features below, we have performed improvements to our codebase.
  </Note>

  In this version of the SDK we have introduced a new version of 3DS library for Android. Primer Android SDK will depend on `io.primer:3ds-android:1.1.1` from now on.

  <Warning>
    ⚠️ **If you are using 3DS dependency in your code, you are required to update it in order to align with the supported version. Otherwise, 3DS will result in failure.**
  </Warning>

  **🔧 Fixes**

  * We have fixed certain redirection issues for payment methods using Buckaroo as PSP on Android
  * We have improved the Cardholder name check on iOS
</Update>

<Update label="v2.14.4" description="2022-11-14">
  **🔧 Fixes**

  * Aligned the `RN_ANDROID` on Analytics `sdkType`
  * Fixed an issue on iOS in regards to the availability of retrieving some assets
  * Small improvements on iOS in the way the Country selector in billing address gets loaded
</Update>

<Update label="v2.14.3" description="2022-11-08">
  **🔧 Fixes**

  * Fixed version reference of the PrimerSDK for iOS
</Update>

<Update label="v2.14.2" description="2022-11-08">
  **🔧 Fixes**

  * Fixed 3DS on frictionless flows
  * Sending analytics events with correct `sdkVersion`  and `sdkType`
</Update>

<Update label="v2.14.1" description="2022-11-04">
  **🔧 Fixes**

  * Fixed the PayPal vaulting service
</Update>

<Update label="v2.14.0" description="2022-10-28">
  **✨ Improvements**

  <Note>
    👌 Alongside the listed features below, we have performed improvements to our codebase.
  </Note>

  In this version of the SDK we have removed options to pass 3DS vaulting flag **`is3DSOnVaultingEnabled`**

  Above flow is now obsoleted and 3DS will always follow workflows.

  **🔧 Fixes**

  * We have fixed wrong cardholder name checkout modules evaluations which resulted in not requesting cardholder name on headless
  * We have fixed raw data validation callbacks not being fired on headless
  * We have also fixed retrieval of card network assets
</Update>

<Update label="v2.13.2" description="2022-10-26">
  **🔧 Fixes**

  * Fix initialization for Universal Checkout on Android.

  <Note>
    ℹ️ This fix solves the issue affecting versions from `2.13.0` to `2.13.1`. We recommend updating to this `2.13.2` version.
  </Note>
</Update>

<Update label="v2.13.1" description="2022-10-24">
  **🔧 Fixes**

  Fixing the Blik flow on iOS.

  <Note>
    ℹ️ This fix solves the issue affecting versions from `2.7.0` to `2.13.0`. We recommend updating to this `2.13.1` version.
  </Note>
</Update>

<Update label="v2.13.0" description="2022-10-21">
  **✨ Improvements**

  <Note>
    👌 Alongside the listed features below, we have performed improvements to our codebase.
  </Note>

  **💳 APMs support**

  **Retail Outlets via Xendit**

  In this version of the SDK we added the support for Retail Outlets via Xendit.

  Retail Outlets via Xendit Payment Method now is fully supported via Headless Universal Checkout (Beta) via the Raw Data Manager.

  Check this out in [our documentation](https://www.notion.so/52426f47b9b04f808a6b88ee51301196?pvs=21) 🙌
</Update>

<Update label="v2.12.2" description="2022-10-19">
  **🔧 Fixes**

  **iOS**

  Fixed on Headless Universal Checkout with `ADYEN_BANCONTACT_CARD` flow failing on some scenarios.
</Update>

<Update label="v2.12.1" description="2022-10-11">
  **🪲 Hotfix**

  **iOS**

  Fixes a bug in the Klarna vault flow.

  **Android**

  Fixed raw card data formatting and mapping in some scenarios.
</Update>

<Update label="v2.12.0" description="2022-10-07">
  **✨ Improvements**

  <Note>
    👌 Alongside the listed features below, we have performed improvements to our codebase.
  </Note>

  **💳 APMs support**

  **Bancontact via Adyen**

  In this version of the SDK we added the support for Bancontact Debit via Adyen for.

  Bancontact Debit via Adyen Payment Method now is fully supported via Headless Universal Checkout (Beta) and the standard SDK implementation.

  In this release, developers have the ability of initializing the raw data for a Bancontact Card 💳  and  perform the Tokenization flow via their own fully customized UI yet utilizing all of the features that make Primer great.

  **Apple Pay billing address on iOS**

  Last but not least, we are now capturing the billing address out of an Apple Pay payment.

  To enable this feature, when configuring the Checkout with the `PrimerSettings` , developers can setup `PrimerApplePayOptions` with another parameter: `isCaptureBillingAddressEnabled` . The SDK will take care of showing the option of adding the billing address and capture it.
</Update>

<Update label="v2.11.0" description="2022-10-03">
  **✨ Improvements**

  <Note>
    👌 Alongside the listed features below, we have performed improvements to our codebase.
  </Note>

  In this version of the SDK we improved the raw data validation in the Headless Universal Checkout flow.
</Update>

<Update label="v2.9.0" description="2022-09-19">
  **✨ Improvements**

  <Note>
    👌 Alongside the listed features below, we have performed improvements to our codebase.
  </Note>

  In this version of the SDK we added the support for Multibanco via Universal Checkout for iOS too 🙌.

  Multibanco Payment Method now is fully supported on both platforms via Headless Universal Checkout (Beta) and the standard SDK implementation.

  PromptPay is also now supported via Omise too 🙌.

  In Headless Universal Checkout (Beta), developers will have access to a new event which will provide an object `PrimerCheckoutQRCodeInfo` containing the data needed to build their awesome UI / UX.

  For PromptPay specifically, the object will be `PromptPayCheckoutAdditionalInfo`

  `onCheckoutReceivedAdditionalInfo(additionalInfo: PrimerCheckoutAdditionalInfo?)`
</Update>

<Update label="v2.8.1" description="2022-09-14">
  **🚀 Improvements**

  **Android**

  We have fixed a bug where cardholder name field was loosing focus when billing address checkout module was enabled.
</Update>

<Update label="v2.8.0" description="2022-09-08">
  **✨ Improvements**

  <Note>
    👌 Alongside the listed features below, we have performed improvements to our codebase.
  </Note>

  **iOS**

  Applied a fix on the infinite loading with Xendit payment methods.

  **Android**

  Applied a fix on the infinite loading with Xendit payment methods.

  We have removed some transitive dependencies from our code. This will result in smaller size of you application when Primer SDK is imported.

  Try it out and let us know what do you think 🙌!
</Update>

<Update label="v2.6.1" description="2022-08-29">
  **🪲 Hotfix**

  This release fixes a build warning on the duplication of the React Native SDK's bridging header on iOS.
</Update>

<Update label="v2.5.1" description="2022-08-29">
  **🪲 Hotfix**

  This release fixes a build warning on the duplication of the React Native SDK's bridging header on iOS.
</Update>

<Update label="v2.6.0" description="2022-08-24">
  **✨ Improvements**

  <Note>
    👌 Alongside the listed features below, we have performed improvements to our codebase.
  </Note>

  Last release was all about bringing the possibility to Headless Checkout of utilizing the raw data a card 💳  contains so that developers could utilize their own fully customized UI and still use all of the features that make Primer great.

  We kept expanding the Headless Checkout feature, now providing to our developers the raw phone number data they can utilize to create payments.

  The payment method supporting that is only **OVO via Xendit** for now.

  Try it out and let us know what do you think 🙌!

  ***

  We didn't stop here though, alongside the phone number capture, we have enriched our suite of available payment methods adding MB Way, working with Portuguese phone numbers 🇵🇹  and needing the MB Way App to complete the payment.

  Here is a preview for iOS and Android 👇

  <Frame caption="Simulator">
    <img src="https://mintcdn.com/primer-cc826789/2gUFYKfNb_svpxsN/images/changelogs/react-native/Simulator.gif?s=c81407004d873c493c87e591430544db" width="296" height="640" data-path="images/changelogs/react-native/Simulator.gif" />
  </Frame>

  ![Simulator Screen Recording - iPhone 11 - 2022-08-23 at 18.48.28.gif](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/a2778e2f-01b4-476f-9337-f39b2aa3afc1/Simulator_Screen_Recording_-_iPhone_11_-_2022-08-23_at_18.48.28.gif)

  ![Screen Recording 2022-08-23 at 18.56.53.gif](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/2585af85-a020-4c2e-a729-baaeac384a59/Screen_Recording_2022-08-23_at_18.56.53.gif)
</Update>

<Update label="v2.5.0" description="2022-08-17">
  **✨ Improvements**

  <Note>
    👌 Alongside the listed features below, we have performed improvements to our codebase.
  </Note>

  This release enhance the capabilities of our SDK in its Headless Checkout feature, bringing the possibility of utilizing your fully customized UI and still use all of the features that make Primer great. We now give to our developers all the raw data a card contains.

  Try it out and let us know what do you think 🙌!
</Update>

<Update label="v2.4.0" description="2022-08-10">
  **✨ Improvements**

  <Note>
    👌 Alongside the listed features below, we have performed improvements to our codebase.
  </Note>

  This release brings a totally new way of retrieving the APMs.

  We have now the possibility of providing some APMs without even push a new release 🙌.

  That's a huge milestone for us and the developments of our product.
</Update>

<Update label="v2.3.0" description="2022-07-29">
  **✨ Improvements**

  <Note>
    👌 Alongside the listed features below, we have performed improvements to our codebase.
  </Note>

  **💳 APMs support**

  Fast and PromptPay via Rapyd

  **iOS representation**

  <Frame caption="Completing Payment">
    <img src="https://mintcdn.com/primer-cc826789/2gUFYKfNb_svpxsN/images/changelogs/react-native/B101.webp?fit=max&auto=format&n=2gUFYKfNb_svpxsN&q=85&s=eca3d667d55e62b047f0a33461a9f086" width="902" height="1152" data-path="images/changelogs/react-native/B101.webp" />

    <img src="https://mintcdn.com/primer-cc826789/2gUFYKfNb_svpxsN/images/changelogs/react-native/complete_payment.webp?fit=max&auto=format&n=2gUFYKfNb_svpxsN&q=85&s=14560f808d7d2cc3f738ff1773b26803" width="605" height="553" data-path="images/changelogs/react-native/complete_payment.webp" />
  </Frame>

  **Android representation**

  <Frame caption="Scan Code">
    <img src="https://mintcdn.com/primer-cc826789/dM-udzSll5kL79ou/images/changelogs/react-native/scan_code.webp?fit=max&auto=format&n=dM-udzSll5kL79ou&q=85&s=038383a3672affa23d94897d6fcf0417" width="902" height="1152" data-path="images/changelogs/react-native/scan_code.webp" />

    <img src="https://mintcdn.com/primer-cc826789/2gUFYKfNb_svpxsN/images/changelogs/react-native/complete_your_payment.webp?fit=max&auto=format&n=2gUFYKfNb_svpxsN&q=85&s=3f315e444b34b64fdaf3d9424b9744f2" width="896" height="1040" data-path="images/changelogs/react-native/complete_your_payment.webp" />
  </Frame>
</Update>

<Update label="v2.2.1" description="2022-07-18">
  * **Android**
    * Fix exposing views
  * **iOS**
    * Internal codebase refactor
</Update>

<Update label="v2.2.0" description="2022-07-13">
  **✨ Improvements**

  <Note>
    👌 Alongside the listed features below, we have performed improvements to our codebase.
  </Note>

  **💳 APMs support**

  Grab Pay, Poli and GCash via Rapyd

  **iOS and Android representation**

  <Frame caption="Grabpay Gcash Simulator">
    <img src="https://mintcdn.com/primer-cc826789/2gUFYKfNb_svpxsN/images/changelogs/react-native/grabpay-gcash-simulator.webp?fit=max&auto=format&n=2gUFYKfNb_svpxsN&q=85&s=8a7c01a8f4dee735783d92d31f384abb" width="512" height="658" data-path="images/changelogs/react-native/grabpay-gcash-simulator.webp" />

    <img src="https://mintcdn.com/primer-cc826789/2gUFYKfNb_svpxsN/images/changelogs/react-native/poli-simulator.webp?fit=max&auto=format&n=2gUFYKfNb_svpxsN&q=85&s=6a21916c22bc8d0128228c33a4268891" width="826" height="954" data-path="images/changelogs/react-native/poli-simulator.webp" />
  </Frame>

  <Frame>
    <img src="https://mintcdn.com/primer-cc826789/2gUFYKfNb_svpxsN/images/changelogs/react-native/pay_with_card.webp?fit=max&auto=format&n=2gUFYKfNb_svpxsN&q=85&s=a674ae99442702d2b5c9d8a665eaf07c" width="351" height="408" data-path="images/changelogs/react-native/pay_with_card.webp" />

    <img src="https://mintcdn.com/primer-cc826789/2gUFYKfNb_svpxsN/images/changelogs/react-native/pay_with_card_2.webp?fit=max&auto=format&n=2gUFYKfNb_svpxsN&q=85&s=f3c169f4be377e4a8e1f9ef58aa11061" width="356" height="348" data-path="images/changelogs/react-native/pay_with_card_2.webp" />
  </Frame>

  **Billing address support 🧾**

  We can now capture the billing address before performing a payment.

  **iOS and Android representation**

  <Frame caption="Primer & Billing">
    <img src="https://mintcdn.com/primer-cc826789/dM-udzSll5kL79ou/images/changelogs/react-native/primer.webp?fit=max&auto=format&n=dM-udzSll5kL79ou&q=85&s=2bd8bfda8ad963863ce05483dedce966" width="828" height="1792" data-path="images/changelogs/react-native/primer.webp" />

    <img src="https://mintcdn.com/primer-cc826789/2gUFYKfNb_svpxsN/images/changelogs/react-native/billing.webp?fit=max&auto=format&n=2gUFYKfNb_svpxsN&q=85&s=cd51292c786a65d76b824894d43605d2" width="1024" height="2162" data-path="images/changelogs/react-native/billing.webp" />
  </Frame>
</Update>

<Update label="v2.1.0" description="2022-07-08">
  **✨ Improvements**

  *The version 2 of the Headless Universal Checkout is out!*

  **✨ Payments created automatically**

  Primer Headless Universal Checkout | SDK

  Starting from this version, automatic payment creation is included in the `Headless Universal Checkout`. You should now only care about creating best possible and seamless experience for your users, we will take care of the rest. Please take a look at our simple [explanation](https://www.notion.so/React-Native-SDK-dbd34cc9b7ce455986abf5b18c96d212?pvs=21) about the changes we made.
</Update>

<Update label="v2.0.1" description="2022-06-20">
  * Fix Klarna checkout
  * Dummy APMs
</Update>

<Update label="v0.16.2" description="2022-07-06">
  * Update Android dependency to 1.15.1
</Update>

<Update label="v0.16.1" description="2022-06-16">
  * Fix Klarna checkout
  * Fix Klarna checkout with HUC
</Update>

<Update label="v0.16.0" description="2022-06-13">
  * Include Headless Universal Checkout Beta
</Update>

<Update label="v2.0.0" description="2022-06-08">
  **✨ Improvements**

  *The version 2 of the SDK is out!*
  *This includes a simplified way to integrate Primer*

  <Tip>
    📚 Take a look at the [migration guide](/changelogs/migration-guides/) for updating your integration to version 2.
  </Tip>

  **✨ Payments created automatically**

  Universal Checkout | SDK

  Creating payments with Universal Checkout is now *seamless.* There's no more need for **callbacks**, **API calls** and **headaches** to create a payment. It's all done under the hood 🧙

  ***In the past, creating payments involved manual payment handling:***
  On the **client side**, you would have had to implement the dreaded `clientTokenCallback`, `onTokenizeSuccess` and `onResumeSuccess` delegate functions.

  On the **server side**, you had to manually call our **Payments API** in order to create a payment 🤷

  **Rejoice!** As from version `2.0.0` no manual payment handling is required! Payment creation is now, as mentioned above, :chef-kiss: - *seamless.*

  Feel free to rip out the above mentioned callbacks when migrating to version `2.0.0` and enjoy the feeling of utter relaxation as all your payment handling is now done by Universal Checkout 💆

  ***
</Update>

<Update label="v0.15.8" description="2022-05-30">
  * Fixed PayPal vaulting on iOS and Android
  * Fixed Android mappings
</Update>

<Update label="v0.15.5" description="2022-05-23">
  * Added following APMs
    * Coinbase
    * OpenNode
    * 2c2p
    * PayShop
</Update>

<Update label="v0.13.0 [BETA 3]" description="2022-05-19">
  * Fix Apple Pay merchant name not showing
</Update>

<Update label="v0.15.1" description="2021-04-19">
  * Fixes cardholder name field not deleting characters
  * Changes cardholder name field's keyboard type
</Update>

<Update label="v0.15.0" description="2021-04-12">
  * Bug fixes & stability improvements
</Update>

<Update label="0.12.5" description="2021-04-07">
  * Update native dependencies
  * Fix callbacks naming and types
</Update>

<Update label="v0.12.4" description="2021-03-29">
  * Update native dependencies
</Update>

<Update label="v0.13.0-beta.1" description="2021-03-17">
  * Beta-1 for the Headless Universal Checkout
</Update>

<Update label="v0.12.3" description="2021-03-17">
  * Fix `is3DSDevelopmentMode` flag
</Update>

<Update label="v0.12.2" description="2021-03-16">
  * Bug fixes
</Update>

<Update label="v0.12.1" description="2021-03-11">
  * Update native dependencies
</Update>

<Update label="v0.11.2" description="2021-02-16">
  * Fix actions callback
</Update>

<Update label="v0.11.1" description="2021-02-09">
  * Update native dependencies
</Update>

<Update label="v0.11.0" description="2021-02-11">
  * Update native dependencies
</Update>

<Update label="v0.10.0" description="2021-02-01">
  * Improved deep linking for both native platforms
  * Extended language support for Android
</Update>

<Update label="v0.9.0" description="2021-01-28">
  * Added support for more payment methods
  * Fixed single payment method payment flow
  * Performance improvements on both native platforms
  * Autofocus feature for card forms added
</Update>

<Update label="v0.8.0" description="2021-01-14">
  * Add support for `SET_BILLING_ADDRESS` client session action
  * Enables postal code capture in card form on both platforms
  * Improvements to surcharge feature
</Update>

<Update label="v0.7.1" description="2021-12-23">
  * Add beta support for payment method Atome
</Update>

<Update label="v0.7.0" description="2021-12-08">
  * Stable surcharge feature for both iOS & Android.
  * Minor bug fixes.
  * Improvements to example app.
</Update>

<Update label="v0.7.0-beta" description="2021-12-03">
  * Adds `onClientSessionActions` callback
  * Early version of surcharge added for both platforms.
</Update>

<Update label="v0.6.8" description="2021-12-03">
  * Refactored error handling for `onTokenizeSuccess` and `onResumeSuccess`
  * Improved flow for example app
</Update>

<Update label="v0.6.7" description="2021-12-01">
  * Adds Bancontact, EPS, Giropay, iDeal and Sofort via Buckaroo
  * Minor updates to example app
  * Minor fix on PayPal presentation for iOS
</Update>

<Frame caption="Billing Address">
  <img src="https://mintcdn.com/primer-cc826789/2gUFYKfNb_svpxsN/images/changelogs/react-native/billing_address.webp?fit=max&auto=format&n=2gUFYKfNb_svpxsN&q=85&s=596e83a62239db02faba2da56a999e8d" width="512" height="1081" data-path="images/changelogs/react-native/billing_address.webp" />
</Frame>
