> For the complete documentation index, see [llms.txt](https://docs.payments.thalescloud.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.payments.thalescloud.io/release-notes/sdk/july-2025/d1-sdk-v4.1.0.md).

# D1 SDK v4.1.0

{% hint style="warning" %}
**MANDATORY UPDATE**
{% endhint %}

{% tabs %}
{% tab title="Android" %}

#### Supported Platforms & Processor Architectures <a href="#supported-platforms--processor-architectures" id="supported-platforms--processor-architectures"></a>

* Android 8.0.0 and later.
* Processor architectures: armeabi-v7a, arm64-v8a, x86, x86\_64.

#### General <a href="#bug-fixes" id="bug-fixes"></a>

**Improvements**

* Compliance with [16 KB Google Play compatibility requirement](https://developer.android.com/guide/practices/page-sizes), which will be effective starting 1st November 2025.
* Security enhancements for D1 SDK.

#### Push Provisioning <a href="#bug-fixes" id="bug-fixes"></a>

**New Features**

* New Amex scheme support for Push to Google Pay, Push to Samsung Pay.

#### 3D Secure

**New Features**

* Supports app domain binding on biometric authenticators.
* Supports App Switching.

**Bug Fixes**

* Fixed the 3DS authenticator for the [Platform](https://thalesgroup.github.io/d1sdk-docs/d1-sdk/latest/android/com/thalesgroup/gemalto/d1/authn/AuthnType.html#PLATFORM) type which was not working on Android 8 during re-enrollment.

#### NFC Wallet

**New features**

* \- Added the new APIs, `D1PayConfigParams.setTransactionRetryLimit` and `D1PayConfigParams.setTransactionRetryTimeout`, for D1 Pay - Payment setting. The new `D1PayConfigParams.setTransactionRetryLimit` API is used to configure the maximum number of retries for a contactless payment transaction performed by a POS terminal if the connection is interrupted. The `D1PayConfigParams.setTransactionRetryTimeout` API is used to configure the time (in seconds) to wait for a transaction retry by a POS terminal before returning an error.\
  \- Supports Card Digitization without push notification.

  > <i class="fa-info-circle">:info-circle:</i>
  >
  > As the digitization process no longer requires a push notification, the following APIs are no longer necessary and are deprecated:
  >
  > * [setPollingIntervalForDigitization](https://thalesgroup.github.io/d1sdk-docs/d1-sdk/latest/android/com/thalesgroup/gemalto/d1/d1pay/D1PayConfigParams.html#setPollingIntervalForDigitization\(int\))
  > * [setPollingEndTimeForDigitization](https://thalesgroup.github.io/d1sdk-docs/d1-sdk/latest/android/com/thalesgroup/gemalto/d1/d1pay/D1PayConfigParams.html#setPollingEndTimeForDigitization\(int\))
  >
  > Thales integrator relies on the `onSuccess` callback of [AddDigitalCard()](https://thalesgroup.github.io/d1sdk-docs/d1-sdk/latest/android/com/thalesgroup/gemalto/d1/d1pay/D1PayWallet.html#addDigitalCard\(java.lang.String,com.thalesgroup.gemalto.d1.D1Task.Callback\)) API to complete the digitization process.
* Supports [16 KB page sizes](https://thales-dis-dbp.stoplight.io/docs/d1-caas/1.development/sdk-configuration/1.binary/android.md#support-16-kb-page-sizes) to comply with Google Play compatibility requirement. For application to comply with this requirement, it is required to update JNA dependency to version 5.17 or later, and AGP version to 8.5.1 or later.
* The third-party Google Tap and Pay library that was previously integrated within D1 SDK has been obfuscated. As a result, integrators can no longer access the Tap and Pay library directly through D1 SDK. If your application requires access to the Tap and Pay API, you will need to include your own copy of the library within your implementation.

<br>
{% endtab %}

{% tab title="iOS" %}

#### Supported Platforms & Processor Architectures <a href="#supported-platforms--processor-architectures" id="supported-platforms--processor-architectures"></a>

* iOS 15 and later.
* Processor architectures: arm64, x86\_64.

#### General <a href="#bug-fixes" id="bug-fixes"></a>

**Improvements**

* Compatibility with iOS 26, which is expected to be released in mid-September 2025.
* Security enhancements for D1 SDK.

**Bug Fixes**

* Removed bitcode support.

#### Push Provisioning <a href="#bug-fixes" id="bug-fixes"></a>

**New Features**

* New Amex scheme support for Push to Apple Pay.
* Multiple accounts are supported on a single device using Wallet Extensions. This feature is managed by a new parameter, `last4`, for the initialisation of [ConfigParam.CardParams](https://thalesgroup.github.io/d1sdk-docs/d1-sdk/latest/ios/Structs/ConfigParams.html#/s:2D112ConfigParamsV015walletExtensionB004cardC4List10appGroupIDACSayAC04CardC0VG_SStFZ) .\
  If the [`last4` parameter is provided](https://thales-dis-dbp.stoplight.io/docs/d1-caas/650b8d9621fa0-apple-wallet-extension#note-1), it will be used to check whether the card is already in Apple Wallet by comparing it with the last four digits of the cards that are already in Apple Wallet. This ensures that the card’s current status can be shown accurately in the Wallet extension.
* Push to Apple Pay now supports co-badged cards for PagoBANCOMAT scheme.

**Bug Fixes**

Fixed the crash on iOS 26 Beta during digitization.

#### 3D Secure

**New Features**

* Supports app domain binding on biometric authenticators.
* Supports App Switching.
  {% endtab %}
  {% endtabs %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.payments.thalescloud.io/release-notes/sdk/july-2025/d1-sdk-v4.1.0.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
