> 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-ios/es/implement-nfc-wallet/manage-digital-cards/display-digital-cards.md).

# Mostrar tarjetas digitales

## Resumen

Después **Tokenización**, su **aplicación de billetera digital** debería mostrar el **usuario final** sus tarjetas digitales.

Proporcione una vista de lista y una vista de detalles. Use el estado de la tarjeta, el arte de la tarjeta y los metadatos para dirigir la interfaz de usuario.

## Integración del SDK

### Recuperar lista de tarjetas

Después de que la digitalización se complete, la aplicación de billetera digital puede recuperar y mostrar las tarjetas digitales.

Use `DigitalCardManager.cardList` para recuperar la lista de todas las tarjetas digitalizadas.

<pre class="language-swift" data-title="Listar tarjetas digitales"><code class="lang-swift">func retrieveCardList() async {
  let manager = DigitalCardManager()
  do {
    let cardList = try await manager.cardList
    // Use cardList para poblar su interfaz de usuario.
  } catch {
<strong>    // Manejar errores.
</strong>  }
}
</code></pre>

### Recuperar una tarjeta digital

Puede recuperar una `DigitalCard` desde `DigitalCardManager` de varias maneras:

{% code title="Obtener una tarjeta digital" %}

```swift
func getDigitalCards() async throws {
  let manager = DigitalCardManager()

  // Obtenga la lista completa una vez, luego acceda a los elementos localmente.
  let cardList = try await manager.cardList

  // Obtenga la tarjeta designada como tarjeta predeterminada.
  let defaultCard = try await manager.defaultCard

  // Obtenga la primera tarjeta en la lista.
  let firstCard = cardList.first

  // Obtenga la última tarjeta en la lista.
  let lastCard = cardList.last

  // Recuperar la tarjeta en un índice específico.
  // Acceder a un índice fuera de rango provocará un fallo, así que valide primero.
  let index = 0
  guard cardList.indices.contains(index) else { return }
  let cardAtIndex = cardList[index]

  // Recuperar la última tarjeta usando el conteo de la lista.
  let cardCount = cardList.count
  let lastCardByIndex = cardList[cardCount - 1]

  // Recuperar la tarjeta con un digitalCardID específico.
  let digitalCardID = ""
  let specificCard = await manager.digitalCard(forID: digitalCardID)
}
```

{% endcode %}

### Obtener detalles de la tarjeta

Un `DigitalCard` representa una tarjeta digitalizada. Expone los datos necesarios para construir su interfaz de usuario y gestionar el ciclo de vida de la tarjeta:

* `DigitalCard.State`: Estado de la tarjeta digital
* `DigitalCard.CardArt`: Datos del arte de la tarjeta
* `DigitalCard.CardMetadata`: Metadatos de la tarjeta, incluyendo:
  * Últimos cuatro dígitos del PAN
  * Últimos cuatro dígitos del token
  * Fecha de caducidad del PAN
* `DigitalCard.PaymentKeyInfo`: Información de la clave de pago, incluyendo:
  * Número de pagos restantes
  * Si se requiere reabastecimiento
  * Tipo de clave de pago
  * Fecha/hora de caducidad de la clave de pago
* `DigitalCard.Details`: Esquema y capacidades de la tarjeta, incluyendo:
  * `esquema`: Esquema de pago (Visa, Mastercard o PURE)
  * `paymentTypesSupported`: Canales de pago compatibles

El siguiente ejemplo muestra cómo recuperar los detalles de la tarjeta digital:

{% code title="Obtener detalles de la tarjeta digital" %}

```swift
func retrieveCardDetails(digitalCard: DigitalCard) async {
  do {
    // estados de la tarjeta: .active, .suspended, .inactive, etc.
    // las tarjetas .active pueden usarse para pago
    // las tarjetas .suspended requieren activación para poder realizar pagos
    // las tarjetas .inactive implican que la ID&V inicial no se ha completado.
    // Use pendingActivationSession para reanudar ID&V.
    // otros casos, la tarjeta no está en uso
    let cardState = try await digitalCard.state

    // recuperación del arte de la tarjeta
    let cardArt = try await digitalCard.cardArt
    let bitmap = try await cardArt.bitmap(forArtType: .cardBackgroundCombined)
    // Tipos de arte: .bankLogo, .schemeLogo, .cardBackground, .cardBackgroundCombined, .coBrandLogo, .cardIcon.

    // recuperación de metadatos de la tarjeta
    let cardMetadata = try await digitalCard.cardMetadata
    let panLastDigits = cardMetadata.panLastDigits
    let panExpiry = cardMetadata.panExpiry

    // información de la clave de pago de la tarjeta
    let paymentKeyInfo = try await digitalCard.paymentKeyInfo
    let numberOfPaymentsLeft = paymentKeyInfo.numberOfPaymentsLeft
    let needsReplenishment = paymentKeyInfo.needsReplenishment

    // detalles de la tarjeta
    let cardDetail = try await digitalCard.details
    let scheme = cardDetail.scheme
    let supportedPaymentTypes = cardDetail.paymentTypesSupported

  } catch {
    // Manejar errores.
  }
}
```

{% endcode %}

### Obtener detalles auxiliares de la tarjeta

Si la tarjeta tiene co-branding, puede recuperar propiedades adicionales de `digitalCard`.

* `DigitalCard.hasAuxiliaryScheme`: Devuelve `true` si la tarjeta tiene un esquema auxiliar

Si la tarjeta tiene co-branding, también puede leer:

* `DigitalCard.Details.auxiliaryScheme`: Esquema de pago auxiliar
* `DigitalCard.CardMetadata.auxiliaryTokenLastDigits`: Últimos cuatro dígitos del token auxiliar
* `DigitalCard.CardMetadata.auxiliaryTokenExpiry`: Fecha de caducidad del token auxiliar
* `DigitalCard.paymentKeyInfo.auxiliaryNumberOfPaymentsLeft`: Pagos restantes para el esquema auxiliar

Si la tarjeta no tiene co-branding, estas propiedades devuelven `nil`.

{% code title="Obtener detalles del esquema auxiliar" %}

```swift
// Detalles adicionales de tarjeta con co-branding
let details = try await digitalCard.details
let cardMetadata = try await digitalCard.cardMetadata
let paymentKeyInfo = try await digitalCard.paymentKeyInfo

if digitalCard.hasAuxiliaryScheme {
  let auxScheme = details.auxiliaryScheme

  let auxTokenLastDigits = cardMetadata.auxiliaryTokenLastDigits
  let auxTokenExpiry = cardMetadata.auxiliaryTokenExpiry

  let auxNumPaymentsLeft = paymentKeyInfo.auxiliaryNumberOfPaymentsLeft

  // Estos valores son `nil` si la tarjeta no tiene co-branding.
}
```

{% 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:

```
GET https://docs.payments.thalescloud.io/nfc-wallet-sdk-ios/es/implement-nfc-wallet/manage-digital-cards/display-digital-cards.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.
