> 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-ios/es/implement-nfc-wallet/tokenize-a-card/check-card-eligibility.md).

# Comprobar la elegibilidad de la tarjeta

## Descripción general

La elegibilidad de la tarjeta es el primer paso en **Tokenización**. Confirma si un PAN puede tokenizarse en la aplicación de billetera digital.

NFC Wallet verifica la elegibilidad con el Proveedor de Servicios de Tokens (TSP).

Si la tarjeta es elegible, NFC Wallet devuelve los términos y condiciones (T\&C) del TSP. Muestra los T\&C al usuario final y recopila su aceptación antes de la digitalización.

{% hint style="info" %}
Según su programa, **T\&C** puede que no sea necesario.
{% endhint %}

## Integración del SDK

Usar `CardDigitizationService.checkEligibility` para confirmar **Tokenización** la elegibilidad. Si es elegible, el backend de NFC Wallet devuelve los Términos y Condiciones (T\&C) aplicables.

Para realizar la verificación de elegibilidad, proporciona `EligibilityData` y cualquiera de `InstrumentData` o `pushSessionID`.

`EligibilityData` incluye:

* `idioma`: El idioma preferido para la operación (por ejemplo, `en`).
* `método de entrada`: Cómo se recopilaron los datos de la tarjeta (por ejemplo, aplicación del emisor o entrada manual).

Luego proporciona cualquiera de los siguientes:

* `InstrumentData`: Construido a partir de cualquiera de `encryptedCardData` o un `issuerPushReceipt`. Trata los datos de la tarjeta como confidenciales y envíalos siempre cifrados.
* `pushSessionID`: Un identificador único generado por el backend de NFC Wallet. El backend del emisor lo recibe durante la inscripción de la tarjeta mediante push.

### Verificar la elegibilidad con credenciales de la tarjeta

En la mayoría de los casos, verifica la elegibilidad usando las credenciales de la tarjeta. Proporciona el PAN y la fecha de vencimiento. Opcionalmente, proporciona el código de seguridad de la tarjeta (CSC).

Envía las credenciales de la tarjeta en forma cifrada.

En el flujo estándar, el backend del emisor proporciona las credenciales de la tarjeta. La aplicación de billetera digital las usa para las verificaciones de elegibilidad.

El siguiente fragmento de código muestra cómo verificar la elegibilidad usando `encryptedCardData`:

```swift
func triggerCheckEligibility(_ pubKey: String, _ encryptedData: Data) async throws {
    do {
        let encryptedDataComponent = CardDigitizationService.InstrumentDataComponents(encryptedCardData: encryptedData, publicKeyIdentifier: pubKey)
        let instrumentData = encryptedDataComponent.instrumentData()
        // Construye los datos de elegibilidad
        let eligibilityDataBuilder = CardDigitizationService.EligibilityDataComponents(inputMethod: .bankApp, language: "en")
        let eligibilityData = eligibilityDataBuilder.eligibilityData()
        let cardDigitizationService = CardDigitizationService()
        let acceptanceData = try await cardDigitizationService.checkEligibility(eligibilityData, instrumentData: instrumentData)
        let tnc = acceptanceData.termsAndConditions
        // Almacena los T&C, notifica a la UI y espera una respuesta.
    } catch let error as CardDigitizationService.Error {
        // Maneja el error.
    }
}
```

### Verificar la elegibilidad con un comprobante push del emisor

El emisor puede iniciar la inscripción de la tarjeta desde la aplicación del emisor. En este flujo, la aplicación del emisor envía un comprobante de push del emisor. La aplicación de billetera digital lo usa para construir `InstrumentData`.

{% hint style="info" %}
La inscripción de la tarjeta mediante un **comprobante de push del emisor** solo es compatible con Mastercard. NFC Wallet admite la especificación MDES Token Connect.
{% endhint %}

El siguiente fragmento de código muestra cómo construir `InstrumentData` usando un comprobante de push del emisor. Luego llama a `checkEligibility` de la misma manera que cuando se usan credenciales de la tarjeta.

```swift
func triggerCheckEligibility(_ payload: String, _ scheme: DigitalCard.Scheme) async throws {
    do {
        let pushReceiptDataComponent = CardDigitizationService.InstrumentDataComponents(scheme: scheme, payload: payload)
        let instrumentData = pushReceiptDataComponent.instrumentData()
        // Construye los datos de elegibilidad.
        let eligibilityDataBuilder = CardDigitizationService.EligibilityDataComponents(inputMethod: .bankApp, language: "en")
        let eligibilityData = eligibilityDataBuilder.eligibilityData()
        let cardDigitizationService = CardDigitizationService()
        let acceptanceData = try await cardDigitizationService.checkEligibility(eligibilityData, instrumentData: instrumentData)
        let tnc = acceptanceData.termsAndConditions
        // Almacena los T&C y notifica a la UI, y espera una respuesta.
    } catch let error as CardDigitizationService.Error {
        // Maneja el error.
    }
}
```

### Verificar la elegibilidad con un ID de sesión de inscripción de tarjeta push

Para evitar compartir los datos cifrados de la tarjeta en la aplicación, el backend de la billetera digital puede enviar los datos de la tarjeta directamente al backend de NFC Wallet. El backend de NFC Wallet devuelve un efímero **ID de sesión de inscripción de tarjeta push** (`pushSessionID`).

El siguiente fragmento de código muestra cómo continuar la inscripción de la tarjeta verificando la elegibilidad usando el **ID de sesión de inscripción de tarjeta push**.

```swift
func triggerCheckEligibility(_ pushSessionID: String) async throws {
    do {
        // Construye los datos de elegibilidad.
        let eligibilityDataBuilder = CardDigitizationService.EligibilityDataComponents(inputMethod: .onFile, language: "en")
        let eligibilityData = eligibilityDataBuilder.eligibilityData()
        let cardDigitizationService = CardDigitizationService()
        let acceptanceData = try await cardDigitizationService.checkEligibility(eligibilityData, pushSessionID: pushSessionID)
        let tnc = acceptanceData.termsAndConditions
        // Almacena los T&C, notifica a la UI y espera una respuesta.
    } catch let error as CardDigitizationService.Error {
        // Maneja el error.
    }
}
```


---

# 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-ios/es/implement-nfc-wallet/tokenize-a-card/check-card-eligibility.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.
