> 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/classic-push-provisioning/help/faq.md).

# FAQ

This section explains common issues you might encounter during integration.

### Generic <a href="#generic" id="generic"></a>

#### What is OPC? <a href="#what-is-opc" id="what-is-opc"></a>

The Opaque Payment Card (OPC) is an encrypted object defined by the issuer. The OPC specification varies by payment network.

* Mastercard: [Mastercard Issuer Tokenization Reference API](https://developer.mastercard.com/mdes-pre-digitization/documentation/use_case/issuer-tokenization/#reference-api-implementation).
* Visa: [Visa In App Provisioning Reference API](https://developer.visa.com/capabilities/visa-in-app-provisioning/reference).

#### Card enrollment <a href="#card-enrollment" id="card-enrollment"></a>

Q: If a card is enrolled with 15 online merchants, do we receive information for all created tokens, or only for known merchants such as Netflix?

A: The D1 backend forwards the response from the payment network. It returns all known tokens, regardless of merchant or device.

See [View: get token list](/classic-push-provisioning/use-cases/view-and-control/view-get-token-list.md).

#### Apple Pay tokens <a href="#apple-pay-tokens" id="apple-pay-tokens"></a>

Q: Do we receive Apple Pay token information and manage it from Android devices?

A: From the D1 backend perspective, `getTokenList` is device-independent. It returns all tokens, regardless of device.

The issuer application can filter tokens based on your use case.

#### Device type <a href="#device-type" id="device-type"></a>

Q: Are the device type and name only provided for device-based tokens?

A: Device ID, type, and name are only available for MDES tokens. They might not be provided, depending on the MDES response.

### Android <a href="#android" id="android"></a>

#### How do I use the Push Provisioning SDK AAR in an Android library project? <a href="#how-to-use-push-provisioning-sdk-aar-for-android-library-project" id="how-to-use-push-provisioning-sdk-aar-for-android-library-project"></a>

If you are developing an Android library, you must merge the Push Provisioning SDK AAR. Merge it into your AAR file.

There are two ways to merge the AAR:

* If you use DexGuard, it can merge the AAR file. See the DexGuard [documentation guide](https://customers.guardsquare.com/en/manual/dexguard/stable/setup/gradle-plugin.html#fat-aar-support).
* Use a third-party framework such as [fat-aar](https://github.com/kezong/fat-aar-android).

#### What is my customer application ID? <a href="#customer_applicationid" id="customer_applicationid"></a>

You receive the customer application ID when Google grants access to the Push Provisioning API. Access is only granted to participating financial institutions.

The issuer application must be allowlisted before it can call the API. This applies to Production apps and pre-release apps (for example, alpha or beta builds).

To request access to Google’s Push Provisioning API, follow the steps in [Push Provisioning API Access](https://developers.google.com/pay/issuers/apis/push-provisioning/android/allowlist?hl=en\&authuser=1). You can include multiple app packages in one request if they share the same SHA-256 fingerprint.

#### How do I enable a provisioned card on a Wear OS device? <a href="#how-to-do-enable-provisioned-card-on-android-wear-device" id="how-to-do-enable-provisioned-card-on-android-wear-device"></a>

The Push Provisioning API is not supported on Wear OS devices. The only supported option is manual provisioning via Google Pay.

See this [documentation](https://support.google.com/wearos/answer/7643998?hl=en) for steps to use Google Pay on Wear OS devices.

### iOS <a href="#ios" id="ios"></a>

#### What is the PrimaryAccountIdentifier value? <a href="#what-is-the-primaryaccountidentifier-value" id="what-is-the-primaryaccountidentifier-value"></a>

This is a unique identifier for a card provisioned to the wallet application. You can use `primaryAccountIdentifier` to check the card status with the `getCardDigitizationResult` API.

See [Primary Account Identifier](https://developer.apple.com/documentation/passkit/pkaddpaymentpassrequestconfiguration/1615936-primaryaccountidentifier) in Apple’s documentation.

#### What is a nonce value? <a href="#what-is-a-nonce-value" id="what-is-a-nonce-value"></a>

This is a random value generated by the issuer application or the issuer backend.

Provide it to the Push Provisioning SDK as a condensed UUID v4. Condensed UUID v4 removes all dashes from the UUID.

For example, **123e4567-e89b-12d3-a456-426614174000** becomes **123e4567e89b12d3a456426614174000**.


---

# 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/classic-push-provisioning/help/faq.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.
