> 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

## Resumen

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 Token (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 la aceptación antes de la digitalización.

{% hint style="info" %}
Dependiendo de su programa, **T\&C** podría no ser necesario.
{% endhint %}

## Integración del SDK

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

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

`EligibilityData` incluye:

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

Luego proporcione cualquiera de los siguientes:

* `InstrumentData`: Construido a partir de cualquiera de `encryptedCardData` o un `issuerPushReceipt`. Trate los datos de la tarjeta como sensibles y siempre envíelos cifrados.
* `pushSessionID`: Un identificador único generado por el backend de NFC Wallet. El backend del emisor lo recibe durante el registro de la tarjeta por push.

### Verificar la elegibilidad con credenciales de la tarjeta

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

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

En el flujo estándar, el backend del emisor suministra 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 comprobar 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 interfaz de usuario y espera la respuesta.
    } catch let error as CardDigitizationService.Error {
        // Maneja el error.
    }
}
```

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

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

{% hint style="info" %}
Registro de tarjeta usando un **recibo push del emisor** solo es compatible con Mastercard. NFC Wallet es compatible con la especificación MDES Token Connect.
{% endhint %}

El siguiente fragmento de código muestra cómo construir `InstrumentData` usando un recibo push del emisor. Luego llame 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 interfaz de usuario, y espera la respuesta.
    } catch let error as CardDigitizationService.Error {
        // Maneja el error.
    }
}
```

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

Para evitar compartir detalles de la tarjeta cifrados en la aplicación, el backend de la billetera digital puede enviar los detalles 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 por push** (`pushSessionID`).

El siguiente fragmento de código muestra cómo continuar el registro de la tarjeta comprobando la elegibilidad usando el **ID de sesión de inscripción de tarjeta por 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 interfaz de usuario y espera la 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:

```
GET https://docs.payments.thalescloud.io/nfc-wallet-sdk-ios/es/implement-nfc-wallet/tokenize-a-card/check-card-eligibility.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.
