> 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/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 una tarjeta puede tokenizarse en el **aplicación de cartera digital**.

El SDK de NFC Wallet comprueba la elegibilidad con el Token Service Provider (TSP).

Si la tarjeta es elegible, el SDK devuelve los términos y condiciones (T\&C) del TSP. Muestre los T\&C al **usuario final** y recopile la aceptación antes de la digitalización.

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

Después de la elegibilidad y la aceptación de los T\&C (cuando sea necesario), continúe con [Digitalizar una tarjeta](/nfc-wallet-sdk-android/es/implement-nfc-wallet/tokenize-a-card/digitize-a-card.md).

## Integración del SDK

Llamar a `MGCardEnrollmentService.checkEligibility()` para confirmar **Tokenización** la elegibilidad.

Proporcione:

* `EligibilityData`
* Una de las siguientes:
  * `InstrumentData`
  * `pushSessionId`

`EligibilityData` incluye:

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

`InstrumentData` se puede construir a partir de:

* `encryptedCardData`
* `issuerPushReceipt`

En el caso de uso de inscripción de tarjeta por push, el backend de NFC Wallet devuelve `pushSessionId` al **backend del emisor**.

### Comprobar la elegibilidad con credenciales de la tarjeta

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

```java
// Obtenga el controlador del servicio de inscripción
MGCardEnrollmentService enrollmentService =
        MobileGatewayManager.INSTANCE.getCardEnrollmentService();

// Construya los datos del instrumento a partir de los datos cifrados de la tarjeta y la clave pública
InstrumentData instrumentData =
        new InstrumentData.EncryptedCardDataBuilder(encryptedCardInfo)
                .publicKeyIdentifier(pubKey)
                .build();

// Construya los datos de elegibilidad
EligibilityData eligibilityData =
        new EligibilityData.Builder(InputMethod.BANK_APP, "en").build();

// Invocar la elegibilidad con el listener CardEligibilityListener
enrollmentService.checkEligibility(eligibilityData, instrumentData, new CardEligibilityListener() {
    @Override
    public void onSuccess(TermsAndConditions termsAndConditions, IssuerData issuerData) {
        // Si la tarjeta es elegible, obtenga los T&C
        String tncContent = termsAndConditions.getContent();
        ContentType tncContentType = termsAndConditions.getContentType();

        // Guarde y muestre los T&C.
        // Recopile la aceptación antes de llamar a digitizeCard(...).
    }

    @Override
    public void onError(MobileGatewayError error) {
        // La tarjeta no es elegible, o la solicitud falló.
        // Compruebe el motivo del error y decida si reintentar o detener el flujo.
    }
});
```

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

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

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

Construya `InstrumentData` usando el comprobante push del emisor. Luego llame a `checkEligibility(...)` igual que en el flujo de credenciales de la tarjeta.

```java
final String type = "pushAccountReceipt"; // Constante
final String scheme = "MASTERCARD"; // Solo compatible con Mastercard / MDES
String payload = "..."; // Carga útil recibida de la aplicación del emisor

// Construya los datos del instrumento a partir del comprobante push del emisor
InstrumentData instrumentData =
        new InstrumentData.IssuerPushReceiptBuilder(scheme, type, payload).build();
```

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

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

```java
// Obtenga el pushSessionId generado por el backend de NFC Wallet
String pushSessionId = "....";

// Obtenga el controlador del servicio de inscripción
MGCardEnrollmentService enrollmentService =
        MobileGatewayManager.INSTANCE.getCardEnrollmentService();

// Invocar la elegibilidad de la tarjeta
enrollmentService.checkEligibility(eligibilityData, pushSessionId, new CardEligibilityListener() {
    @Override
    public void onSuccess(TermsAndConditions termsAndConditions, IssuerData issuerData) {
        // Si la tarjeta es elegible, obtenga los T&C
        String tncContent = termsAndConditions.getContent();
        ContentType tncContentType = termsAndConditions.getContentType();

        // Guarde y muestre los T&C.
        // Recopile la aceptación antes de llamar a digitizeCard(...).
    }

    @Override
    public void onError(MobileGatewayError error) {
        // La tarjeta no es elegible, o la solicitud falló.
    }
});
```

### Aceptación de T\&C

Tras una comprobación de elegibilidad exitosa, presente los términos y condiciones (T\&C) al **usuario final** cuando sea necesario.

Luego, después de que el usuario final acepte, cree un `TermsAndConditionSession` y páselo a `digitizeCard(...)`. Consulte [Digitalizar una tarjeta](/nfc-wallet-sdk-android/es/implement-nfc-wallet/tokenize-a-card/digitize-a-card.md).

```java
// A partir de la elegibilidad: recupere TermsAndConditions.
// Renderice termsAndConditions.getContent() según termsAndConditions.getContentType().
// Luego, después de la aceptación del usuario final:
TermsAndConditionSession tncSession = termsAndConditions.accept();
```

{% hint style="info" %}
La **aplicación de cartera digital** es responsable de mostrar los T\&C y recopilar la aceptación (cuando lo requiera su programa).

Si su programa permite la aceptación implícita, puede llamar a `termsAndConditions.accept()` sin interacción del usuario final.
{% 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/nfc-wallet-sdk-android/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.
