> ## 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.

# Assinaturas

> Gerencie Assinaturas em push móvel, push web, email e SMS no OneSignal. Abrange propriedades, status e como atualizá-las ou migrá-las.

## Visão geral

Uma **Assinatura** representa um canal específico pelo qual um usuário pode receber mensagens—como um endereço de email, número de telefone ou dispositivo. O OneSignal suporta quatro tipos de Assinaturas:

| Tipo de Assinatura | Pode receber                                                |
| ------------------ | ----------------------------------------------------------- |
| **Email**          | Mensagens de email                                          |
| **SMS**            | Mensagens SMS, MMS e RCS                                    |
| **Web Push**       | Notificações push web                                       |
| **Mobile**         | Notificações push móvel, mensagens in-app e Live Activities |

Cada usuário pode ter múltiplas Assinaturas. Use o [ID Externo](./users#external-id) para identificar o usuário em todas as Assinaturas.

<Frame caption="Dashboard OneSignal Audience > página Subscriptions. Mostra múltiplas Assinaturas associadas a um único usuário via ID Externo.">
  <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>

Na imagem acima, "userA" tem 5 Assinaturas:

1. **Mobile** (iOS) criada após instalar o app iOS. Chame `OneSignal.login` para definir o ID Externo e vincular a Assinatura ao usuário.
2. **SMS** criada após o número de telefone ser fornecido dentro do app iOS. Veja [Assinaturas SMS](#sms-subscriptions) abaixo para detalhes.
3. **Web Push** criada após se inscrever para push no website. Pode receber notificações push.
4. **Email** criada após o endereço de email ser fornecido. Para envio de mensagens de email.
5. **Mobile** (Android) criada após instalar o app Android. Pode receber notificações push, mensagens in-app e live activities.

<Note>
  Um usuário pode ter no máximo 20 Assinaturas. Se uma 21ª for adicionada, o OneSignal remove o ID Externo da Assinatura mais antiga (com base na última sessão) e atribui um novo OneSignal ID—efetivamente criando um novo usuário anônimo para a Assinatura inativa.

  No entanto, o OneSignal garante que pelo menos 3 Assinaturas de Email e 3 de SMS (se aplicável) sejam mantidas.

  Veja [Users](./users) para detalhes.
</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>

***

## Propriedades da Assinatura

Cada Assinatura tem as seguintes propriedades:

|       Propriedade       | Descrição                                                                                                                                                                                                                                                                                                                                                   |
| :---------------------: | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|       **Channel**       | Tipo de Assinatura: `Email`, `SMS` ou `Push`. Push pode ser Mobile (iOS, Android, etc.) ou Web. Apenas Assinaturas Mobile Push suportam mensagens in-app.                                                                                                                                                                                                   |
| **Subscription Status** | Indica se a Assinatura pode receber mensagens. Veja [Status de assinatura](#subscription-statuses) para mais detalhes.                                                                                                                                                                                                                                      |
|     **Last Session**    | Timestamp da última sessão rastreada pelo OneSignal SDK. Para Email/SMS, é baseado na Assinatura push mais recente.                                                                                                                                                                                                                                         |
|    **Usage Duration**   | Tempo total (em segundos) que a Assinatura esteve ativa no app ou site rastreado pelo OneSignal SDK. Apenas rastreado quando a sessão excede 60s.                                                                                                                                                                                                           |
|       **Sessions**      | Contagem de quantas vezes o app/site foi aberto. Uma nova sessão começa após 30+ segundos fora de foco.                                                                                                                                                                                                                                                     |
|    **First Session**    | Timestamp de quando a primeira Assinatura do Usuário foi criada.                                                                                                                                                                                                                                                                                            |
|      **IP Address**     | Localização de rede ao usar SDKs OneSignal. Não coletado na UE. Veja [Tratamento de Dados Pessoais](./handling-personal-data).                                                                                                                                                                                                                              |
|   **Subscription ID**   | UUID representando a Assinatura específica. Usado para identificar a Assinatura.                                                                                                                                                                                                                                                                            |
|     **OneSignal ID**    | UUID representando o Usuário. Veja [Users](./users).                                                                                                                                                                                                                                                                                                        |
|     **External ID**     | Seu ID de usuário personalizado. Ajuda a vincular múltiplas Assinaturas ao mesmo usuário.                                                                                                                                                                                                                                                                   |
|        **Device**       | O modelo do dispositivo com o qual a Assinatura foi criada. Por exemplo, `armv81` para navegadores web push são dispositivos Android.                                                                                                                                                                                                                       |
|        **Email**        | Definido apenas para Assinaturas de Email.                                                                                                                                                                                                                                                                                                                  |
|     **Phone Number**    | Definido apenas para Assinaturas SMS. Deve estar no [formato E.164](https://en.wikipedia.org/wiki/E.164).                                                                                                                                                                                                                                                   |
|     **App Version**     | Do SDK: Android `versionCode`, iOS `CFBundleShortVersionString`.                                                                                                                                                                                                                                                                                            |
|     **SDK Version**     | Versão do OneSignal SDK utilizado. Veja [GitHub > SDKs (selecione seu SDK) > Releases](https://github.com/OneSignal/sdks).                                                                                                                                                                                                                                  |
|     **Timezone ID**     | Do dispositivo no momento da última interação.                                                                                                                                                                                                                                                                                                              |
|       **Country**       | Derivado do endereço IP.                                                                                                                                                                                                                                                                                                                                    |
|    **Location Point**   | Latitude/longitude se o rastreamento de localização estiver habilitado. Veja [Notificações acionadas por localização](./location-triggered-event).                                                                                                                                                                                                          |
|    **Language Code**    | Do dispositivo no momento da criação da Assinatura. Veja [Mensagens em múltiplos idiomas](./multi-language-messaging).                                                                                                                                                                                                                                      |
|         **Tags**        | Metadados personalizados de chave-valor. Veja [Tags](./add-user-data-tags).                                                                                                                                                                                                                                                                                 |
|      **Push Token**     | Token da plataforma usado para entrega push (por exemplo, APNS ou FCM). Apenas para Assinaturas Push.<br />- **Formato de token iOS Push APNS**: 64 caracteres, apenas caracteres hexadecimais (0-9,a-f).<br />- **Formato de token Android Push FCM**: Tipicamente 163 caracteres, caracteres alfanuméricos, pode conter hifens, dois-pontos e sublinhado. |
|        **Rooted**       | Indica se o dispositivo Android tem root (jailbreak).                                                                                                                                                                                                                                                                                                       |

### Status de assinatura

Geralmente, as Assinaturas podem receber mensagens (**Subscribed**) ou não podem (**Unsubscribed**). Os detalhes variam por canal:

| Status               | Mobile                                                                                                                                                                              | Web Push                                                                                                                   | Email                                                                                                                                                                                                 | SMS                                                                                             |
| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| **Subscribed**       | Usuário concedeu permissão de push. Com [iOS Provisional push](./ios-provisional-push-notifications), todas as Assinaturas iOS começam como Subscribed.                             | Usuário clicou em "Permitir" no prompt de permissão do navegador.                                                          | Endereço de email é válido e o usuário consentiu.                                                                                                                                                     | Número de telefone é válido e o usuário consentiu.                                              |
| **Unsubscribed**     | Não pode receber push, mas **ainda pode receber mensagens in-app**. Veja [Tratamento de desinstalações e tokens inválidos](#handling-uninstalls-unsubscribes--invalid-push-tokens). | Não pode receber push. Veja [Tratamento de cancelamentos e tokens inválidos](#handling-unsubscribes--invalid-push-tokens). | Usuário optou por sair via [link de cancelamento de inscrição](./unsubscribe-links-email-subscriptions). Pode ser [ignorado](./email-messaging#send-to-unsubscribed-users) para emails transacionais. | Usuário respondeu "STOP" ou outra [palavra-chave de opt-out](./sms-consent-keyword-management). |
| **Never Subscribed** | Usuário nunca foi solicitado ou nunca concedeu permissão.                                                                                                                           | Usuário nunca foi solicitado ou bloqueou o prompt.                                                                         | N/A                                                                                                                                                                                                   | N/A                                                                                             |

<Info>
  Na API, `invalid_identifier: true` significa unsubscribed. Verifique `notification_types` para mais detalhes.
</Info>

***

### `notification_types`

Indica a capacidade da Assinatura de receber mensagens, incluindo razões para falhas. Atualizado automaticamente via SDKs frontend ou manualmente via API. Visualizável via [View User API](/reference/view-user) ou [Export CSV](/reference/csv-export).

<Accordion title="Definições de Notification Types." icon="circle-chevron-down">
  `1` ou número positivo = Subscribed.

  * A Assinatura pode receber mensagens neste canal.
  * Pode ser usado com a propriedade `enabled` se você estiver habilitando mensagens em nome do usuário. Para Assinaturas push, um `token` válido ainda deve ser definido para receber notificações push. Veja nossa documentação de configuração do SDK para detalhes.

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

  * A Assinatura ainda não se inscreveu no canal.

  `-2` = Unsubscribed.

  * A Assinatura não pode receber mensagens neste canal.
  * Pode ser usado com a propriedade `enabled` definida como `false` se você estiver desativando mensagens em nome do usuário. Valor recomendado ao desativar permissões de mensagem.
  * Definido automaticamente quando o usuário cancela a inscrição.

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

  Adicione ou atualize a [Android Support Library](https://developers.google.com/android/) do seu app.

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

  * Verifique o logcat. Veja [Getting a Debug Log](./capturing-a-debug-log).
  * Atualize sua [Google Play Services Library](https://developers.google.com/android/) no seu app e verifique o logcat do app para erros do Google Play Services. Veja [Getting a Debug Log](./capturing-a-debug-log).

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

  * O FCMv1 Sender ID não corresponde ao original ao qual este `token` pertence. Verifique o logcat do app. Veja [Getting a Debug Log](./capturing-a-debug-log).

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

  * Atualize ou habilite o app Google Play Services no dispositivo.

  `-10` = Not Subscribed.

  * Assinatura Push desinstalou o app ou cancelou inscrição nas configurações do dispositivo.
  * Web push bloqueou notificações, limpou todos os dados e workers.

  `-13` = iOS `missing_push_capability`.

  * Revise a documentação de configuração do SDK para garantir que todas as etapas sejam implementadas. Veja [Channel setup](./channel-setup).

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

  * O dispositivo está tendo um problema ao conectar ao APNS. Verifique o guia [Troubleshooting iOS](./mobile-troubleshooting) e [Getting a Debug Log](./capturing-a-debug-log).

  `-15` = iOS `Simulator Error`.

  * O iOS Simulator requer iOS 16.4+. Use um simulador ou dispositivo diferente.

  `-18` = Never Prompted.

  * A Assinatura nunca foi solicitada a se inscrever. Isso rastreia apenas o prompt de permissão obrigatório e não inclui mensagens in-app.

  `-19` = Prompted But Never Answered.

  * A Assinatura foi solicitada mas não forneceu uma resposta.

  `-20`, `-21` = temp\_web\_record. Web, permissão `pushSubscriptionchange` revogada

  `-22` = Manually Unsubscribed via dashboard.

  * Permissão foi revogada.

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

  * Veja [Web SDK troubleshooting](./troubleshooting-web-push).

  `-31` = Disabled via REST API.

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

***

## Assinaturas Mobile

Assinaturas Mobile representam dispositivos iOS, Android, Huawei ou Amazon e suportam:

* Notificações push
* Mensagens in-app
* Live Activities

Elas são criadas automaticamente quando um usuário instala e abre seu app com o OneSignal SDK.

<Note>
  Cada Assinatura mobile está vinculada ao dispositivo e token push com o qual foi criada. Se seu app for desinstalado e reinstalado no mesmo dispositivo, uma nova Assinatura será gerada.

  Chame [`OneSignal.login`](./mobile-sdk-reference#login-external-id) cada vez que o usuário abrir o app para garantir que o [ID Externo](./users#external-id) seja definido e a Assinatura seja vinculada ao usuário.
</Note>

### Atualizando Assinaturas mobile

Atualize as propriedades de Assinatura Mobile usando o [OneSignal mobile SDK](./mobile-sdk-reference).

* [Solicitar permissões push](./prompt-for-push-permissions) e [observar mudanças de permissão/Assinatura](./mobile-sdk-reference#addobserver-push-subscription-changes)
* [Fazer login de usuários](./mobile-sdk-reference#login-external-id) para definir ID Externo e Aliases
* Adicionar [Tags](./add-user-data-tags)
* Definir [Idioma](./multi-language-messaging)

Você pode atualizar tags, idioma e algumas outras propriedades via recurso [CSV Import](./import).

Assinaturas Mobile também podem ser criadas e atualizadas via APIs [Users](/reference/create-user) e [Subscriptions](/reference/create-subscription), mas o mobile SDK é recomendado para a maioria dos casos de uso.

### Tratamento de desinstalações, cancelamentos e tokens push inválidos

Assinaturas Mobile param de receber notificações push se o usuário:

* Desinstalar o app
* Desabilitar push nas configurações do dispositivo e nunca reabrir o app
* [Token push expirar](./fcm-expired-token-faq)

Nesses casos, o status da Assinatura será definido como **Unsubscribed** ao enviar notificações push. Veja abaixo [Quando os status de assinatura push são atualizados?](#when-do-push-subscription-statuses-update) para mais detalhes.

* Se o usuário reinstalar o app no mesmo dispositivo ou em um novo dispositivo, uma nova Assinatura será criada e ele precisará se reinscrever para receber mensagens.
* Se o usuário reabilitar push nas configurações do dispositivo, o status da Assinatura será definido como **Subscribed** e um token push será atualizado quando ele abrir o app.
* Se o token push expirar, o status da Assinatura e o novo token push serão atualizados quando o usuário abrir o app no mesmo dispositivo.

Rastreie mudanças via:

* [Event Streams](./event-streams) - detectar cancelamentos ao enviar push
* [Relatórios de push](./push-notification-message-reports) - detectar cancelamentos ao enviar push
* Use o [listener de mudança de Assinatura](./mobile-sdk-reference#addobserver-push-subscription-changes) do SDK - detectar cancelamentos quando o usuário desabilita push nas configurações do dispositivo e depois abre o app

***

## Assinaturas Web push

Assinaturas Web push estão vinculadas a um dispositivo específico, navegador e perfil do navegador. Um usuário que se inscreve no Chrome desktop não receberá push no Chrome mobile a menos que também se inscreva no seu website a partir daquele dispositivo móvel—criando uma Assinatura web push separada.

Novas Assinaturas web push são criadas nestes cenários:

* O usuário se inscreve no seu website clicando em "Permitir" no [prompt de permissão nativo](./permission-requests) em nível de sistema do navegador. Isso gera um token push único e ID de Assinatura.
* O usuário limpa dados do navegador (histórico, cache, cookies, armazenamento local) e revisita seu site. Isso resulta na criação de um novo ID de Assinatura único.

<Note>
  IDs de Assinatura Web push nunca mudarão. No entanto, novos IDs de Assinatura serão criados se o usuário limpar dados do navegador e retornar ao site ou se inscrever em um navegador/perfil de navegador diferente.

  Chame [`OneSignal.login`](./web-sdk-reference#login-external-id) cada vez que o usuário abrir o site ou dentro do [listener de mudança de Assinatura](./web-sdk-reference#addeventlistener-push-subscription-changes) para garantir que o [ID Externo](./users#external-id) seja definido e a Assinatura seja vinculada ao usuário.
</Note>

### Atualizando Assinaturas web push

Atualize as propriedades de Assinatura web push usando o [OneSignal web SDK](./web-sdk-reference).

* [Solicitar permissões push](./permission-requests) e [observar mudanças de permissão/Assinatura](./web-sdk-reference#addeventlistener-push-subscription-changes)
* [Fazer login de usuários](./web-sdk-reference#login-external-id) para definir ID Externo e Aliases
* Adicionar [Tags](./add-user-data-tags)
* Definir [Idioma](./multi-language-messaging)

Você pode atualizar tags, idioma e algumas outras propriedades via recurso [CSV Import](./import).

Assinaturas Web push não podem ser criadas via REST API. Você pode atualizá-las com as APIs [Users](/reference/update-user) e [Subscriptions](/reference/update-subscription), mas o web SDK é recomendado para a maioria dos casos de uso.

### Tratamento de cancelamentos e tokens push inválidos

Assinaturas Web push param de receber notificações push se o usuário:

* Limpar dados do navegador (histórico, cache, cookies, armazenamento local)
* Desabilitar push nas configurações do sistema do navegador
* [Token push expirar](./fcm-expired-token-faq)

Nesses casos, o status da Assinatura será definido como **Unsubscribed** ao enviar notificações push. Veja abaixo [Quando os status de assinatura push são atualizados?](#when-do-push-subscription-statuses-update) para mais detalhes.

* Se o usuário retornar ao site após limpar dados do navegador, uma nova Assinatura será criada e ele será automaticamente reinscrito para receber mensagens se você tiver [auto-resubscribe habilitado](./web-push-setup#auto-resubscribe).
* Se o usuário reabilitar push nas configurações do navegador, o status da Assinatura será definido como **Subscribed** quando ele retornar ao site.
* Se o token push expirar, o status da Assinatura e o novo token push serão atualizados quando o usuário retornar ao site.

<Warning>
  O Chromium publicou um [post no blog](https://blog.chromium.org/2025/10/automatic-notification-permission.html?m=1) em outubro de 2025, sobre uma mudança que **revogará automaticamente permissões push** para usuários com baixo engajamento no site que estão recebendo um alto volume de notificações. O limite para quando um usuário é considerado com uma [pontuação de engajamento baixa](https://www.chromium.org/developers/design-documents/site-engagement/), parece ser cerca de 30 dias de inatividade. Quando revogada, o usuário final deve receber uma notificação diretamente do Chrome.
</Warning>

Rastreie mudanças via:

* [Event Streams](./event-streams) - detectar cancelamentos ao enviar push
* [Relatórios de push](./push-notification-message-reports) - detectar cancelamentos ao enviar push
* Use o [listener de mudança de Assinatura](./web-sdk-reference#addeventlistener-push-subscription-changes) do SDK - detectar cancelamentos quando o usuário desabilita push e depois retorna ao site

***

## Assinaturas Email

Assinaturas Email são baseadas no endereço de email e usadas apenas para entrega de email. Isso é diferente de definir uma [Tag](./add-user-data-tags).

Crie Assinaturas Email via:

1. Método `addEmail` do SDK ou [prompt de email](./permission-requests) - use esses métodos após chamar `OneSignal.login` para definir o ID Externo e vincular a Assinatura ao usuário.
2. [API Create user](/reference/create-user) ou [API Create email](/reference/email)
3. [Importador CSV](./import) do Dashboard ou adicionar endereços de email manualmente

<Note>
  Emails são únicos por app. Deletar e readicionar o mesmo email cria um novo ID de Assinatura.

  É recomendado incluir o `external_id` ao criar Assinaturas de Email para vinculá-las a um [User](./users).
</Note>

### Gerenciando Assinaturas email

**Vincular a um usuário**

Certifique-se de definir o `external_id` ao criar Assinaturas de Email para vinculá-las a um [User](./users).

* Usando o SDK, chame o método `login` antes de chamar `addEmail` para definir o `external_id` e vincular a Assinatura de email ao usuário.
* Usando o Importador CSV ou REST API, defina o identificador `external_id` com o email.

**Status de assinatura**

Assinaturas de Email recém-criadas serão automaticamente definidas como **Subscribed** a menos que especificado de outra forma.

Assinaturas Email podem ficar unsubscribed quando:

* Ao enviar emails, o usuário opta por sair via [Link de cancelamento de inscrição](./unsubscribe-links-email-subscriptions)
* Definir `enabled` como `false` via API
* Usar o dashboard para cancelar inscrição da Assinatura via botão de opções
  Assinaturas Email podem ficar resubscribed via:
* Definir `enabled` como `true` via API
* Usar o dashboard para inscrever a Assinatura via botão de opções

Se um usuário cancelar inscrição de emails, você pode mantê-lo como unsubscribed mas enviar-lhe emails importantes [enviando para emails com inscrição cancelada](./email-messaging#send-to-unsubscribed-users).

***

## Assinaturas SMS

Assinaturas SMS estão vinculadas a [números de telefone formatados em E.164](https://en.wikipedia.org/wiki/E.164) (por exemplo, `+14155551234`).

Crie Assinaturas SMS via:

1. Método `addSms` do SDK ou [prompt SMS](./permission-requests) — chame `OneSignal.login` primeiro para definir o ID Externo e vincular a Assinatura ao usuário.
2. API [Create user](/reference/create-user) ou [Create SMS](/reference/sms)
3. [Importador CSV](./import) do Dashboard

<Note>
  Números de telefone são únicos por app. Readicionar após exclusão cria um novo ID de Assinatura.

  Inclua o `external_id` ao criar Assinaturas SMS para vinculá-las a um [User](./users).
</Note>

### Gerenciando Assinaturas SMS

**Vincular a um usuário**

Defina o `external_id` ao criar Assinaturas SMS para vinculá-las a um [User](./users).

* Usando o SDK, chame o método `login` antes de chamar `addSms` para definir o `external_id` e vincular a Assinatura SMS ao usuário.
* Usando o Importador CSV ou REST API, defina o identificador `external_id` com o número de telefone.

**Status de assinatura**

Assinaturas SMS recém-criadas são automaticamente definidas como **Subscribed** a menos que especificado de outra forma.

Assinaturas SMS podem ficar unsubscribed quando:

* O usuário responde com "STOP" ou outra [palavra-chave de opt-out](./sms-consent-keyword-management)
* Você define `enabled` como `false` via API
* Você cancela a inscrição da Assinatura no dashboard via botão de opções

Assinaturas SMS podem ficar resubscribed quando:

* O usuário responde com "START" ou outra [palavra-chave de opt-in](./sms-consent-keyword-management)
* Você define `enabled` como `true` via API
* Você reinscreve a Assinatura no dashboard via botão de opções

<Warning>
  Reinscrever uma Assinatura SMS sem o consentimento do usuário viola as regras de conformidade das operadoras (TCPA, CTIA) e pode resultar em filtragem por operadora ou suspensão da conta.
</Warning>

***

## Importando ou migrando Assinaturas

Importe tokens push, endereços de email e números de telefone de outro provedor usando:

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

<Card title="Migrando para o OneSignal" icon="arrow-right-to-bracket" href="./migrating-to-onesignal">
  Importe tokens push, emails e números de telefone de outro provedor.
</Card>

***

## Deletar Assinaturas

Assinaturas podem ser deletadas para:

* Privacidade de dados
* Limpeza de registros inativos

<Card title="Deletar usuários" icon="trash" href="./delete-users">
  Remova Assinaturas e dados do usuário por privacidade ou limpeza.
</Card>

<Note>
  Assinaturas sem atividade por 18+ meses são automaticamente deletadas em planos Free.
</Note>

***

## FAQ

### Quando os status de assinatura push são atualizados?

Os status de assinatura push são atualizados por dois mecanismos:

**1. Quando o usuário abre seu app ou site**

O OneSignal SDK verifica se o token push é válido e se as permissões de notificação ainda estão concedidas, e então atualiza o status da assinatura imediatamente.

Por exemplo, se um usuário desabilitar notificações push nas configurações do dispositivo e depois reabrir seu app, o SDK detecta a mudança e marca a assinatura como **Unsubscribed** imediatamente.

Você pode capturar essas mudanças com o Subscription Observer do SDK ([mobile](./mobile-sdk-reference#addobserver-push-subscription-changes) | [web](./web-sdk-reference#addeventlistener-push-subscription-changes)) para sincronizar o status com seu próprio banco de dados.

**2. Quando você envia notificações push**

Se um usuário desinstalar seu app, limpar dados do navegador ou desabilitar push **e nunca retornar**, o OneSignal não pode detectar a mudança até que você envie uma notificação. O serviço push (FCM, APNs, HMS) reporta o token como inválido e o OneSignal marca a assinatura como **Unsubscribed**.

Essa detecção tipicamente leva 2 ou mais mensagens porque o serviço push não rejeita imediatamente um token inválido:

| Envio       | O que acontece                                                                                                                                     |
| ----------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
| Mensagem 1  | Entregue ao dispositivo. O usuário então cancela inscrição nas configurações do dispositivo ou desinstala o app.                                   |
| Mensagem 2  | O serviço push aceita a mensagem mas o dispositivo não a recebe. O OneSignal reporta "Delivered" porque o serviço push ainda não rejeitou o token. |
| Mensagem 3  | O serviço push rejeita o token. O OneSignal marca a assinatura como **Unsubscribed**.                                                              |
| Mensagem 4+ | O OneSignal não tenta a entrega para esta assinatura.                                                                                              |

Use [Event Streams](./event-streams) para detectar cancelamentos em tempo real ao enviar mensagens.

<Note>
  Se você ficar longos períodos sem enviar para todos os usuários, cancelamentos se acumulam silenciosamente e aparecem como um grande pico quando você retoma o envio. Envie para todos os usuários pelo menos uma ou duas vezes por mês para detectar cancelamentos gradualmente. Veja [FCM expired token FAQ](./fcm-expired-token-faq) para mais informações sobre picos de cancelamento.
</Note>

<Warning>
  A Apple atrasa o reporte de cancelamentos em 14+ dias. Para proteger a privacidade do usuário, a Apple não reporta imediatamente desinstalações ou revogações de permissão. Se um usuário abrir seu app após desabilitar push, o OneSignal detecta a mudança instantaneamente via SDK. Se o usuário nunca mais abrir o app, pode levar várias semanas para a Apple reportar o token inválido após você enviar notificações.

  Veja o [Apple Forum](https://developer.apple.com/forums/thread/670868) e a [Technical Note](https://developer.apple.com/library/archive/technotes/tn2265/_index.html#//apple_ref/doc/uid/DTS40010376-CH1-TNTAG34) para detalhes. Use o dashboard ou API para [deletar assinaturas antigas](./delete-users) para manter sua audiência limpa.
</Warning>

### Se um usuário desligar notificações nas configurações do dispositivo e nunca abrir o app novamente, o que acontece?

A assinatura permanece marcada como **Subscribed** no OneSignal até que você envie uma notificação para aquele dispositivo. Após 2 ou mais tentativas de envio, o serviço push reporta o token como inválido e o OneSignal marca a assinatura como **Unsubscribed**. Veja [Quando os status de assinatura push são atualizados?](#when-do-push-subscription-statuses-update) acima para a sequência completa.

***

## Páginas relacionadas

<Columns cols={2}>
  <Card title="Usuários" icon="users" href="./users">
    O modelo de usuário do OneSignal, aliases e como os usuários se relacionam com as Assinaturas.
  </Card>

  <Card title="Assinaturas de teste" icon="flask" href="./test-users">
    Encontre seu dispositivo e marque-o como uma assinatura de teste para facilitar os testes.
  </Card>

  <Card title="Deletar usuários" icon="trash" href="./delete-users">
    Remova Assinaturas e dados do usuário por privacidade ou limpeza.
  </Card>

  <Card title="Migrando para o OneSignal" icon="arrow-right-to-bracket" href="./migrating-to-onesignal">
    Importe tokens push, emails e números de telefone de outro provedor.
  </Card>
</Columns>
