> 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 elegibilidad de la tarjeta

## Resumen

La elegibilidad de la tarjeta es el primer paso en **Tokenización**. Confirma si una tarjeta puede ser tokenizada en el **aplicación de billetera digital**.

El SDK de NFC Wallet verifica la elegibilidad con el Proveedor de Servicios de Token (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" %}
Dependiendo de su programa, **T\&C** podrían no ser requeridos.
{% endhint %}

Después de la elegibilidad y (cuando se requiera) la aceptación de los T\&C, 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 `MGCardEnrollmentService.checkEligibility()` para confirmar **Tokenización** elegibilidad.

Proporcione:

* `EligibilityData`
* Uno de:
  * `InstrumentData`
  * `pushSessionId`

`EligibilityData` incluye:

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

`InstrumentData` se puede construir a partir de:

* `encryptedCardData`
* `issuerPushReceipt`

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

### 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 PAN y fecha de vencimiento. Opcionalmente proporcione el código de seguridad de la tarjeta (CSC).

```java
// Obtenga el manejador del Servicio de Inscripción
MGCardEnrollmentService enrollmentService =
        MobileGatewayManager.INSTANCE.getCardEnrollmentService();

// Construya los datos del instrumento a partir de los datos de la tarjeta cifrados 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();

// Invoque 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();

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

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

### Verificar la elegibilidad con un recibo 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 recibo push del emisor. El **aplicación de billetera digital** lo utiliza para construir `InstrumentData`.

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

Construir `InstrumentData` usando el recibo push del emisor. Luego llame a `checkEligibility(...)` como 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 app del emisor

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

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

Para evitar manejar detalles de la tarjeta cifrados en la aplicación, el **backend del emisor** puede enviar los detalles 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 manejador del Servicio de Inscripción
MGCardEnrollmentService enrollmentService =
        MobileGatewayManager.INSTANCE.getCardEnrollmentService();

// Invoque 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();

        // Persista y muestre los T&C.
        // Recoja 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 los T\&C

Después de una verificación de elegibilidad exitosa, presente los términos y condiciones (T\&C) al **usuario final** cuando sea requerido.

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

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

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

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:

```
GET https://docs.payments.thalescloud.io/nfc-wallet-sdk-android/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.
