> 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/3d-secure/es/integrar-el-sdk-de-d1/comenzar/2.-incorporacion/incorporar-dominios-web-de-3ds.md).

# Incorporar dominios web de 3DS

{% hint style="info" %}

* D1 SDK 4.0.0 and earlier: domain onboarding is required only for the platform authenticator.
* D1 SDK 4.1.0 and later: domain onboarding is also required for the biometric authenticator (app-domain binding).
  {% endhint %}

Domain onboarding creates a secure association between a web domain and your issuer application.

This association prevents unauthorized issuer applications from using your 3DS configuration.

Share the web domain with the Thales delivery team during D1 onboarding.

### Platform authenticator

#### Android

1. Host `assetlinks.json` at:

   `https://<your-domain>/.well-known/assetlinks.json`
2. Declare your issuer application association:
   * `package_name`: your Android application ID (package name).
   * `sha256_cert_fingerprints`: SHA-256 fingerprints of your signing certificate.

Generate the SHA-256 fingerprint using Java Keytool:

```shell
keytool -list -v -keystore my-release-key.keystore
```

{% hint style="info" %}
You can declare multiple fingerprints on the issuer application.&#x20;
{% endhint %}

Example `assetlinks.json`:

{% code lineNumbers="true" %}

```json
[
  {
    "relation": [
      "delegate_permission/common.handle_all_urls",
      "delegate_permission/common.get_login_creds"
    ],
    "target": {
      "namespace": "android_app",
      "package_name": "com.example.mybank",
      "sha256_cert_fingerprints": [
        "A4:D8:8F:E6:22:B2:43:C2:70:80:63:9A:28:0D:73:18:F5:0F:24:84:BE:D0:7D:71:28:24:1C:7C:8A:06:2D:C9"
      ]
    }
  }
]
```

{% endcode %}

Useful links:

* [Verify Android App Links](https://developer.android.com/training/app-links/verify-android-applinks)
* [Statement List Generator and Tester](https://developers.google.com/digital-asset-links/tools/generator)
* [Digital Asset Links guides](https://developers.google.com/digital-asset-links/v1/getting-started)

#### iOS

Perform the following steps to onboard your domain:

1. Host `apple-app-site-association` at:

   `https://<your-domain>/.well-known/apple-app-site-association`
2. Add the `webcredentials` service:

```json
{
  "webcredentials": {
    "apps": ["ABCDE.com.company_name.app.demo"]
  }
}
```

{% hint style="info" %}

* The expected value is an `appID` in the `<Application Identifier Prefix>.<Bundle Identifier>` format.
* This file may contain information pertaining to other services as well.
  {% endhint %}

3. Enable the [Associated Domains entitlement](https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_developer_associated-domains) in your issuer application:

<figure><img src="/spaces/62lLFDcmLCeqqwmy4Fee/files/61x0n6EZK4R7sSmwdPRO" alt=""><figcaption></figcaption></figure>

Useful links:

* [Supporting associated domains](https://developer.apple.com/documentation/xcode/supporting-associated-domains)
* [Associated domains entitlement](https://developer.apple.com/documentation/bundleresources/entitlements/com_apple_developer_associated-domains)

### Biometric authenticator

{% hint style="info" %}
This mandatory feature applies to D1 SDK 4.1.0 and later.
{% endhint %}

To associate a website with your app, you have to host the associated domain file on your website at at `https://<your-domain>/.well-known/idcloud-site-links.`

#### Example `idcloud-site-links`

This file format is similar to `assetlinks.json` (Android) and `apple-app-site-association` (iOS) files defined by Google and Apple respectively.

{% code overflow="wrap" lineNumbers="true" %}

```json
{
  "android": {
    "apps": [
      {
        "package_name": "com.example.mybank",
        "sha256_cert_fingerprints": [
          "A4:D8:8F:E6:22:B2:43:C2:70:80:63:9A:28:0D:73:18:F5:0F:24:84:BE:D0:7D:71:28:24:1C:7C:8A:06:2D:C9"
        ]
      }
    ]
  },
  "ios": {
    "webcredentials": {
      "apps": ["ABCDE.com.company_name.app.demo"]
    }
  }
}
```

{% endcode %}

{% hint style="info" %}

* Android: `package_name` must match your `applicationId` in `build.gradle`.
* iOS: use the `appID` in `<Application Identifier Prefix>.<Bundle Identifier>` format.
  {% endhint %}


---

# 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, and the optional `goal` query parameter:

```
GET https://docs.payments.thalescloud.io/3d-secure/es/integrar-el-sdk-de-d1/comenzar/2.-incorporacion/incorporar-dominios-web-de-3ds.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
