> 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/click-to-pay/es/implement-click-to-pay-issuers/opt-out-cards-from-click-to-pay/opt-out-by-d1-sdk.md).

# Darse de baja mediante el SDK de D1

## Descripción general

Esta página explica cómo la aplicación del emisor puede darse de baja de Click to Pay mediante el D1 SDK.

D1 SDK proporciona dos APIs de baja:

* `optOutCard` elimina una tarjeta de Click to Pay.
* `optOutConsumer` elimina todas las tarjetas del usuario final de Click to Pay.

Use estos flujos del SDK cuando quiera que el usuario final inicie la baja directamente desde la aplicación del emisor mientras D1 orquesta las interacciones del backend con los directorios de Click to Pay y la red de pago.

{% hint style="info" %}
**Enlaces rápidos**

* [Dar de baja tarjetas de Click to Pay](/click-to-pay/es/implement-click-to-pay-issuers/opt-out-cards-from-click-to-pay.md)
* [Recuperar perfiles mediante el SDK de D1](/click-to-pay/es/implement-click-to-pay-issuers/retrieve-click-to-pay-profiles/retrieve-profiles-by-d1-sdk.md)
* [Inscribir tarjetas mediante el SDK de D1](/click-to-pay/es/implement-click-to-pay-issuers/enroll-cards-in-click-to-pay/enroll-cards-by-d1-sdk.md)
* [Actualizar perfiles mediante D1 SDK](/click-to-pay/es/implement-click-to-pay-issuers/update-click-to-pay-profiles/update-profiles-by-d1-sdk.md)
  {% endhint %}

## Elija la API de SDK adecuada

### `optOutCard`

Use `optOutCard` cuando el usuario final quiera eliminar una tarjeta específica de Click to Pay.

Esta opción mantiene sin cambios las demás tarjetas inscritas.

### `optOutConsumer`

Use `optOutConsumer` cuando el usuario final quiera eliminar el perfil completo de Click to Pay.

Esta opción elimina todas las tarjetas inscritas en Click to Pay para ese usuario final.

## Flujo

El siguiente diagrama muestra el flujo general de baja basado en SDK:

<figure><img src="https://3391342470-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FuKGiYHoxBTUoHkwRFlXH%2Fuploads%2FE66xZVyXvCFaO8Mf53We%2FFlow%20-%20%20Opt%20out%20by%20D1%20SDK.svg?alt=media&amp;token=61c1fecd-bf64-490e-b8d5-75b59c8ddcaf" alt=""><figcaption></figcaption></figure>

## Diagrama de secuencia

El flujo del SDK tiene el mismo comportamiento funcional que el flujo de baja del backend, pero se inicia directamente desde la aplicación del emisor.

El siguiente diagrama de secuencia muestra el flujo iniciado desde la aplicación del emisor:

<figure><img src="https://3391342470-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FuKGiYHoxBTUoHkwRFlXH%2Fuploads%2Fv2K11nezLz7oOLLns70B%2FSequence%20Diagram%20-%20Click%20to%20Pay%20-%20%20Enroll%20cards%20by%20D1%20SDK.svg?alt=media&amp;token=691c2aa1-8674-4943-bf82-aadf3cb42a1c" alt=""><figcaption></figcaption></figure>

### Puntos clave

* Ambas operaciones son asincrónicas.
* El resultado inmediato contiene un estado de `SUCCESSFUL` o `PENDING`, además de un `operationID`.
* Use [Recuperar perfiles mediante el SDK de D1](/click-to-pay/es/implement-click-to-pay-issuers/retrieve-click-to-pay-profiles/retrieve-profiles-by-d1-sdk.md) antes de la baja, cuando la aplicación del emisor debe mostrar el estado actual de Click to Pay.
* `optOutCard` elimina una tarjeta digital del lado de la red de pago.
* `optOutConsumer` elimina el perfil completo de Click to Pay para el usuario final en todas las tarjetas inscritas.
* El resultado final también se puede seguir a través del endpoint Get Operation en el [resumen de la API de D1](/click-to-pay/es/integrate-the-d1-api/d1-api-summary.md) o a través de D1 Notifications.

Los diagramas ilustran el flujo de baja iniciado desde la aplicación del emisor.

`optOutConsumer` sigue el mismo patrón del SDK que `optOutCard`, pero se aplica a todas las tarjetas vinculadas al usuario final.

## Gestionar notificaciones push de Click to Pay

Consulte [Gestionar notificaciones push de Click to Pay](/click-to-pay/es/implement-click-to-pay-issuers/enroll-cards-in-click-to-pay/enroll-cards-by-d1-sdk.md#handle-click-to-pay-push-notifications) en la documentación de inscripción mediante el SDK de D1 para ver los detalles de implementación.

## API del SDK para `optOutCard`

Desde D1 SDK 4.2.0, `optOutCard` ([Android](https://thalesgroup.github.io/d1sdk-docs/d1-sdk/latest/android/com/thalesgroup/gemalto/d1/clicktopay/ClickToPayService.html#optOutCard\(java.lang.String,com.thalesgroup.gemalto.d1.D1Task.Callback\)) / [iOS](https://thalesgroup.github.io/d1sdk-docs/d1-sdk/4.3.0/ios/documentation/d1/clicktopayservice/optoutcard\(_:\))) está disponible a través de D1 SDK.

Use esta API cuando el usuario final quiera darse de baja solo de una tarjeta específica.

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

```kotlin
fun optOutClick2Pay(d1Task: D1Task, cardID: String) {

    val callback: D1Task.Callback<Status?> =
        object : D1Task.Callback<Status?> {
            override fun onSuccess(data: Status?) {
                // Baja de Click to Pay exitosa
                val status: Status? = data
                val operationID = data?.operationID
            }

            override fun onError(exception: D1Exception) {
                // Consulte la sección Integración del SDK de D1 – Gestión de errores.
            }
        }
    d1Task.getClickToPayService().optOutCard(
        cardID,
        callback
    )
}
```

{% endtab %}

{% tab title="iOS" %}

```swift
let cardID = ""
do {
    let status = try await d1Task.clickToPayService().optOutCard(cardID)
    switch status {
    case .pending(let operationID):
        // La baja de Click to Pay está pendiente.
        print(operationID)
    case .successful(let operationID):
        // Baja de Click to Pay realizada con éxito.
        print(operationID)
    }
} catch {
    // Gestionar el error.
}
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
Use `optOutCard` cuando la aplicación del emisor muestra una lista de tarjetas y el usuario final selecciona una tarjeta para eliminar.
{% endhint %}

## API del SDK para `optOutConsumer`

Desde D1 SDK 4.3.0, `optOutConsumer` ([Android](https://thalesgroup.github.io/d1sdk-docs/d1-sdk/latest/android/com/thalesgroup/gemalto/d1/clicktopay/ClickToPayService.html#optOutConsumer\(com.thalesgroup.gemalto.d1.D1Task.Callback\)) / [iOS](https://thalesgroup.github.io/d1sdk-docs/d1-sdk/4.3.0/ios/documentation/d1/clicktopayservice/optoutconsumer\(\))) está disponible a través de D1 SDK.

Use esta API cuando el usuario final quiera darse de baja de todas las tarjetas de Click to Pay en una sola acción.

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

```kotlin
fun optOutConsumerClick2Pay(d1Task: D1Task) {
    val callback: D1Task.Callback<Status?> =
        object : D1Task.Callback<Status?> {
            override fun onSuccess(data: Status?) {
                // Baja de Click to Pay exitosa
                val status: Status? = data
                val operationID = data?.operationID
            }

            override fun onError(exception: D1Exception) {
                // Consulte la sección Integración del SDK de D1 – Gestión de errores.
            }
        }
    d1Task.getClickToPayService().optOutConsumer(
        callback
    )
}
```

{% endtab %}

{% tab title="iOS" %}

```swift
do {
    let status = try await d1Task.clickToPayService().optOutConsumer()
    switch status {
    case .pending(operationID: let operationID):
        // Gestionar el escenario pendiente
        print(operationID)
    case .successful(operationID: let operationID):
        // Gestionar el escenario exitoso
        print(operationID)
    }
} catch let error {
    // Gestionar el error.
}
```

{% endtab %}
{% endtabs %}

{% hint style="warning" %}
Use `optOutConsumer` con cuidado.

Esta acción elimina todas las tarjetas de Click to Pay para el usuario final.
{% endhint %}


---

# 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/click-to-pay/es/implement-click-to-pay-issuers/opt-out-cards-from-click-to-pay/opt-out-by-d1-sdk.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.
