> 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/digitize-a-card.md).

# Digitalizar una tarjeta

## Resumen

Después de que la tarjeta pase las comprobaciones de elegibilidad y el usuario final acepte los términos y condiciones (T\&C) cuando sea necesario, inicie la digitalización.

Durante la digitalización:

* El backend del emisor devuelve la **Tokenización** decisión (flujo verde, flujo amarillo o flujo rojo) a la aplicación de billetera digital a través de NFC Wallet.
* Si el backend del emisor aprueba (flujo verde o flujo amarillo):
  * El Proveedor de Servicio de Tokens (TSP) crea la tarjeta digital y sus activos (perfil y claves de pago).
  * NFC Wallet aprovisiona de forma segura el perfil de la tarjeta digital y las claves de pago en la aplicación de billetera digital.

En el flujo amarillo, la aplicación de billetera digital realiza ID\&V (autenticación reforzada) antes de que la tarjeta pueda ser aprovisionada.

En el flujo rojo, la digitalización se rechaza y el SDK devuelve una devolución de llamada de error.

Implemente el flujo verde, el flujo amarillo o ambos, según su programa.

{% hint style="info" %}
Según su programa, **T\&C** puede no ser necesario. Si es así, la aplicación de billetera digital puede aceptar los T\&C sin interacción del usuario final.
{% endhint %}

## Integración del SDK

Inicio **digitalización de la tarjeta** llamando a `MGCardEnrollmentService.digitizeCard(...)`.

Primero deberá implementar `MGDigitizationListener` para hacer seguimiento del progreso de la digitalización gestionando las devoluciones de llamada según el flujo de color de inscripción:

* En el **Flujo verde (aprobado, sin autenticación reforzada)** el SDK llama a estas devoluciones de llamada:

  * `onCPSActivationCodeAcquired`
  * `onComplete`

  Para más detalles, consulte [Digitalización del flujo verde](/nfc-wallet-sdk-android/es/implement-nfc-wallet/tokenize-a-card/digitize-a-card/green-flow-digitization.md).
* En el **flujo amarillo (aprobado con autenticación reforzada)** el SDK también llama a:

  * `onSelectIDVMethod`
  * `onActivationRequired`

  Para más detalles, consulte [Digitalización del flujo amarillo](/nfc-wallet-sdk-android/es/implement-nfc-wallet/tokenize-a-card/digitize-a-card/yellow-flow-digitization.md).

En caso de error de digitalización, NFC Wallet SDK emite la devolución de llamada:

* `onError`: La digitalización ha fallado. Use `error.getCode()` para decidir si reintentar, pedir al usuario final que actúe o derivar al soporte.

### `MGDigitizationListener` ejemplo de implementación

Consulte el siguiente fragmento de código para implementar `MGDigitizationListener`

{% code expandable="true" %}

```java
// construya su escuchador de digitalización
public class MyDigitizationListener implements MGDigitizationListener {

    @Override
    public void onCPSActivationCodeAcquired(String digitalCardId, byte[] activationCode) {
        // Reciba activationCode para iniciar el aprovisionamiento de este digitalCardId.
        // Consulte "Trigger a provisioning session".
    }

    @Override
    public void onSelectIDVMethod(IDVMethodSelector idvMethodSelector) {
        // Solo flujo amarillo: reciba la lista de métodos ID&V
        // Consulte "Yellow flow digization"
    }

    @Override
    public void onActivationRequired(PendingCardActivation pendingCardActivation) {
        // Solo flujo amarillo: método ID&V seleccionado que requiere activación
        // Consulte "Yellow flow digization"
   }

    @Override
    public void onComplete(String digitalCardId) {
        // La digitalización se completó correctamente.
    }

    @Override
    public void onError(String digitalCardId, MobileGatewayError error) {
        // La digitalización falló.
        // Analice error.getCode() y aplique la lógica correcta de reintento / recuperación.
    }
});
```

{% endcode %}

### Ejemplo de digitalización de tarjeta

En el siguiente ejemplo puede encontrar el código para iniciar la digitalización.

* En caso de flujo verde, debe proporcionar un **token de autenticación**.

{% code expandable="true" %}

```java
// referencia a su listener de digitalización de tarjetas
// - para hacer seguimiento del progreso de la digitalización mediante callback
MyDigitizationListener digitizationListener = new MyDigitizationListener();

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

// A partir de la elegibilidad: recupere TermsAndConditions.
// Consulte "Check card eligibility".
TermsAndConditionSession tncSession = termsAndConditions.accept();

// Proporcione la autenticación en caso de flujo verde
byte[] authenticationToken = null;

enrollmentService.digitizeCard(tncSession, authenticationToken, digitizationListener);
```

{% endcode %}


---

# 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/digitize-a-card.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.
