> 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/secure-card-display/es/implementar-la-visualizacion-segura-de-tarjetas/mostrar-metadatos-de-la-tarjeta.md).

# Mostrar metadatos de la tarjeta

## Resumen

Esta sección describe cómo mostrar los datos no sensibles de la tarjeta en la aplicación del emisor.

## Experiencia de usuario

<div align="left"><figure><img src="/files/eff6de5571c42ecd84be6cf49d4d44242a68b81c" alt="" width="224"><figcaption></figcaption></figure></div>

## Diagrama de secuencia

#### Requisitos previos:

* El usuario final y las tarjetas están registrados en el backend de D1.
* El SDK de D1 está correctamente inicializado.
* La aplicación del emisor llamó a la API de inicio de sesión del SDK de D1.

<figure><img src="/files/033efa3caf072ea05bd6a5961766895278309a48" alt=""><figcaption></figcaption></figure>

Basado en el `cardID` valor, la aplicación del emisor puede mostrar al usuario final la información básica de la tarjeta, como los últimos cuatro dígitos del PAN, la fecha de caducidad, el fondo de la imagen de la tarjeta, y así sucesivamente.

El SDK de D1 expone el público `getCardMetaData()` API para obtener la información de la tarjeta. La `CardMetadata.cardAssetArray()` API para iOS y la `CardMetadata.getAssetList()` API para Android se proporcionan para recuperar el activo de la tarjeta.

Para una tarjeta emitida por D1, se puede obtener información adicional de la tarjeta, como “State Reason” y “Ongoing Operation”, utilizando las API CardMetadata.getStateReason() y CardMetadata.getOngoingOperation().

{% hint style="info" %}
La lista de tarjetas se puede obtener con la `getCardList()` operación.
{% endhint %}

{% tabs %}
{% tab title="Android" %}

```java
String cardID = ""; //id de tarjeta recibido del backend
D1Task.Callback<CardMetadata> callback = new D1Task.Callback<CardMetadata>() {
    @Override
    public void onSuccess(CardMetadata cardMetadata) {
        // Últimos 4 dígitos del PAN
        String last4Pan = cardMetadata.getLast4Pan();

        StateReason reason = cardMetadata.getStateReason();
        OngoingOperation ongoingOperation = cardMetadata.getOngoingOperation();

        // CardAsset se usa para mostrar el arte de la tarjeta
        cardMetadata.getAssetList(new D1Task.Callback<List<CardAsset>>() {
            @Override
            public void onSuccess(List<CardAsset> cardAssets) {
                // Continúa con la lógica de la aplicación                                    
            }
            @Override
            public void onError(@NonNull D1Exception e) {
                // Gestiona el error. Por ejemplo, registrarlo, mostrarlo, etc. 
            }
        });
    }

    @Override
    public void onError(D1Exception exception) {
        // Consulte la sección Integración del SDK de D1 – Gestión de errores.
    }
};

d1Task.getCardMetadata(cardID, callback);
```

{% endtab %}

{% tab title="iOS" %}

```kotlin
let cardID = "" // Obtenido, por ejemplo, del servidor.
d1Task.cardMetadata(cardID) { cardMetadata, error in
    if let error = error {
        // Consulte la sección Integración del SDK de D1 – Gestión de errores.
    } else if let cardMetadata = cardMetadata {
        // Continúa con los flujos posteriores. Por ejemplo, actualizar la interfaz de usuario.
        print("Scheme: \(cardMetadata.cardScheme.rawValue)")
        print("State: \(cardMetadata.cardState.rawValue)")
        print("Exp: \(cardMetadata.cardExpiry)")
        print("Last4: **** **** **** \(cardMetadata.cardLast4)")

        print("reason: \(cardMetadata.reason.rawValue)")
        print("Ongoing operation: \(cardMetadata.ongoingOperation.rawValue)")

        // Por ejemplo, muestra el primer arte de la tarjeta.
        cardMetadata.cardAssetArray { assets, error in
            if let cardAssetContent = assets?.first?.contentArray.first,
               let cardImageData = Data(base64Encoded: cardAssetContent.encodedData, options: .ignoreUnknownCharacters) {
                let image = UIImage.init(data: cardImageData)
            }
        }
    }
}
```

{% endtab %}
{% endtabs %}


---

# 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/secure-card-display/es/implementar-la-visualizacion-segura-de-tarjetas/mostrar-metadatos-de-la-tarjeta.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.
