v2.41.0
2025-06-20

✨ Improvements

  • Primer SDK now depends on Kotlin 2.0.21

Primer SDK now depends on io.primer:3ds-android:1.6.2
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:

  • 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.
v2.40.1
2025-06-11

✨ Improvements

  • Better edge-to-edge support in Drop-In integration.
  • Improvements to DI resolutions.
v2.40.0
2025-06-04

✨ Improvements

  • We have bumped compile and target versions to 35
  • Analytics: We have reduced number of analytics events captured and sent to our server.
v2.39.0
2025-05-14

✨ Improvements

  • We have added CardFormUIOptions.payButtonAddNewCard to support the “Add New Card” option in the card form flow. Please check our docs for more information
  • Introduced support for the ‘Continue payment flow’ workflow action to configure checkout outcome. See our documentation for more info.

🔧 Fixes

  • Fixed a crash caused by misuse of CheckoutExitHandler.
v2.38.3
2025-04-29

🔧 Fixes

  • In certain scenarios, the SDK may crash if a deep link to a specific screen is triggered after a payment flow was already finalized.
v2.38.2
2025-04-17

✨ 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.
  • Cleanup Enhancements: Added a new cleanClientSessionCache parameter to the cleanup function. You can now control whether to clear the Client Session cache in both Drop-In and Headless integrations.
v2.38.1
2025-04-14

✨ Improvements

  • Klarna: Updated Klarna SDK to 1.1.0
  • Klarna: Improved styling support for Klarna components

⚠️ 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

v2.38.0
2025-03-24

🚀 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, Api Reference and Migration Guides.
v2.37.2
2025-03-21

🔧 Fixes

  • In certain scenarios, the SDK may crash if a deep link to a specific screen is triggered while the app has been forcefully killed by the user.
v2.37.1
2025-03-19

🔧 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.
v2.37.0
2025-03-14

✨ 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

  • 3DS Flow Stability: Fixed crashes that occurred when the 3DS flow failed while the app was running in the background.
v2.36.3
2025-02-11

✨ Improvements

  • We’ve increased the timeout for payment creation and handling for better stability.
v2.36.2
2025-02-10

🔧 Fixes

  • We’ve fixed issues with displaying the partial billing address form in Drop-in. Now, the data is collected and updated correctly. Previously, the SDK returned an error when updating the client session.
v2.36.1
2025-02-05

🔧 Fixes

  • Drop-in: fixed an issue causing crashes when calling Primer.dismiss() after the checkout sheet is already dismissed.
v2.36.0
2025-02-04

✨ Improvements

  • With this version it is possible to opt-in to use API v2.4, which is no longer in Beta. For more information see our SDK reference, Api Reference and Migration Guides. The SDK will continue to use API v2.3 by default.
  • Expanded Language Support: The Android SDK now supports additional languages, 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.
  • Improved Analytics & Reporting: Enhanced tracking and insights for better performance monitoring.
v2.35.0
2024-01-24

🧪 Experimental

  • With this version it is possible to opt-in to test API v2.4(Beta). For more information see our API Reference and Migration Guides. By default, SDK will remain backward compatible and use API v2.3.

 Improvements

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

🔧 Fixes

  • Analytics: fixed serialization and deserialization of analytics events.
v2.34.0
2024-01-20

🚀 New feature

  • 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 card network detection in general. Visit our documentation about co-badged cards in order to learn more.

✨ Improvements

  • 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.
v2.33.1
2024-12-20

✨ Improvements

  • Stability improvements.
v2.33.0
2024-12-19

🚀 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 method to access these native resources seamlessly. If you are using Headless integration, make sure to check our updated documentation about rendering of payment method buttons.

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

  • ACH Vaulting via Stripe: The ACH payment method through Stripe now supports a vaulting flow, 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 for details on enabling this feature.

✨ Improvements

  • PayPal Integration: We’ve improved the PayPal user experience by adopting the recommended approach of using Chrome Tabs, eliminating the need for browser redirections and reducing friction during payment.
  • SDK Resilience: We’ve enhanced SDK resilience to better handle scenarios where Activities are destroyed due to process death, ensuring a smoother recovery experience.

🔧 Fixes

  • 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

v2.32.4
2024-11-26

🔧 Fixes

  • We’ve fixed the issue that caused crashes when retrying a 3DS challenge while another challenge was still in progress.
v2.32.3
2024-11-21

🔧 Fixes

  • We’ve resolved the issue causing crashes when users were deeplinked multiple times from PayPal.
v2.32.2
2024-11-15

🔧 Fixes

  • Disable back buttons when payment is processing
v2.32.1
2024-11-13

🔧 Fixes

  • 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.
v2.32.0
2024-10-28

✨ Improvements

  • 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.
  • Added DividerThemeData that can be used for styling of dividers in Drop-In. Check out our documentation here.
  • You can now use custom colour for input cursors by specifying cursorColor in InputThemeData

⚠️ 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.

v2.31.0
2024-09-20

✨ Improvements

  • Stripe ACH mandate template can now be configured either with a resource key or passing the full mandate text directly.
  • Better Spanish language support for Stripe ACH.
v2.30.0
2024-08-30

✨ Improvements

Stripe ACH is now available

  • We have added support for ACH via Stripe. ACH lets you accept payments from customers with a US bank account.
  • ACH Direct Debit is a reusable, delayed notification payment method. It can take up to 4 business days to receive acknowledgement of success or failure.
  • This release includes: One-off payments, cancel, and refund actions. We aim to add support for recurring payments in the future.
  • You can easily integrate ACH via Stripe into your payment stack with just a few clicks through Primer. Visit the integrations section of the dashboard to learn more or consult the direct integration guide.
v2.29.0
2024-08-26

🚀 New feature

Android SDK now support additional languages:

  • Finnish
  • Korean
  • Lithuanian
  • Catalan
  • Serbian
  • Ukrainian
  • Hebrew
  • Indonesian
v2.28.1
2024-08-08

✨ 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 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.
  • Improved initialization: We have strengthened the Android SDK’s initialization process, ensuring it remains reliable even if users experience connectivity drops. These changes guarantee a smoother experience.
  • We have removed Card Components and related UI from the SDK. Card components were previously deprecated.
  • Improved payment method handling when payments are completed outside of the scope of the SDK session.
v2.27.6
2024-06-25

🔧 Fixes

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).

v2.27.5
2024-06-25

✨ Improvements

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.

v2.27.4
2024-06-12

✨ Improvements

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 here.

v2.27.2
2024-05-07

🔧 Fixes

  • We have improved the PayPal payment method token by providing additional data, including the payer’s first name and last name. For more information, see our SDK reference docs.
v2.27.1
2024-04-24

🔧 Fixes

  • Improved internal dependency resolution for NolPay components when PrimerHeadlessUniversalCheckout is reinitialized.
v2.27.0
2024-04-09

🚀 New feature

  • 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 on how to enable this feature.
  • 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.

CVV recapture for saved cards

Within the Drop-In integration, you now have the ability to recapture CVV for saved cards. When the feature is enabled, users will be directed to a new screen where they can input the CVV related to the saved card. To activate this feature, please refer to our guide for detailed instructions on enabling this enhancement. You can find the guide here.

✨ Improvements

Please note, with this update, compatibility requires the use of the 1.4.2 version of the 3DS SDK (io.primer:3ds-android:1.4.2).

v2.26.1
2024-04-05

✨ Improvements

  • We’ve enhanced our internal analytics infrastructure for tracking network events, empowering us to efficiently gather valuable data on latency and API errors.

🔧 Fixes

  • 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.
  • With the release of version 2.26.0, we’ve improved our Klarna integration. As a result, we identified an issue where error handling was not functioning correctly when utilizing standalone mode for Drop-In integration (Primer.instance.showPaymentMethod(..)). This concern has been promptly addressed and resolved.
  • We’ve enhanced the handling of payment completion for our Nol pay integration, addressing a regression that had occurred.
v2.26.0
2024-03-07

✨ Improvements

  • We have added the ability to select Klarna payment category in Klarna Drop-in
  • Support has been added for CHECKOUT payment intents for Klarna Drop-in
  • We have included support for Klarna Extra Merchant Data
  • In this release we have added the PrimerHeadlessUniversalCheckoutKlarnaManager that provides access to the KlarnaComponent. Using the KlarnaComponent you can seamlessly integrate Klarna, with a custom payment category selection UI. Consult the guide to get a sense of how to seamlessly integrate Klarna.

⚠️ Primer SDK now depends on io.primer:klarna-android:1.0.2 If you are using the Klarna dependency in your code, you are required to update it in align with the supported version. Otherwise, Klarna will result in failure.

v2.25.0
2024-02-15

✨ Improvements

  • We have released support for co-badged cards. You can allow users to select a network if their card is co-badged.
  • We have also improved card network validation significantly for all card networks.
  • In our most recent 3DS SDK update, we’ve addressed a bug affecting 3DS support. Previously, there was an issue where the Issuer or Payment System image wouldn’t consistently display on the Challenge UI. Please note, with this update, compatibility requires the use of the 1.4.1 version of the 3DS SDK (io.primer:3ds-android:1.4.1).

🔧 Fixes

  • We have fixed a bug where the SDK would crash in case of recovering from a process death.
v2.24.0
2024-02-06

✨ 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 3DS SDK (io.primer:3ds-android:1.4.0). 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

  • 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.
v2.23.0
2024-01-30

✨ Improvements

We’ve enhanced our logging capabilities to provide more comprehensive insights. Specifically, when the PrimerLogLevel is set to DEBUG and you are utilizing our default logger implementation, the complete request and response bodies are now logged to the console.

if you opt for a custom PrimerLogger implementation, as a security measure, any Personally Identifiable Information (PII) and Payment Card Industry (PCI) data will be automatically obfuscated.

🔧 Fixes

Fixed bug where order.fees.type was not being correctly deserialized by the SDK.

v2.22.0
2024-01-18

💳 APMs support

iDEAL via Adyen

Adds the PrimerHeadlessUniversalCheckoutComponentWithRedirectManager that provides access to BanksComponent. Using the BanksComponent you can easily:

  • load list of all supported banks
  • submit user’s selection

Consult the guide to get a sense of how to seamlessly integrate iDEAL via Adyen.

v2.21.0
2023-12-15

✨ Improvements

  • In this latest release, our 3DS support has undergone significant enhancements, offering a multitude of improvements. Please note, with this update, compatibility requires the use of the 1.3.0 version of the 3DS SDK (io.primer:3ds-android:1.3.0)
v2.20.0
2023-12-12

💳 APMs support

In this release we have removed Apaya integration.

✨ Improvements

  • We have enhanced our internal analytics capabilities, enabling us to collect a broader range of data, and we have streamlined the process for sending events, ensuring greater efficiency and effectiveness.
  • Keyboard cache is now disabled for sensitive inputs. We highly encourage you to update your SDK to reduce the risk that sensitive user data are leaked to other applications.

Deprecations

PrimerHeadlessUniversalCheckoutCardComponentsManager has been deprecated and will no longer receive ongoing maintenance and will be removed in the future.

v2.19.2
2023-11-14

✨ Improvements

  • We have improved empty phone number validation for Nol Pay
v2.19.1
2023-11-07

💳 APMs support

nol Pay

Added support for new version of the Nol Pay wrapper SDK. Starting from this version, use the 1.0.1 version of Nol Pay wrapper:

implementation io.primer:nol-pay-android:1.0.1

v2.19.0
2023-11-06

💳 APMs support

nol Pay

nol Pay payment method is now considered stable. Please check our integration guide in order to seamlessly integrate nol Pay.

✨ Improvements

We have introduced PrimerLogger that allows you to listen to SDK logs on a specified log level, or provide your own PrimerLogger implementation in order to listen and process Primer SDK logs.

Check out our detailed SDK reference here.

v2.19.0-nolpay.2
2023-10-30

✨ Improvements

  • Phone number validation is significantly improved.
  • We no longer require separate fields for phoneCountryDiallingCode to be passed. Now you can pass full phone number and SDK will parse and validate phone number.
  • We have also fixed the crash that was reported when there were no workflows configured for payment methods.

Consult the guide to get a sense of how to seamlessly integrate nol Pay.

v2.19.0-nolpay.1
2023-10-19

💳 APMs support

nol Pay

Adds the PrimerHeadlessUniversalCheckoutNolPayManager that provides following features:

Consult the guide to get a sense of how to seamlessly integrate nol Pay.

v2.18.0
2023-10-19

✨ Improvements

  • In previous versions we have used Koin for Dependency Injection inside of our SDK. Starting from this release, Koin was removed as transitive dependency.
v2.17.3
2023-09-07

✨ Improvements

  • 3DS will be conditionally triggered in case Google Pay method returns PAN_ONLY token in Headless integration
v2.17.2
2023-08-17

✨ Improvements

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.

⚠️ 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.

v2.17.1
2023-08-09

✨ Improvements

  • Removed requirements for amount in client session when vaulting Paypal
v2.17.0
2023-07-28

⚠️ This version introduces breaking changes for Headless Checkout. A migration guide for this can be found here.

Headless Vault Manager

Add PrimerHeadlessUniversalCheckoutVaultManager.newInstance() which returns an instance of PrimerHeadlessUniversalCheckoutVaultManager. It provides the following features:

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

💳 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.
  • Please update the iPay88 SDK version to 1.0.1

✨ 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

🔧 Fixes

  • Fixed bug where calling submit method of PrimerHeadlessUniversalCheckoutCardComponentsManager would return error due to wrong formatting of expiry date.
  • Apply fix on PayPal vaulting
  • Resolved bug where Drop In UI could be launched multiple times at same time
  • Resolved internal analytics crashes.

🤹 Breaking changes

  • PrimerCardComponentsManagerListener has been renamed to PrimerHeadlessUniversalCheckoutCardComponentsManagerListener.
  • The package name for the PrimerHeadlessUniversalCheckoutNativeUiManager has been changed to io.primer.android.components.manager.nativeUi.
v2.17.0-RC11
2023-07-17
  • Improvements to deeplink handling for Paypal and Redirect based payment methods
v2.17.0-RC10
2023-07-10

Headless Vault Manager

Add PrimerHeadlessUniversalCheckoutVaultManager.newInstance() which returns an instance of PrimerHeadlessUniversalCheckoutVaultManager. It provides the following features:

v2.17.0-RC9
2023-06-13

⚠️ This version introduces breaking changes for Headless Checkout

🔧 Fixes

  • Fixed bug where calling submit method of PrimerHeadlessUniversalCheckoutCardComponentsManager would return error due to wrong formatting of expiry date.

🤹 Breaking changes

PrimerCardComponentsManagerListener has been renamed to PrimerHeadlessUniversalCheckoutCardComponentsManagerListener.

v2.17.0-RC8
2023-06-08

✨ Improvements

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

🔧 Fixes

  • Apply fix on PayPal vaulting
  • Resolved bug where Drop In UI could be launched multiple times at same time
v2.17.0-RC7
2023-05-29

⚠️ This version introduces breaking changes for Headless Checkout

✨ Improvements

  • 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

🔧 Fixes

  • Resolved internal analytics crashes.
v2.17.0-RC6
2023-05-10

⚠️ This version introduces breaking changes for Headless Checkout

✨ Improvements

  • Koin dependency has been bumped to version 3.3.3
v2.17.0-RC5
2023-04-10

⚠️ This version introduces breaking changes for Headless Checkout

✨ Improvements

  • Better interoperability with Java when using Primer SDK
  • Internal SDK improvements

🤹 Breaking changes

The package name for the PrimerHeadlessUniversalCheckoutNativeUiManager has been changed to io.primer.android.components.manager.nativeUi.

v2.17.0-RC4
2023-03-29

⚠️ This version introduces breaking changes for Headless Checkout

✨ Improvements

  • PrimerPaymentMethodAsset now exposes the payment method’s friendly name
v2.17.0-RC3
2023-03-14

⚠️ This version introduces breaking changes for Headless Checkout

✨ Improvements

👌 Alongside the listed features below, we have performed improvements to our codebase.

💳 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

In addition to RC2 release, we have improved couple of things based on your feedback.

We have also added all of the new things we worked on in releases 2.16.5 and 2.16.6.

v2.16.6
2023-03-13

🚀 Improvements

  • Improved handling of payment cancellations for Atome

🔧 Fixes

  • Fixed bug that caused some of the expiry dates not being validated correctly
v2.16.5
2023-03-07

🚀 Improvements

  • Improved internal analytics for 3DS events
  • Improved internal analytics for headless integration
v2.17.0-RC2
2023-02-23

⚠️ This version introduces breaking changes for Headless Checkout

✨ 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 has been updated to reflect these changes. You can also find a Migration Guide 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.

We have also added all of the new things we worked on in releases 2.16.3 and 2.16.4.

v2.16.4
2023-02-09

🚀 Improvements

  • Thai translations have been improved and updated.
v2.16.3
2023-02-07

✨ Improvements

👌 Alongside the listed features below, we have performed improvements to our codebase.

New languages

  • Malay
  • Thai
  • Mandarin Chinese
v2.17.0-RC1
2023-01-23

⚠️ This version introduces breaking changes for Headless Checkout

✨ 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 has been updated to reflect these changes. You can also find a Migration Guide detailing the changes.

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

v2.16.2
2023-01-20

✨ Improvements

👌 Alongside the listed features below, we have performed improvements to our codebase.

🚀 New feature

  • Google Pay payments now support native 3DS.

🔧 Fixes

  • Drop-In can now be intialized with 0 amount.
  • Particular flows that use showPaymentMethod have been improved.
v2.16.1
2022-12-29

🔧 Fixes

  • In this version of the SDK we have introduced a new version of Klarna library. Primer SDK will depend on io.primer:klarna-android:1.0.1 from now on.

    ⚠️ If you are using Klarna dependency in your code, you are required to update it in order to align with the supported version. Otherwise, Klarna will result in failure.

v2.16.0
2022-12-20

✨ Improvements

👌 Alongside the listed features below, we have performed improvements to our codebase.

💳 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 (Beta) and Drop-In.

🚀 New feature

  • 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.

    ⚠️ 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.

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

v2.15.1
2022-11-29

🔧 Fixes

  • This version fixed an issue 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.
v2.15.0
2022-11-17

✨ Improvements

👌 Alongside the listed features below, we have performed improvements to our codebase.

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.1 from now on.

⚠️

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.

🔧 Fixes

  • We have fixed certain redirection issues for payment methods using Buckaroo as PSP
v2.14.1
2022-11-11

🚀 Improvement

  • Aligned the RN_ANDROID on Analytics sdkType
v2.14.0
2022-10-27

✨ Improvements

👌 Alongside the listed features below, we have performed improvements to our codebase.

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.

v2.13.1
2022-10-26

✨ Improvements

👌 Alongside the listed features below, we have performed improvements to our codebase.

💳 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 🙌

🔧 Fixes

  • Fix initialization for Universal Checkout.

This fix solves the issue affecting version 2.13.0. We recommend updating to this 2.13.1 version.

v2.12.1
2022-10-10

🔧 Fixes

Fixed raw card data formatting in some scenarios.

v2.12.0
2022-10-06

✨ Improvements

👌 Alongside the listed features below, we have performed improvements to our codebase.

💳 APMs support

Bancontact via Adyen support

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.

v2.10.1
2022-09-30

🔧 Fixes

Fixed crashes on payment method screens in case of process death.

v2.10.0
2022-09-23

✨ Improvements

👌 Alongside the listed features below, we have performed improvements to our codebase.

In this version we have improved performances of our Headless Universal Checkout.

🔧 Fixes

Fixed 3DS data mapping that was causing it to fail.

v2.9.1
2022-09-17

✨ Improvements

👌 Alongside the listed features below, we have performed improvements to our codebase.

💳 APMs support

In this version of the SDK we added the support for PromptPay via Omise 🙌.

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

For PromptPay specifically, the object will be PromptPayCheckoutAdditionalInfo

fun onAdditionalInfoReceived(info: PrimerCheckoutAdditionalInfo) = Unit

🚀 Improvements

We have fixed a crash on billing address country selector screen.

v2.8.1
2022-09-13

🚀 Improvements

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

v2.8.0
2022-09-08

🚀 Improvements

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

v2.7.0
2022-09-01

✨ Improvements

👌 Alongside the listed features below, we have performed improvements to our codebase.

This release changes the way that Klarna is integrated, and switches on Klarna’s native Android SDK.

💳 APMs support

Drop-in

  • Added support for Multibanco via Adyen.

Headless

  • Added support for Multibanco via Adyen.
  • Added support for MbWay via Adyen.

🚀 Improvements

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

v1.16.0
2022-09-01

✨ Improvements

👌 Alongside the listed features below, we have performed improvements to our codebase.

This release changes the way that Klarna is integrated, and switches on Klarna’s native Android SDK.

v2.6.0
2022-08-24

✨ Improvements

👌 Alongside the listed features below, we have performed improvements to our codebase.

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 👇

Screen Recording 2022-08-23 at 18.56.53.gif

2.5.0
2022-08-16

✨ Improvements

👌 Alongside the listed features below, we have performed improvements to our codebase.

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 🙌!

v2.4.0
2022-08-10

✨ Improvements

👌 Alongside the listed features below, we have performed improvements to our codebase.

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.


As everything game-changing, it comes with a cost. To be able to support this release, we have made some changes that requires some work in case you are already utilizing the SDK.

🚨 **Migration info🚨

Payment methods' types in version prior to this one (<2.4.0) were represented by a enum PrimerPaymentMethodType` .

In this version, we are no longer exposing the enum , and return a plain String instead.

v2.3.0
2022-07-29

✨ Improvements

👌 Alongside the listed features below, we have performed improvements to our codebase.

💳 APMs support

Fast and PromptPay via Rapyd

Payment Prompts

v2.2.1
2022-07-15

🚀 Improvements

We have added some small improvements to the SDK.

v2.2.0
2022-07-13

✨ Improvements

👌 Alongside the listed features below, we have performed improvements to our codebase.

💳 APMs support

Grab Pay, Poli and GCash via Rapyd

Payment Prompts

Billing address support 🧾

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

Payment Prompts

v2.1.0
2022-07-07

✨ Improvements

The version 2 of the Headless Universal Checkout is out!

💡 Take a look at the migration guide for updating your integration to version 2.

✨ 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 about the changes we made.

v2.0.1
2022-06-20

💳 Dummy Payment Methods

Universal Checkout | Payment Methods

We want you to start creating payments with Universal Checkout as quickly as possible, so we’ve added some dummy payment methods - no credentials required 😎

The following payment methods have been added:

  • PayPal via Primer
  • Sofort via Primer
  • Klarna via Primer

These payment methods are purely for demonstrative purposes and aren’t tied to any payment method specific environment.

You can now create payments in different states (authorized, declined, failed) and see them in the dashboard’s Payments page.

No need to create sandbox accounts with different processors/payment methods, the dashboard and all its great features can now be used without any setup.

💡 Primer’s Dummy Payment Methods will come preconfigured with all new sandbox accounts.

v2.0.0
2022-06-08

✨ Improvements

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

📚 Take a look at the migration guide for updating your integration to version 2.

✨ 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 CheckoutEvent.TokenizationSuccess and CheckoutEvent.ResumeSuccess callbacks:

Kotiln
private val listener = object: CheckoutEventListener {

   override fun onCheckoutEvent(e: CheckoutEvent) {
      when(e) {
         is CheckoutEvent.TokenizationSuccess - > {
            // Create a payment
            // If payment fails: show error message
            // If payment succeeds: show a success message
            // If payment has a required action: return the new client token
         }
         is CheckoutEvent.ResumeSuccess - > {
            // Resume the payment
            // If payment fails: show error message
            // If payment succeeds: show a success message
            // If payment has a required action: return the new client token
         }
      }
   }
}

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, 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 💆

🔨 Deprecation

The Android SDK’s move to version 2 has brought a lot of exciting changes and along with these changes, some deprecations.

📚 Please take a look at our Android SDK version 2 migration guide for a full list of the deprecations made.

v1.15.0
2022-05-23

New payment methods

  • Added support for Coinbase
  • Added support for OpenNode
  • Added support for 2c2p
v1.14.0
2022-05-11
  • We have added support for 3DS processor
v1.12.1
2022-04-04
  • Added support for the RN bridge
v1.12.0
2022-03-29

New payment methods

  • Added support for Blik

✨ Improvements

  • Dark mode support
  • Fixes in analytics
  • Various performance fixes
v1.11.1
2022-03-17

Improvements the Headless Universal Checkout - Beta for cards and APMs (except for Blik, Adyen Dot Pay and Adyen iDeal)

v1.11.0
2022-03-16

New payment methods

  • Added support for P24 via Mollie
  • Added support for Giropay via Mollie
  • Added support for EPS via Mollie
  • Added support for P24 via PayNL
  • Added support for EPS via PayNL

✨ Improvements

  • Implements the Headless Universal Checkout - Beta for cards and APMs (except for Blik, Adyen Dot Pay and Adyen iDeal)
v1.10.0
2022-03-04

✨ Improvements

  • Implements the Headless Universal Checkout - Beta for cards and APMs (except for Blik, Adyen Dot Pay and Adyen iDeal
v1.9.2
2022-02-10

✨ Improvements

  • Improvements to amount calculation
v1.9.1
2022-02-02

✨ Improvements

  • Improvements to payment method redirections
v1.9.0
2022-02-01

New languages

  • Danish
  • German
  • Greek
  • Spanish
  • French
  • Italian
  • Norwegian
  • Dutch
  • Polish
  • Portuguese
  • Swedish
  • Turkish

✨ Improvements

  • Improvements to payment method redirections
v1.8.0
2022-01-27

New payment methods

  • Added support for Xfers payment method.

✨ Improvements

  • Improvements to Paypal tokenization flow
  • Improvements to payment method redirections
  • Added autofocus feature in card form
  • isVaulted flag added to PaymentMethodToken
  • Performance improvements
v1.7.0
2022-01-11

✨ Improvements

  • Improvements to tokenization flow
  • Improvements to surcharge UI
  • Support for capturing postal code in card form and observing using client session actions
  • Support for hiding cardholder name in card form
v1.6.0
2021-12-22

New payment methods

  • Added support for Atome payment method in beta
v1.5.2
2021-12-13

Removed deprecated fetchSavedPaymentInstruments and getSavedPaymentMethods methods

v1.5.1
2021-12-08
  • Added support for easier integration with Java
  • Better support for Android S
  • Minor UI improvements
  • Surcharge feature now stable
v1.5.0
2021-12-02

✨ Improvements

  • Adds beta version of surcharging
v1.4.0
2021-11-30

✨ Improvements

  • New payment methods: iDEAL, Giropay, Sofort, EPS and Bancontact via Buckaroo
v1.3.0
2021-11-24

✨ Improvements

  • Added further support for SDK customisation when generating client session.

    Settings Migration Guide

  • New payment methods: Bancontact & iDEAL via Mollie and Giropay & Payconiq via PayNL

  • Added loading payment methods screens

v1.2.0
2021-11-17

✨ Improvements

  • Added Primer.cleanup method. *This method should be called when disposing the listener in order to free Primer SDK resource.*
  • Added Adyen payment methods (Vipps, Mobilepay, iDEAL, Dotpay)
  • Additional improvements for PayPal error handling
v1.1.2
2021-11-12

✨ Improvements

  • Updated to 3DS 1.1.0 version
  • Stability improvements
v1.1.1
2021-11-04

✨ Improvements

Added further stability improvements for 3DS flow

v1.1.0
2021-11-03

✨ Improvements

  • Improved 3DS handling (VAULT/CHECKOUT)
  • Deprecated PrimerSettings.order and PrimerSettings.customer in favour of configuration set through client session creation
  • Added Adyen AMPs (Giropay, Twint, Trustly, Sofort, Alipay)
v1.0.1
2021-10-12

✨ Improvements

  • fetchSavedPaymentInstruments method has been deprecated
  • Improved card form layout and default theming.
  • Enabled 3DS testing in all environments.
v1.0.0
2021-09-28

✨ Improvements

  • Complete redesign of PrimerTheme. PrimerTheme.create() is now deprecated. Use PrimerTheme.build() or resource files to create custom themes.
  • Primer singleton object has been redesigned with a new initialisation flow. Please refer to the quick start guide for further info. Primer.initialize() is now deprecated.
v1.0.0-beta.32
2021-10-12

✨ Improvements

  • Improved Apaya redirect url schema logic.
v1.0.0-beta.31
2021-09-22

✨ Improvements

  • Added support to pre-fill Apaya phone number. Please see documentation for integration steps.
v1.0.0-beta.30
2021-09-06

✨ Improvements

  • Added support for Apaya payment method. Please see documentation for integration steps.
v1.0.0-beta.29
2021-08-20

✨ Improvements

  • Added beta support for 3DS dependency.
  • Stability improvements & networking fixes.
v1.0.0-beta.28
2021-08-20

(ignore)

v1.0.0-beta.27
2021-07-24

✨ Improvements

  • Fixes issue with card number validation for American Express.
v1.0.0-beta.26
2021-06-29

✨ Improvements

  • Issue when pressing Android back button after displaying payment flow with doNotShowUi = true addressed.
  • Improvements to Klarna payment flow error handling & stability.
  • Optional completionHandler added to TokenizationSuccess event. Call this to complete flow with error/success screen after completing payment action.
v1.0.0-beta.25
2021-06-29

(ignore)

v1.0.0-beta.24
2021-06-21

✨ Improvements

  • The Klarna flow has been updated so that all user cancellations are captured by the event listener. Refer to CheckoutEvent.Exit & its CheckoutExitReason parameter to listen to the following events: DISMISSED_BY_USER or ERROR (error thrown by Klarna).
  • You can now pass a flag to clear all listeners when dismissing the Primer view with UniversalCheckout.dismiss(clearListeners = true). This is the recommended way to complete the session before navigating to a different activity/fragment.
1.0.0-beta.23
2021-06-14

✨ Improvements

  • Bug fixes for PayPal flows.
  • Option to pass in flag clearAllListeners when calling showVault() / showCheckout(). Set this flag as true, if you need to call UniversalCheckout.initialise() more than once.
  • Fixes bug where main universal checkout would display checkout options incorrectly.
v1.0.0-beta.22
2021-05-31

✨ Improvements

✨ Improvements

  • Running the SDK in release mode with app shrinking minifyEnabled = true caused the app to crash. This has been addressed so that the SDK will run with all forms of app shrinking.
  • The Klarna web view flow for Sweden is now configured to automatically redirect to the Mobile BankID app when using direct debit.
  • When creating in the Klarna object it is now possible to set a webViewTitle for the Klarna web view’s toolbar.
  • Improvements to error handling & SDK stability.
v1.0.0-beta.21
2021-05-31

(ignore)

v1.0.0-beta.20
2021-05-27

✨ Improvements

  • Improvements to app links and schemes with new webBrowserRedirectScheme param to pass in custom app link scheme when calling the SDK with showVault()/showCheckout().
  • New option of preferWebview for showing Klarna checkout flow in an integrated web view instead of a separate browser window.
  • new option to call UniversalCheckout.showError() when wishing to display the default SDK error view.
  • The locale is now optionally set in UniversalCheckout.initialize() and is used solely to determine language and localisation.
  • A countryCode parameter has been added to showVault()/showCheckout(). This is used to determine location for different payment sessions (e.g. Klarna). If a country code has already been passed in when creating a Primer client token on the backend this SDK’s countryCode value is ignored.
  • Minor bug fixes & improvements to stability and UX.
v1.0.0-beta.19
2021-05-18

✨ Improvements

  • Major improvements to UI for checkout view and managing saved payments.
  • 1-click checkout enabled in default (universal) checkout view.
  • Improved success screens with some customisability.
  • Delete/select saved payment methods enhanced.
  • Overall improvements to stability and UX.
  • No updates to Klarna & direct debit flows.
v1.0.0-beta.16-18
2021-05-10

n/a (testing Maven Central)

  • You can easily integrate ACH via Stripe into your payment stack with just a few clicks through Primer. Visit the integrations section of the dashboard to learn more or consult the direct integration guide.