> 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/nfc-wallet-sdk-android/get-started/configuration/2.-onboarding.md).

# 2. Onboarding

## Provide onboarding data

Before you start integrating the NFC Wallet SDK, exchange a set of application identifiers, keys, and endpoints with the **Thales delivery team**.

## Send required data to the Thales delivery team

Provide the following information for your **digital wallet application**.

<table><thead><tr><th width="199">Parameter</th><th width="141">Format</th><th>Description</th></tr></thead><tbody><tr><td><p>PreProd</p><p>FCM service account</p></td><td>JSON file</td><td>Enables sending push notifications to your digital wallet application in the <strong>PreProd</strong> environment.</td></tr><tr><td><p>Production</p><p>FCM service account</p></td><td>JSON file</td><td>Enables sending push notifications to your digital wallet application in the <strong>Production</strong> environment.</td></tr><tr><td><p>PreProd</p><p>HMS Push Kit configuration</p></td><td>See below</td><td><strong>Optional</strong><br>Enables sending push notifications to your digital wallet application running on Huawei devices in the <strong>PreProd</strong> environment.</td></tr><tr><td>Production<br>HMS Push Kit configuration</td><td>See below</td><td><strong>Optional</strong><br>Enables sending push notifications to your digital wallet application running on Huawei devices in the <strong>Production</strong> environment.</td></tr><tr><td>Application binding key</td><td>Hexadecimal string</td><td>Thales uses this key to bind wallet enrollment requests to your <strong>digital wallet application</strong>.</td></tr></tbody></table>

### Get your application data

#### Get FCM service account

For details on an FCM service account, see the [Firebase Console](https://console.firebase.google.com/).

Then contact the **Thales delivery team** to complete the push notification setup.

{% hint style="info" %}
FCM can deliver push notifications to the same digital wallet application from multiple senders.
{% endhint %}

#### Get HMS Push Kit configuration <a href="#fetching-hms-push-kit-configuration" id="fetching-hms-push-kit-configuration"></a>

For details on HMS Push Kit, see [HMS Push Kit](https://developer.huawei.com/consumer/en/doc/HMSCore-Guides/service-introduction-0000001050040060) and [HMS Authentication](https://developer.huawei.com/consumer/en/doc/HMSCore-Guides/open-platform-0000001053709196).

Then contact the **Thales delivery team** to complete the push notification setup.

The solution supports two authentication methods:

* OAuth 2.0 authentication
* API key authentication

#### Get application binding key <a href="#fetching-the-app-signer-public-key-sha-256-digest" id="fetching-the-app-signer-public-key-sha-256-digest"></a>

The application binding key is computed from the application signing certificate.

Thales uses this key to bind wallet enrollment requests to your **digital wallet application**.

Only registered digital wallet applications can enroll wallets. See [Enroll wallet](https://docs.payments.thalescloud.io/M18oJyCDXLd5bElIV1dz/nfc-wallet-sdk-ios-7.3/implement-nfc-wallet/enroll-wallet).

For details on how to compute the application binding key, see [Compute the application binding key](/nfc-wallet-sdk-android/help/knowledge-base/compute-the-application-binding-key.md).

{% hint style="info" %}
You can specify multiple values for different signing configurations used in your application's build and deployment process.
{% endhint %}

{% hint style="warning" %}

## Signing key rotation / Multiple signers <a href="#receive-this-from-the-thales-delivery-team" id="receive-this-from-the-thales-delivery-team"></a>

NFC Wallet supports **signing key rotation** and **mulipe signers**

To avoid any issue:

* Provide oldest signing key&#x20;
* Ensure that the oldest signing key is provided as the first signer.

In **signing key rotation** oldest signing key provided in the proof-of-rotation struct is used as the first signer.
{% endhint %}

## Receive this from the Thales delivery team <a href="#receive-this-from-the-thales-delivery-team" id="receive-this-from-the-thales-delivery-team"></a>

Configure the following values in your **digital wallet application** and, if applicable, your **backend**.

| Parameter                                  | Description                                                                                                       | Format                                         |
| ------------------------------------------ | ----------------------------------------------------------------------------------------------------------------- | ---------------------------------------------- |
| PreProd source IP addresses                | IP addresses to allowlist in FCM so the Thales backend can send push notifications to the PreProd environment.    | Comma-separated list of IPv4 or IPv6 addresses |
| Production source IP addresses             | IP addresses to allowlist in FCM so the Thales backend can send push notifications to the Production environment. | Comma-separated list of IPv4 or IPv6 addresses |
| PreProd URLs                               | Endpoints to connect to the Thales backend in the PreProd environment.                                            | String                                         |
| Production URLs                            | Endpoints to connect to the Thales backend in the Production environment.                                         | String                                         |
| PreProd card information encryption key    | Key to secure transmission of card information (PAN, CSC, and expiration date) in the PreProd environment.        | Hexadecimal string or PEM certificate          |
| Production card information encryption key | Key to secure transmission of card information (PAN, CSC, and expiration date) in the Production environment.     | Hexadecimal string or PEM certificate          |


---

# 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/nfc-wallet-sdk-android/get-started/configuration/2.-onboarding.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.
