> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Suscripciones

> Comprende y gestiona Suscripciones de usuario a través de canales como push móvil, web push, email y SMS. Aprende cómo funcionan las Suscripciones, sus propiedades y cómo actualizarlas o migrarlas.

## Descripción general

Una **Suscripción** representa un canal específico a través del cual un usuario puede recibir mensajes—como una dirección de email, número de teléfono o dispositivo. OneSignal soporta cuatro tipos de Suscripciones:

| Tipo de Suscripción | Puede recibir                                                |
| ------------------- | ------------------------------------------------------------ |
| **Email**           | Mensajes de email                                            |
| **SMS**             | Mensajes SMS, MMS y RCS                                      |
| **Web Push**        | Notificaciones push web                                      |
| **Mobile**          | Notificaciones push móvil, mensajes in-app y Live Activities |

Cada usuario puede tener múltiples Suscripciones. Usa el [External ID](./users#external-id) para identificar al usuario a través de todas las Suscripciones.

<Frame caption="Página OneSignal Dashboard Audience > Subscriptions. Muestra múltiples Suscripciones asociadas con un solo usuario vía External ID.">
  <img src="https://mintcdn.com/onesignal/ciRrThfP6xMpI7GY/images/dashboard/subscription-types.png?fit=max&auto=format&n=ciRrThfP6xMpI7GY&q=85&s=7b88e08aaeb18e979c4e52949359ae36" alt="Subscriptions page showing Email, SMS, Web Push, and Mobile subscriptions linked by External ID" width="3424" height="920" data-path="images/dashboard/subscription-types.png" />
</Frame>

En la imagen de arriba, "userA" tiene 5 Suscripciones:

1. **Mobile** (iOS) creada después de instalar la app iOS. Llama a `OneSignal.login` para establecer el External ID y vincular la Suscripción al usuario.
2. **SMS** creada después del número de teléfono proporcionado dentro de la app iOS. Ver [Suscripciones SMS](#sms-subscriptions) abajo para detalles.
3. **Web Push** creada después de suscribirse a push en el sitio web. Puede recibir notificaciones push.
4. **Email** creada después de que se proporcionó la dirección de email. Para enviar mensajes de email.
5. **Mobile** (Android) creada después de instalar la app Android. Puede recibir notificaciones push, mensajes in-app y live activities.

<Note>
  Un usuario puede tener un máximo de 20 Suscripciones. Si se agrega una 21.ª, OneSignal elimina el External ID de la Suscripción más antigua (basado en última sesión) y le asigna un nuevo OneSignal ID—creando efectivamente un nuevo usuario anónimo para la Suscripción inactiva.

  Sin embargo, OneSignal asegura que se retengan al menos 3 Suscripciones Email y 3 SMS (si aplica).

  Ver [Usuarios](./users) para detalles.
</Note>

<Frame>
  <iframe width="560" height="315" src="https://www.youtube.com/embed/yZM6zn7nLDw?si=oT7ncbhX0sNtmKML" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen />
</Frame>

***

## Propiedades de Suscripción

Cada Suscripción tiene las siguientes propiedades:

|        Propiedad        | Descripción                                                                                                                                                                                                                                                                                                                                    |
| :---------------------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|       **Channel**       | Tipo de Suscripción: `Email`, `SMS` o `Push`. Push puede ser Mobile (iOS, Android, etc.) o Web. Solo las Suscripciones Mobile Push soportan mensajes in-app.                                                                                                                                                                                   |
| **Subscription Status** | Indica si la Suscripción puede recibir mensajes. Ver [Estado de suscripción](#subscription-statuses) para más detalles.                                                                                                                                                                                                                        |
|     **Last Session**    | Marca de tiempo de la última sesión rastreada por el OneSignal SDK. Para Email/SMS, se basa en la Suscripción push más reciente.                                                                                                                                                                                                               |
|    **Usage Duration**   | Tiempo total (en segundos) que la Suscripción estuvo activa en la app o sitio rastreado por el OneSignal SDK. Solo se rastrea cuando la sesión excede 60s.                                                                                                                                                                                     |
|       **Sessions**      | Conteo de cuántas veces se abrió la app/sitio. Una nueva sesión comienza después de 30+ segundos de estar fuera de foco.                                                                                                                                                                                                                       |
|    **First Session**    | Marca de tiempo cuando se creó la primera Suscripción para el Usuario.                                                                                                                                                                                                                                                                         |
|      **IP Address**     | Ubicación de red al usar OneSignal SDKs. No se recopila en la UE. Ver [Manejo de datos personales](./handling-personal-data).                                                                                                                                                                                                                  |
|   **Subscription ID**   | UUID que representa la Suscripción específica. Usado para identificar la Suscripción.                                                                                                                                                                                                                                                          |
|     **OneSignal ID**    | UUID que representa al Usuario. Ver [Usuarios](./users).                                                                                                                                                                                                                                                                                       |
|     **External ID**     | Tu ID de usuario personalizado. Ayuda a vincular múltiples Suscripciones al mismo usuario.                                                                                                                                                                                                                                                     |
|        **Device**       | El modelo de dispositivo con el que se creó la Suscripción. Por ejemplo, `armv81` para navegadores web push son dispositivos Android.                                                                                                                                                                                                          |
|        **Email**        | Solo establecido para Suscripciones Email.                                                                                                                                                                                                                                                                                                     |
|     **Phone Number**    | Solo establecido para Suscripciones SMS. Debe estar en [formato E.164](https://en.wikipedia.org/wiki/E.164).                                                                                                                                                                                                                                   |
|     **App Version**     | Del SDK: Android `versionCode`, iOS `CFBundleShortVersionString`.                                                                                                                                                                                                                                                                              |
|     **SDK Version**     | Versión del OneSignal SDK usado. Ver [GitHub > SDKs (selecciona tu SDK) > Releases](https://github.com/OneSignal/sdks).                                                                                                                                                                                                                        |
|     **Timezone ID**     | Del dispositivo al momento de la última interacción.                                                                                                                                                                                                                                                                                           |
|       **Country**       | Derivado de la dirección IP.                                                                                                                                                                                                                                                                                                                   |
|    **Location Point**   | Latitud/longitud si el rastreo de ubicación está habilitado. Ver [Notificaciones activadas por ubicación](./location-triggered-event).                                                                                                                                                                                                         |
|    **Language Code**    | Del dispositivo al momento de creación de la Suscripción. Ver [Mensajería multi-idioma](./multi-language-messaging).                                                                                                                                                                                                                           |
|         **Tags**        | Metadatos clave-valor personalizados. Ver [Tags](./add-user-data-tags).                                                                                                                                                                                                                                                                        |
|      **Push Token**     | Token de plataforma usado para entrega push (ej., APNS o FCM). Solo para Suscripciones Push.<br />- **Formato token iOS Push APNS**: 64 caracteres, solo caracteres hexadecimales (0-9,a-f).<br />- **Formato token Android Push FCM**: Típicamente 163 caracteres, caracteres alfanuméricos, puede contener guiones, dos puntos y guión bajo. |
|        **Rooted**       | Indica si el dispositivo Android está rooteado (jailbroken).                                                                                                                                                                                                                                                                                   |

### Estados de suscripción

Generalmente, las Suscripciones pueden recibir mensajes (**Subscribed**) o no pueden recibir mensajes (**Unsubscribed**). Los detalles varían según el canal:

| Estado               | Móvil                                                                                                                                                                       | Web Push                                                                                                              | Email                                                                                                                                                                                       | SMS                                                                                           |
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
| **Subscribed**       | El usuario otorgó permiso push. Con [iOS Provisional push](./ios-provisional-push-notifications), todas las Suscripciones iOS comienzan como Subscribed.                    | El usuario hizo clic en "Permitir" en el prompt de permiso del navegador.                                             | La dirección de email es válida y el usuario ha dado su consentimiento.                                                                                                                     | El número de teléfono es válido y el usuario ha dado su consentimiento.                       |
| **Unsubscribed**     | No puede recibir push, pero **puede recibir mensajes in-app**. Ver [Manejo de desinstalaciones y tokens inválidos](#handling-uninstalls-unsubscribes--invalid-push-tokens). | No puede recibir push. Ver [Manejo de cancelaciones y tokens inválidos](#handling-unsubscribes--invalid-push-tokens). | El usuario se dio de baja vía [enlace de baja](./unsubscribe-links-email-subscriptions). Puede ser [sobrescrito](./email-messaging#send-to-unsubscribed-users) para emails transaccionales. | El usuario respondió "STOP" u otra [palabra clave de baja](./sms-consent-keyword-management). |
| **Never Subscribed** | El usuario nunca fue invitado o nunca otorgó permiso.                                                                                                                       | El usuario nunca fue invitado o bloqueó el prompt.                                                                    | N/A                                                                                                                                                                                         | N/A                                                                                           |

<Info>
  Usando nuestra API, `invalid_identifier: true` significa unsubscribed. Verifica `notification_types` para más detalles.
</Info>

***

### `notification_types`

Indica la capacidad de la Suscripción para recibir mensajes, incluyendo razones de fallos. Actualizado automáticamente vía nuestros SDKs frontend o manualmente vía API. Visible vía [View User API](/reference/view-user) o [Export CSV](/reference/csv-export).

<Accordion title="Definiciones de Notification Types." icon="circle-chevron-down">
  `1` o número positivo = Subscribed.

  * La Suscripción puede recibir mensajes en este canal.
  * Puede usarse con la propiedad `enabled` si estás habilitando mensajes en nombre del usuario. Para Suscripciones push, aún debe establecerse un `token` válido para recibir notificaciones push. Ver nuestros docs de configuración SDK para detalles.

  `0`, `-99` = Never Subscribed.

  * La Suscripción aún no se ha suscrito al canal.

  `-2` = Unsubscribed.

  * La Suscripción no puede recibir mensajes en este canal.
  * Puede usarse con la propiedad `enabled` establecida en `false` si estás desactivando mensajes en nombre del usuario. Valor recomendado al desactivar permisos de mensajes.
  * Establecido automáticamente cuando el usuario cancela su suscripción.

  `-3`, `-5` = Android `Support Library Error`.

  Agrega o actualiza la [Android Support Library](https://developers.google.com/android/) de tu app.

  `-4`, `-8`, `-11`, `-12` = Android `Google Play Services Library Error`.

  * Verifica el logcat. Ver [Obtener un Debug Log](./capturing-a-debug-log).
  * Actualiza tu [Google Play Services Library](https://developers.google.com/android/) en tu app y verifica el logcat de la app para errores de Google Play Services. Ver [Obtener un Debug Log](./capturing-a-debug-log).

  `-6` = Android `Invalid Google Project Number`.

  * El FCMv1 Sender ID no coincide con el original al que pertenece este `token`. Verifica el logcat de la app. Ver [Obtener un Debug Log](./capturing-a-debug-log).

  `-7`, `-9` = Android `Outdated Google Play Services App`

  * Actualiza o habilita la app Google Play Services en el dispositivo.

  `-10` = Not Subscribed.

  * La Suscripción Push desinstaló la app o canceló la suscripción en las configuraciones del dispositivo.
  * Web push bloqueó notificaciones, limpió todos los datos y workers.

  `-13` = iOS `missing_push_capability`.

  * Revisa los docs de configuración SDK para asegurarte de que todos los pasos estén implementados. Ver [Configuración de canal](./channel-setup).

  `-14`, `-16`, `-17` = iOS `APNS Errors`.

  * El dispositivo tiene un problema conectándose a APNS. Consulta la guía [Solución de problemas iOS](./mobile-troubleshooting) y [Obtener un Debug Log](./capturing-a-debug-log).

  `-15` = iOS `Simulator Error`.

  * iOS Simulator requiere iOS 16.4+ Usa un simulador o dispositivo diferente.

  `-18` = Never Prompted.

  * La Suscripción nunca fue solicitada para suscribirse. Esto solo rastrea el prompt de permiso requerido y no incluye mensajes in-app.

  `-19` = Prompted But Never Answered.

  * La Suscripción fue solicitada pero no proporcionó una respuesta.

  `-20`, `-21` = temp\_web\_record. Web, permiso `pushSubscriptionchange` revocado

  `-22` = Manually Unsubscribed via dashboard.

  * El permiso fue revocado.

  `-23`, `-24` = Web `Service Worker Error`.

  * Ver [Solución de problemas Web SDK](./troubleshooting-web-push).

  `-31` = Disabled via REST API.

  `-98` = SMS Subscription awaiting double opt-in.
</Accordion>

***

## Suscripciones Mobile

Las Suscripciones Mobile representan dispositivos iOS, Android, Huawei o Amazon y soportan:

* Notificaciones push
* Mensajes in-app
* Live Activities

Se crean automáticamente cuando un usuario instala y abre tu app con el OneSignal SDK.

<Note>
  Cada Suscripción móvil está vinculada al dispositivo y token push con el que se creó. Si tu app se desinstala y reinstala en el mismo dispositivo, se generará una nueva Suscripción.

  Llama a [`OneSignal.login`](./mobile-sdk-reference#login-external-id) cada vez que el usuario abre la app para asegurarte de que el [External ID](./users#external-id) esté establecido y la Suscripción esté vinculada al usuario.
</Note>

### Actualizar Suscripciones móviles

Se recomienda actualizar las propiedades de Suscripción Mobile vía el [OneSignal mobile SDK](./mobile-sdk-reference).

* [Solicitar permisos push](./prompt-for-push-permissions) y [observar cambios de permiso/Suscripción](./mobile-sdk-reference#addobserver-push-subscription-changes)
* [Login usuarios](./mobile-sdk-reference#login-external-id) para establecer External ID y Aliases
* Agregar [Tags](./add-user-data-tags)
* Establecer [Language](./multi-language-messaging)

Puedes actualizar tags, idioma y algunas otras propiedades vía la función [CSV Import](./import).

Las Suscripciones Mobile también pueden crearse y actualizarse vía las APIs [Users](/reference/create-user) y [Subscriptions](/reference/create-subscription), pero se recomienda el SDK móvil para la mayoría de casos de uso.

### Manejo de desinstalaciones, cancelaciones de suscripción y tokens push inválidos

Las Suscripciones Mobile dejan de recibir notificaciones push si el usuario:

* Desinstala la app
* Deshabilita push en las configuraciones del dispositivo y nunca reabre la app
* [El token push expira](./fcm-expired-token-faq)

En estos casos, el estado de Suscripción se establecerá como **Unsubscribed** al enviar notificaciones push. Ver abajo [¿Cuándo se actualizan los estados de suscripción push?](#when-do-push-subscription-statuses-update) para más detalles.

* Si el usuario reinstala la app en el mismo dispositivo o nuevo dispositivo, se creará una nueva Suscripción y necesitarán resuscribirse para recibir mensajes.
* Si el usuario rehabilita push en las configuraciones del dispositivo, el estado de Suscripción se establecerá como **Subscribed** y un token push se actualizará cuando abran la app.
* Si el token push expira, el estado de Suscripción y nuevo token push se actualizarán cuando el usuario abra la app en el mismo dispositivo.

Rastrea cambios vía:

* [Event Streams](./event-streams) - detecta cancelaciones de suscripción al enviar push
* [Reportes push](./push-notification-message-reports) - detecta cancelaciones de suscripción al enviar push
* Usa el [Subscription change listener](./mobile-sdk-reference#addobserver-push-subscription-changes) del SDK - detecta cancelaciones de suscripción cuando el usuario deshabilita push en configuraciones del dispositivo y luego abre la app

***

## Suscripciones Web push

Las Suscripciones Web push están vinculadas a un dispositivo específico, navegador y perfil de navegador. Un usuario que se suscribe en Chrome escritorio no recibirá push en Chrome móvil a menos que también se suscriba a tu sitio web desde ese dispositivo móvil—creando una Suscripción web push separada.

Las nuevas Suscripciones web push se crean en estos escenarios:

* El usuario se suscribe a tu sitio web haciendo clic en "Permitir" en el [prompt de permiso nativo](./permission-requests) a nivel de sistema del navegador. Esto genera un token push único y Subscription ID.
* El usuario limpia datos del navegador (historial, caché, cookies, almacenamiento local) y revisita tu sitio. Esto resulta en la creación de un nuevo Subscription ID único.

<Note>
  Los Subscription IDs de Web push nunca cambiarán. Sin embargo, se crearán nuevos Subscription IDs si el usuario limpia datos del navegador y regresa al sitio o se suscribe en un navegador/perfil de navegador diferente.

  Llama a [`OneSignal.login`](./web-sdk-reference#login-external-id) cada vez que el usuario abre el sitio o dentro del [Subscription change listener](./web-sdk-reference#addeventlistener-push-subscription-changes) para asegurarte de que el [External ID](./users#external-id) esté establecido y la Suscripción esté vinculada al usuario.
</Note>

### Actualizar Suscripciones web push

Se recomienda actualizar las propiedades de Suscripción Web push vía el [OneSignal web SDK](./web-sdk-reference).

* [Solicitar permisos push](./permission-requests) y [observar cambios de permiso/Suscripción](./web-sdk-reference#addeventlistener-push-subscription-changes)
* [Login usuarios](./web-sdk-reference#login-external-id) para establecer External ID y Aliases
* Agregar [Tags](./add-user-data-tags)
* Establecer [Language](./multi-language-messaging)

Puedes actualizar tags, idioma y algunas otras propiedades vía la función [CSV Import](./import).

Las Suscripciones Web push no pueden crearse vía REST API pero pueden actualizarse con las APIs [Users](/reference/update-user) y [Subscriptions](/reference/update-subscription), pero se recomienda el web SDK para la mayoría de casos de uso.

### Manejo de cancelaciones de suscripción y tokens push inválidos

Las Suscripciones Web push dejan de recibir notificaciones push si el usuario:

* Limpia datos del navegador (historial, caché, cookies, almacenamiento local)
* Deshabilita push en las configuraciones del sistema del navegador
* [El token push expira](./fcm-expired-token-faq)

En estos casos, el estado de Suscripción se establecerá como **Unsubscribed** al enviar notificaciones push. Ver abajo [¿Cuándo se actualizan los estados de suscripción push?](#when-do-push-subscription-statuses-update) para más detalles.

* Si el usuario regresa al sitio después de limpiar datos del navegador, se creará una nueva Suscripción y se resuscribirán automáticamente para recibir mensajes si tienes [auto-resubscribe habilitado](./web-push-setup#auto-resubscribe).
* Si el usuario rehabilita push en las configuraciones del navegador, el estado de Suscripción se establecerá como **Subscribed** cuando regresen al sitio.
* Si el token push expira, el estado de Suscripción y nuevo token push se actualizarán cuando el usuario regrese al sitio.

<Warning>
  Chromium publicó una [publicación de blog](https://blog.chromium.org/2025/10/automatic-notification-permission.html?m=1) en octubre de 2025, sobre un cambio que **revocará automáticamente los permisos push** para usuarios con bajo engagement en el sitio que reciben un alto volumen de notificaciones. El umbral para considerar que un usuario tiene un [puntaje de engagement bajo](https://www.chromium.org/developers/design-documents/site-engagement/), parece ser aproximadamente 30 días de inactividad. Cuando se revoca, el usuario final debería recibir una notificación directamente de Chrome.
</Warning>

Rastrea cambios vía:

* [Event Streams](./event-streams) - detecta cancelaciones de suscripción al enviar push
* [Reportes push](./push-notification-message-reports) - detecta cancelaciones de suscripción al enviar push
* Usa el [Subscription change listener](./web-sdk-reference#addeventlistener-push-subscription-changes) del SDK - detecta cancelaciones de suscripción cuando el usuario deshabilita push y regresa al sitio

***

## Suscripciones Email

Las Suscripciones Email están basadas en la dirección de email y se usan únicamente para la entrega de emails. Esto es diferente de establecer un [Tag](./add-user-data-tags).

Crea Suscripciones Email vía:

1. Método SDK `addEmail` o [prompt de email](./permission-requests) - usa estos métodos después de llamar a `OneSignal.login` para establecer el External ID y vincular la Suscripción al usuario.
2. [API Create user](/reference/create-user) o [API Create email](/reference/email)
3. [Importador CSV](./import) del dashboard o agrega manualmente direcciones de email

<Note>
  Los emails son únicos por app. Eliminar y volver a agregar el mismo email crea un nuevo Subscription ID.

  Se recomienda incluir el `external_id` al crear Suscripciones Email para vincularlas a un [User](./users).
</Note>

### Gestionar Suscripciones Email

**Vincular a un usuario**

Asegúrate de establecer el `external_id` al crear Suscripciones Email para vincularlas a un [User](./users).

* Usando el SDK, llama al método `login` antes de llamar a `addEmail` para establecer el `external_id` y vincular la Suscripción de email al usuario.
* Usando el Importador CSV o la API REST, establece el identificador `external_id` con el email.

**Estados de suscripción**

Las Suscripciones Email recién creadas se establecerán automáticamente como **Subscribed** a menos que se especifique lo contrario.

Las Suscripciones Email pueden pasar a unsubscribed cuando:

* Al enviar emails, el usuario se da de baja vía el [enlace de baja](./unsubscribe-links-email-subscriptions)
* Estableciendo `enabled` en `false` vía la API
* Usando el dashboard para dar de baja la Suscripción vía el botón de opciones
  Las Suscripciones Email pueden volver a estar suscritas vía:
* Estableciendo `enabled` en `true` vía la API
* Usando el dashboard para suscribir la Suscripción vía el botón de opciones

Si un usuario se da de baja de emails, puedes mantenerlo como unsubscribed pero enviarle emails importantes [enviando a emails dados de baja](./email-messaging#send-to-unsubscribed-users).

***

## Suscripciones SMS

Las Suscripciones SMS están vinculadas a [números de teléfono en formato E.164](https://en.wikipedia.org/wiki/E.164) (por ejemplo, `+14155551234`).

Crea Suscripciones SMS vía:

1. Método SDK `addSms` o [prompt SMS](./permission-requests) — llama primero a `OneSignal.login` para establecer el External ID y vincular la Suscripción al usuario.
2. [API Create user](/reference/create-user) o [API Create SMS](/reference/sms)
3. [Importador CSV](./import) del dashboard

<Note>
  Los números de teléfono son únicos por app. Volver a agregar después de eliminar crea un nuevo Subscription ID.

  Incluye el `external_id` al crear Suscripciones SMS para vincularlas a un [User](./users).
</Note>

### Gestionar Suscripciones SMS

**Vincular a un usuario**

Establece el `external_id` al crear Suscripciones SMS para vincularlas a un [User](./users).

* Usando el SDK, llama al método `login` antes de llamar a `addSms` para establecer el `external_id` y vincular la Suscripción SMS al usuario.
* Usando el Importador CSV o la API REST, establece el identificador `external_id` con el número de teléfono.

**Estados de suscripción**

Las Suscripciones SMS recién creadas se establecen automáticamente como **Subscribed** a menos que se especifique lo contrario.

Las Suscripciones SMS pueden pasar a unsubscribed cuando:

* El usuario responde con "STOP" u otra [palabra clave de baja](./sms-consent-keyword-management)
* Estableces `enabled` en `false` vía la API
* Das de baja la Suscripción en el dashboard vía el botón de opciones

Las Suscripciones SMS pueden volver a estar suscritas cuando:

* El usuario responde con "START" u otra [palabra clave de alta](./sms-consent-keyword-management)
* Estableces `enabled` en `true` vía la API
* Resuscribes la Suscripción en el dashboard vía el botón de opciones

<Warning>
  Resuscribir una Suscripción SMS sin el consentimiento del usuario viola las reglas de conformidad de los operadores (TCPA, CTIA) y puede resultar en filtrado por parte de los operadores o suspensión de la cuenta.
</Warning>

***

## Importar o migrar Suscripciones

Importa tokens push, direcciones de email y números de teléfono de otro proveedor usando:

* [API Create user](/reference/create-user)
* [API Create Subscription](/reference/create-subscription)

<Card title="Migrar a OneSignal" icon="arrow-right-to-bracket" href="./migrating-to-onesignal">
  Importa tokens push, emails y números de teléfono de otro proveedor.
</Card>

***

## Eliminar Suscripciones

Las Suscripciones pueden eliminarse por:

* Privacidad de datos
* Limpieza de registros inactivos

<Card title="Eliminar usuarios" icon="trash" href="./delete-users">
  Elimina Suscripciones y datos de usuario por privacidad o limpieza.
</Card>

<Note>
  Las Suscripciones sin actividad durante 18+ meses se eliminan automáticamente en los planes gratuitos.
</Note>

***

## FAQ

### ¿Cuándo se actualizan los estados de suscripción push?

Los estados de suscripción push se actualizan mediante dos mecanismos:

**1. Cuando el usuario abre tu app o sitio**

El SDK de OneSignal verifica si el token push es válido y si los permisos de notificación siguen otorgados, luego actualiza el estado de la suscripción inmediatamente.

Por ejemplo, si un usuario deshabilita las notificaciones push en la configuración de su dispositivo y luego reabre tu app, el SDK detecta el cambio y marca la suscripción como **Unsubscribed** de inmediato.

Puedes capturar estos cambios con el Subscription Observer del SDK ([móvil](./mobile-sdk-reference#addobserver-push-subscription-changes) | [web](./web-sdk-reference#addeventlistener-push-subscription-changes)) para sincronizar el estado con tu propia base de datos.

**2. Cuando envías notificaciones push**

Si un usuario desinstala tu app, limpia datos del navegador, o deshabilita push **y nunca regresa**, OneSignal no puede detectar el cambio hasta que envíes una notificación. El servicio push (FCM, APNs, HMS) reporta el token como inválido y OneSignal marca la suscripción como **Unsubscribed**.

Esta detección típicamente requiere 2 o más mensajes porque el servicio push no rechaza inmediatamente un token inválido:

| Envío      | Qué sucede                                                                                                                                               |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Mensaje 1  | Entregado al dispositivo. El usuario luego se da de baja en la configuración del dispositivo o desinstala la app.                                        |
| Mensaje 2  | El servicio push acepta el mensaje pero el dispositivo no lo recibe. OneSignal reporta "Delivered" porque el servicio push aún no ha rechazado el token. |
| Mensaje 3  | El servicio push rechaza el token. OneSignal marca la suscripción como **Unsubscribed**.                                                                 |
| Mensaje 4+ | OneSignal no intenta entrega a esta suscripción.                                                                                                         |

Usa [Event Streams](./event-streams) para detectar cancelaciones de suscripción en tiempo real al enviar mensajes.

<Note>
  Si vas largos períodos sin enviar a todos los usuarios, las cancelaciones se acumulan silenciosamente y aparecen como un gran pico cuando reanuces el envío. Envía a todos los usuarios al menos una o dos veces al mes para detectar cancelaciones gradualmente. Ver [FCM expired token FAQ](./fcm-expired-token-faq) para más sobre picos de cancelaciones.
</Note>

<Warning>
  Apple retrasa el reporte de cancelaciones 14+ días. Para proteger la privacidad del usuario, Apple no reporta inmediatamente las desinstalaciones o revocaciones de permisos. Si un usuario abre tu app después de deshabilitar push, OneSignal detecta el cambio instantáneamente vía el SDK. Si el usuario nunca vuelve a abrir la app, puede tomar varias semanas para que Apple reporte el token inválido después de que envíes notificaciones.

  Ver [Apple Forum](https://developer.apple.com/forums/thread/670868) y [Technical Note](https://developer.apple.com/library/archive/technotes/tn2265/_index.html#//apple_ref/doc/uid/DTS40010376-CH1-TNTAG34) para detalles. Usa el dashboard o la API para [eliminar suscripciones antiguas](./delete-users) y mantener tu audiencia limpia.
</Warning>

### Si un usuario desactiva las notificaciones en la configuración de su dispositivo y nunca vuelve a abrir la app, ¿qué sucede?

La suscripción permanece marcada como **Subscribed** en OneSignal hasta que envíes una notificación a ese dispositivo. Después de 2 o más intentos de envío, el servicio push reporta el token como inválido y OneSignal marca la suscripción como **Unsubscribed**. Ver [¿Cuándo se actualizan los estados de suscripción push?](#when-do-push-subscription-statuses-update) arriba para la secuencia completa.

***

## Páginas relacionadas

<Columns cols={2}>
  <Card title="Usuarios" icon="users" href="./users">
    El modelo de usuario de OneSignal, aliases y cómo los usuarios se relacionan con las Suscripciones.
  </Card>

  <Card title="Suscripciones de prueba" icon="flask" href="./test-users">
    Encuentra tu dispositivo y márcalo como suscripción de prueba para facilitar las pruebas.
  </Card>

  <Card title="Eliminar usuarios" icon="trash" href="./delete-users">
    Elimina Suscripciones y datos de usuario por privacidad o limpieza.
  </Card>

  <Card title="Migrar a OneSignal" icon="arrow-right-to-bracket" href="./migrating-to-onesignal">
    Importa tokens push, emails y números de teléfono de otro proveedor.
  </Card>
</Columns>
