> 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/enroll-wallet.md).

# Registrar billetera

## Descripción general

Inscribe su **aplicación de billetera digital** después de **SDK de billetera NFC** la inicialización y antes de que empiece **Tokenización**. El alta de la cartera aprovisiona la aplicación de billetera digital con los activos de seguridad necesarios para llamar a **NFC Wallet** servicios:

* Ejecute esto una vez por instancia de billetera.
* Ejecute esto solo si la aplicación de billetera digital usa **NFC Wallet** servicios.
* Ejecute esto solo en dispositivos que admitan pagos sin contacto. Consulte [Comprobar la compatibilidad sin contacto](broken://spaces/iHBSjQEwsJj8Udj0AFXY/pages/bOB3wh3T2b7CA8EKfMLg).

{% hint style="warning" %}
Inscriba solo las aplicaciones de billetera digital que usan **NFC Wallet** servicios.

Esto evita tráfico de red innecesario desde la aplicación de billetera digital y carga innecesaria en **NFC Wallet** producto.
{% endhint %}

## Diagrama de secuencia

Flujo de alto nivel para inscribir su aplicación de cartera.

<figure><img src="/files/b7fde81804a1e8ed1f70c05ba3b04ba7a6f282e2" alt=""><figcaption><p>Flujo de inscripción de la cartera.</p></figcaption></figure>

{% hint style="info" %}
Este flujo se denomina técnicamente **alta segura de la cartera** en **NFC Wallet**.
{% endhint %}

## Integración del SDK

### Requisitos previos

Antes de comenzar, verifique lo siguiente:

* Su aplicación de billetera digital está incorporada en el **NFC Wallet** backend.
* Ha inicializado el **SDK de billetera NFC**.
* La cartera no está inscrita (`WalletSecureEnrollmentService.isEnrolled()` devuelve `false`).
* Si admite pagos sin contacto, confirme que el dispositivo sea elegible. Consulte [Comprobar la compatibilidad sin contacto](/nfc-wallet-sdk-ios/es/implement-nfc-wallet/check-contactless-capability.md).

{% hint style="info" %}
Omita la comprobación de la compatibilidad sin contacto si su aplicación de billetera digital no admite pagos sin contacto (por ejemplo, solo pago remoto por código QR o DSRP).
{% endhint %}

### Realizar la inscripción de la cartera

La inscripción de la cartera es una acción única en el ciclo de vida de la aplicación de billetera digital.

Ejecutarla después de la inicialización del SDK y solo si la cartera no está inscrita.

1. Cree una instancia de `WalletSecureEnrollmentService` .
2. Compruebe `wse.isEnrolled()`.
3. Si es necesario, llame a `wse.enroll()` para iniciar el proceso. Si la operación tiene éxito, se completa la alta segura de la cartera; de lo contrario, se lanzará un error.

Después de que la alta segura de la cartera se complete correctamente, continúe con [Tokenizar una tarjeta](/nfc-wallet-sdk-ios/es/implement-nfc-wallet/tokenize-a-card.md).

```swift
func invokeWSEAsync() async {
   do {
        let wse = try WalletSecureEnrollmentService()
        // Comprobar el estado de inscripción de la cartera.
        if wse.isEnrolled() {
            // WSE está inscrito
        } else {
            // Activar la alta segura de la cartera.
            try await wse.enroll()
            // El proceso de inscripción se completa correctamente aquí.
        }
    } catch {
        // Error de WSE 
    }
}
```

### Errores

Cuando falle la inscripción de la cartera, gestione estos tipos de error:

* `clientError`: Un error interno del SDK. Se proporciona un mensaje a la aplicación de billetera digital.
* `serverError`: Un error del backend. Se proporciona un mensaje, `httpStatus`, `errorCode`, y opcionalmente `additionalInfo` a la aplicación de billetera digital.
* `networkError`: El dispositivo no tiene conexión a internet.

{% hint style="info" %}
La `WalletSecureEnrollmentService.eventStream` y `WalletSecureEnrollmentService.State` las API están obsoletas y se eliminarán en la próxima versión. Por lo tanto, debe migrar su código para usar `WalletSecureEnrollmentService.enroll` API y para todas las nuevas implementaciones, como se muestra arriba
{% endhint %}

### API obsoletas

El siguiente ejemplo demuestra el uso de `WalletSecureEnrollmentService.State` y `WalletSecureEnrollmentService.eventStream` API que están obsoletas.

Estos son los posibles eventos de `WalletSecureEnrollment` cuando se usa la API `WalletSecureEnrollmentService.eventStream` (obsoleta):

* `.started`: Se inicia el proceso de alta segura de la cartera.
* `.completed` : Se completa el proceso de alta segura de la cartera.
* `.errorEncountered`: Se devuelve el error de alta segura de la cartera.

```swift
// API obsoleta
func invokeWSEAsync() async {
    do {
        let wse = try WalletSecureEnrollmentService()
        // comprobar el estado de inscripción de la cartera.
        if wse.isEnrolled() {
            // WSE está inscrito
        } else {
          // activar la alta segura de la cartera.
            wse.enroll()
            for await state in wse.eventStream {
              switch state {
                case .started:
                  // activar cuando WSE haya शुरूado.
                case .completed:
                  // activar cuando WSE se haya completado.
                case .errorEncountered(let error):
                  switch error {
                    case .clientError(let message):
                        // manejo de errores 
                    case .serverError(let message, let httpStatus, let errorCode, let additionalInfo):
                        // manejo de errores 
                    case .networkError:
                        // manejo de errores 
                    }
                }
            }
        }
    } catch {
        // error de inicialización de WSE 
    }
}
```


---

# 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/enroll-wallet.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.
