> 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 de Visa pueden usar la Autenticación de Datos Sin Conexión (ODA).

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

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

### Integración del SDK

#### Comprueba si es necesario renovar el ODA de Visa

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

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

Use el **ID de la tarjeta tokenizada** como identificador de la tarjeta. Consulta [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()) {
            // Gestionar el error.
            return;
        }

        DigitalizedCardDetails details = result.getResult();

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

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

Realiza esta comprobación:

* Después de **NFC Wallet SDK** la inicialización.
* Después de un pago.
* Después de establecer la tarjeta como predeterminada.
* Después de que se restablezca la conectividad (sin conexión -> en línea).

#### Renovar el certificado ODA

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

1. Obtenga el identificador de la tarjeta.

   Use el **ID de la tarjeta tokenizada**. 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).
2. Envía la solicitud de renovación del certificado ODA.

   Llamar a `sendRequestForODACertificateRenewal(...)` e implemente `PushServiceListener`:

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

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

ProvisioningBusinessService provisioningService =
        ProvisioningServiceManager.getProvisioningBusinessService();

provisioningService.sendRequestForODACertificateRenewal(
        tokenizedCardId,
        new PushServiceListener() {

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

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

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

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

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

* Después de configurar la tarjeta predeterminada.
* Después de completar 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.
