> 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/make-payment/renew-oda-certificates.md).

# Renovar certificados ODA

### Resumen

Los pagos sin contacto Visa pueden usar Autenticación de Datos Offline (ODA).

Cada tarjeta digital Visa incluye un certificado ODA con una fecha de vencimiento. Renueve el certificado antes de que caduque para evitar interrupciones en los pagos.

{% hint style="info" %}
El SDK de billetera NFC admite la renovación del certificado ODA solo para Visa.
{% endhint %}

### Integración del SDK

#### Compruebe si es necesaria la renovación del ODA de Visa

Para comprobar si una tarjeta digital admite ODA de Visa y si su certificado ha caducado, recupere `DigitalizedCardDetails` y llame a:

* `DigitalizedCardDetails.isVisaODASupported()`
* `DigitalizedCardDetails.isVisaODACertificateExpired()`

Usa el **ID tokenizado de la tarjeta** como el identificador de la tarjeta. Consulte [Mostrar tarjetas digitales](/nfc-wallet-sdk-android/es/implement-nfc-wallet/manage-digital-cards/display-digital-cards.md#tokenized-card-id-versus-digital-card-id).

```java
String tokenizedCardId = "...";

DigitalizedCard card =
        DigitalizedCardManager.getDigitalizedCard(tokenizedCardId);

card.getCardDetails(new AbstractAsyncHandler<DigitalizedCardDetails>() {
    
    @Override
    public void onComplete(AsyncResult<DigitalizedCardDetails> result) {
        if (!result.isSuccessful()) {
            // Manejar error.
            return;
        }

        DigitalizedCardDetails details = result.getResult();

        // Compruebe el esquema de pago.
        if (!"VISA".equalsIgnoreCase(details.getScheme())) {
            return;
        }

        // Solicite la renovación solo cuando sea necesario.
        if (details.isVisaODASupported() && details.isVisaODACertificateExpired()) {
            // Solicite la renovación del certificado ODA.
        }
    }
});
```

Realice esta comprobación:

* Después de **inicialización del SDK NFC Wallet** inicialización.
* Después de un pago.
* Después de que la tarjeta se establezca como predeterminada.
* Después de que vuelva la conectividad (offline -> online).

#### Renueve el certificado ODA

Llamar `ProvisioningBusinessService.sendRequestForODACertificateRenewal(...)` para solicitar la renovación del certificado ODA de una tarjeta digital Visa.

1. Obtén el identificador de la tarjeta.

   Usa el **ID tokenizado de la tarjeta**. Vea [Mostrar tarjetas digitales](/nfc-wallet-sdk-android/es/implement-nfc-wallet/manage-digital-cards/display-digital-cards.md#tokenized-card-id-versus-digital-card-id).
2. Envíe la solicitud de renovación del certificado ODA.

   Llamar `sendRequestForODACertificateRenewal(...)` e implementa `PushServiceListener`:

   * `onComplete`: El SDK envía la solicitud correctamente.
   * `onError`: El SDK no puede enviar la solicitud. Inspecciona `ProvisioningServiceError`.

```java
String tokenizedCardId = "...";

ProvisioningBusinessService provisioningService =
        ProvisioningServiceManager.getProvisioningBusinessService();

provisioningService.sendRequestForODACertificateRenewal(
        tokenizedCardId,
        new PushServiceListener() {

            @Override
            public void onComplete() {
                // La solicitud se envió correctamente.
                // Espere una notificación push del backend de la billetera NFC.
            }

            @Override
            public void onUnsupportedPushContent(Bundle bundle) {
                // No se utiliza para la renovación del certificado ODA de Visa.
            }

            @Override
            public void onServerMessage(String tokenizedCardId,
                                        ProvisioningServiceMessage message) {
                // Opcional: maneje los mensajes de estado del backend de la billetera NFC.
            }

            @Override
            public void onError(ProvisioningServiceError error) {
                // Maneje el error.
            }
        }
);
```

Para mejorar la experiencia del usuario final, active la renovación en momentos predecibles:

* Después de que se establezca la tarjeta predeterminada.
* Después de que se complete un pago.


---

# 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/make-payment/renew-oda-certificates.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.
