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

# Abonnements

> Comprenez et gérez les Abonnements utilisateur sur tous les canaux comme le push mobile, le push web, l'e-mail et le SMS. Découvrez comment fonctionnent les Abonnements, leurs propriétés et comment les mettre à jour ou les migrer.

## Aperçu

Un **Abonnement** représente un canal spécifique par lequel un utilisateur peut recevoir des messages, comme une adresse e-mail, un numéro de téléphone ou un appareil. OneSignal prend en charge quatre types d'Abonnements :

| Type d'Abonnement | Peut recevoir                                                  |
| ----------------- | -------------------------------------------------------------- |
| **E-mail**        | Messages e-mail                                                |
| **SMS**           | Messages SMS, MMS et RCS                                       |
| **Web Push**      | Notifications push web                                         |
| **Mobile**        | Notifications push mobiles, messages in-app et Live Activities |

Chaque utilisateur peut avoir plusieurs Abonnements. Utilisez l'[ID externe](./users#external-id) pour identifier l'utilisateur sur tous les Abonnements.

<Frame caption="Page Audience > Abonnements du tableau de bord OneSignal. Affiche plusieurs Abonnements associés à un seul utilisateur via l'ID externe.">
  <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>

Dans l'image ci-dessus, "userA" a 5 Abonnements :

1. **Mobile** (iOS) créé après l'installation de l'application iOS. Appelez `OneSignal.login` pour définir l'ID externe et lier l'Abonnement à l'utilisateur.
2. **SMS** créé après la fourniture du numéro de téléphone dans l'application iOS. Voir [Abonnements SMS](#sms-subscriptions) ci-dessous pour plus de détails.
3. **Web Push** créé après l'abonnement aux notifications push sur le site web. Peut recevoir des notifications push.
4. **E-mail** créé après la fourniture de l'adresse e-mail. Pour envoyer des messages e-mail.
5. **Mobile** (Android) créé après l'installation de l'application Android. Peut recevoir des notifications push, des messages in-app et des live activities.

<Note>
  Un utilisateur peut avoir un maximum de 20 Abonnements. Si un 21e est ajouté, OneSignal supprime l'ID externe de l'Abonnement le plus ancien (basé sur la dernière session) et lui attribue un nouvel ID OneSignal, créant effectivement un nouvel utilisateur anonyme pour l'Abonnement inactif.

  Cependant, OneSignal garantit qu'au moins 3 Abonnements E-mail et 3 Abonnements SMS (le cas échéant) sont conservés.

  Voir [Utilisateurs](./users) pour plus de détails.
</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>

***

## Propriétés des Abonnements

Chaque Abonnement possède les propriétés suivantes :

|           Propriété          | Description                                                                                                                                                                                                                                                                                                                                                                                              |
| :--------------------------: | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|           **Canal**          | Type d'Abonnement : `Email`, `SMS` ou `Push`. Push peut être Mobile (iOS, Android, etc.) ou Web. Seuls les Abonnements Push Mobile prennent en charge les messages in-app.                                                                                                                                                                                                                               |
|    **Statut d'Abonnement**   | Indique si l'Abonnement peut recevoir des messages. Voir [Statuts d'abonnement](#subscription-statuses) pour plus de détails.                                                                                                                                                                                                                                                                            |
|     **Dernière Session**     | Horodatage de la dernière session suivie par le SDK OneSignal. Pour E-mail/SMS, elle est basée sur l'Abonnement push le plus récent.                                                                                                                                                                                                                                                                     |
|    **Durée d'Utilisation**   | Temps total (en secondes) pendant lequel l'Abonnement était actif sur l'application ou le site suivi par le SDK OneSignal. Suivi uniquement lorsque la session dépasse 60s.                                                                                                                                                                                                                              |
|         **Sessions**         | Nombre de fois où l'application/le site a été ouvert. Une nouvelle session commence après plus de 30 secondes hors focus.                                                                                                                                                                                                                                                                                |
|     **Première Session**     | Horodatage de création du premier Abonnement pour l'Utilisateur.                                                                                                                                                                                                                                                                                                                                         |
|        **Adresse IP**        | Localisation réseau lors de l'utilisation des SDK OneSignal. Non collectée dans l'UE. Voir [Gestion des données personnelles](./handling-personal-data).                                                                                                                                                                                                                                                 |
|      **ID d'Abonnement**     | UUID représentant l'Abonnement spécifique. Utilisé pour identifier l'Abonnement.                                                                                                                                                                                                                                                                                                                         |
|       **ID OneSignal**       | UUID représentant l'Utilisateur. Voir [Utilisateurs](./users).                                                                                                                                                                                                                                                                                                                                           |
|        **ID Externe**        | Votre ID utilisateur personnalisé. Aide à lier plusieurs Abonnements au même utilisateur.                                                                                                                                                                                                                                                                                                                |
|         **Appareil**         | Le modèle d'appareil avec lequel l'Abonnement a été créé. Par exemple, `armv81` pour les navigateurs web push sont des appareils Android.                                                                                                                                                                                                                                                                |
|          **E-mail**          | Défini uniquement pour les Abonnements E-mail.                                                                                                                                                                                                                                                                                                                                                           |
|    **Numéro de Téléphone**   | Défini uniquement pour les Abonnements SMS. Doit être au [format E.164](https://en.wikipedia.org/wiki/E.164).                                                                                                                                                                                                                                                                                            |
| **Version de l'Application** | Du SDK : Android `versionCode`, iOS `CFBundleShortVersionString`.                                                                                                                                                                                                                                                                                                                                        |
|      **Version du SDK**      | Version du SDK OneSignal utilisée. Voir [GitHub > SDKs (sélectionnez votre SDK) > Releases](https://github.com/OneSignal/sdks).                                                                                                                                                                                                                                                                          |
|   **ID de Fuseau Horaire**   | De l'appareil au moment de la dernière interaction.                                                                                                                                                                                                                                                                                                                                                      |
|           **Pays**           | Dérivé de l'adresse IP.                                                                                                                                                                                                                                                                                                                                                                                  |
|   **Point de Localisation**  | Latitude/longitude si le suivi de localisation est activé. Voir [Notifications déclenchées par la localisation](./location-triggered-event).                                                                                                                                                                                                                                                             |
|      **Code de Langue**      | De l'appareil au moment de la création de l'Abonnement. Voir [Messagerie multilingue](./multi-language-messaging).                                                                                                                                                                                                                                                                                       |
|           **Tags**           | Métadonnées clé-valeur personnalisées. Voir [Tags](./add-user-data-tags).                                                                                                                                                                                                                                                                                                                                |
|        **Jeton Push**        | Jeton de plateforme utilisé pour la livraison push (par ex., APNS ou FCM). Uniquement pour les Abonnements Push.<br />- **Format de jeton APNS Push iOS** : 64 caractères, caractères hexadécimaux uniquement (0-9,a-f).<br />- **Format de jeton FCM Push Android** : Généralement 163 caractères, caractères alphanumériques, peut contenir des tirets, des deux-points et des traits de soulignement. |
|           **Rooté**          | Indique si l'appareil Android est rooté (jailbreaké).                                                                                                                                                                                                                                                                                                                                                    |

### Statuts d'abonnement

Généralement, les Abonnements peuvent soit recevoir des messages (**Abonné**) soit ne pas pouvoir recevoir de messages (**Désabonné**). Les détails varient selon le canal :

| Statut            | Mobile                                                                                                                                                                                              | Web Push                                                                                                                          | E-mail                                                                                                                                                                                                       | SMS                                                                                                      |
| ----------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------- |
| **Abonné**        | L'utilisateur a accordé la permission push. Avec [le push provisionnel iOS](./ios-provisional-push-notifications), tous les Abonnements iOS commencent comme Abonnés.                               | L'utilisateur a cliqué sur "Autoriser" dans le prompt de permission du navigateur.                                                | L'adresse e-mail est valide et l'utilisateur a donné son consentement.                                                                                                                                       | Le numéro de téléphone est valide et l'utilisateur a donné son consentement.                             |
| **Désabonné**     | Ne peut pas recevoir de push, mais **peut toujours recevoir des messages in-app**. Voir [Gestion des désinstallations et jetons invalides](#handling-uninstalls-unsubscribes--invalid-push-tokens). | Ne peut pas recevoir de push. Voir [Gestion des désabonnements et jetons invalides](#handling-unsubscribes--invalid-push-tokens). | L'utilisateur s'est désabonné via le [lien de désabonnement](./unsubscribe-links-email-subscriptions). Peut être [contourné](./email-messaging#send-to-unsubscribed-users) pour les e-mails transactionnels. | L'utilisateur a répondu "STOP" ou un autre [mot-clé de désabonnement](./sms-consent-keyword-management). |
| **Jamais Abonné** | L'utilisateur n'a jamais été invité ou n'a jamais accordé la permission.                                                                                                                            | L'utilisateur n'a jamais été invité ou a bloqué le prompt.                                                                        | N/A                                                                                                                                                                                                          | N/A                                                                                                      |

<Info>
  En utilisant notre API, `invalid_identifier: true` signifie désabonné. Vérifiez `notification_types` pour plus de détails.
</Info>

***

### `notification_types`

Indique la capacité de l'Abonnement à recevoir des messages, y compris les raisons des échecs. Mis à jour automatiquement via nos SDK frontend ou manuellement via l'API. Consultable via l'[API View User](/reference/view-user) ou [Export CSV](/reference/csv-export).

<Accordion title="Définitions des types de notification." icon="circle-chevron-down">
  `1` ou nombre positif = Abonné.

  * L'Abonnement peut recevoir des messages sur ce canal.
  * Peut être utilisé avec la propriété `enabled` si vous activez les messages au nom de l'utilisateur. Pour les Abonnements push, un `token` valide doit toujours être défini pour recevoir les notifications push. Consultez nos docs de configuration SDK pour plus de détails.

  `0`, `-99` = Jamais Abonné.

  * L'Abonnement ne s'est pas encore abonné au canal.

  `-2` = Désabonné.

  * L'Abonnement ne peut pas recevoir de messages sur ce canal.
  * Peut être utilisé avec la propriété `enabled` définie sur `false` si vous désactivez les messages au nom de l'utilisateur. Valeur recommandée lors de la désactivation des autorisations de message.
  * Défini automatiquement lorsque l'utilisateur se désabonne.

  `-3`, `-5` = Android `Erreur de bibliothèque de support`.

  Ajoutez ou mettez à jour la [bibliothèque de support Android](https://developers.google.com/android/) de votre application.

  `-4`, `-8`, `-11`, `-12` = Android `Erreur de bibliothèque Google Play Services`.

  * Vérifiez le logcat. Voir [Obtenir un journal de débogage](./capturing-a-debug-log).
  * Mettez à niveau votre [bibliothèque Google Play Services](https://developers.google.com/android/) dans votre application et vérifiez le logcat de l'application pour les erreurs Google Play Services. Voir [Obtenir un journal de débogage](./capturing-a-debug-log).

  `-6` = Android `Numéro de projet Google invalide`.

  * L'ID d'expéditeur FCMv1 ne correspond pas à l'original auquel ce `token` appartient. Vérifiez le logcat de l'application. Voir [Obtenir un journal de débogage](./capturing-a-debug-log).

  `-7`, `-9` = Android `Application Google Play Services obsolète`

  * Mettez à jour ou activez l'application Google Play Services sur l'appareil.

  `-10` = Non Abonné.

  * L'Abonnement push a désinstallé l'application ou s'est désabonné dans les paramètres de l'appareil.
  * Le push web a bloqué les notifications, effacé toutes les données et les workers.

  `-13` = iOS `missing_push_capability`.

  * Examinez les docs de configuration SDK pour vous assurer que toutes les étapes sont implémentées. Voir [Configuration de canal](./channel-setup).

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

  * L'appareil rencontre un problème de connexion à APNS. Consultez le guide [Dépannage iOS](./mobile-troubleshooting) et [Obtenir un journal de débogage](./capturing-a-debug-log).

  `-15` = iOS `Erreur de simulateur`.

  * Le simulateur iOS nécessite iOS 16.4+. Utilisez un simulateur ou un appareil différent.

  `-18` = Jamais Invité.

  * L'Abonnement n'a jamais été invité à s'abonner. Cela suit uniquement l'invite d'autorisation requise et n'inclut pas les messages in-app.

  `-19` = Invité mais jamais répondu.

  * L'Abonnement a été invité mais n'a pas fourni de réponse.

  `-20`, `-21` = temp\_web\_record. Web, autorisation `pushSubscriptionchange` révoquée

  `-22` = Désabonné manuellement via le tableau de bord.

  * L'autorisation a été révoquée.

  `-23`, `-24` = Web `Erreur de Service Worker`.

  * Voir [Dépannage du SDK Web](./troubleshooting-web-push).

  `-31` = Désactivé via l'API REST.

  `-98` = Abonnement SMS en attente de double opt-in.
</Accordion>

***

## Abonnements mobiles

Les Abonnements mobiles représentent les appareils iOS, Android, Huawei ou Amazon et prennent en charge :

* Les notifications push
* Les messages in-app
* Les Live Activities

Ils sont créés automatiquement lorsqu'un utilisateur installe et ouvre votre application avec le SDK OneSignal.

<Note>
  Chaque Abonnement mobile est lié à l'appareil et au jeton push avec lequel il a été créé. Si votre application est désinstallée puis réinstallée sur le même appareil, un nouvel Abonnement sera généré.

  Appelez [`OneSignal.login`](./mobile-sdk-reference#login-external-id) chaque fois que l'utilisateur ouvre l'application pour vous assurer que l'[External ID](./users#external-id) est défini et que l'Abonnement est lié à l'utilisateur.
</Note>

### Mise à jour des Abonnements mobiles

Il est recommandé de mettre à jour les propriétés des Abonnements mobiles via le [SDK mobile OneSignal](./mobile-sdk-reference).

* [Demander les autorisations push](./prompt-for-push-permissions) et [observer les changements d'autorisation/Abonnement](./mobile-sdk-reference#addobserver-push-subscription-changes)
* [Connecter les utilisateurs](./mobile-sdk-reference#login-external-id) pour définir l'External ID et les Alias
* Ajouter des [Tags](./add-user-data-tags)
* Définir la [Langue](./multi-language-messaging)

Vous pouvez mettre à jour les tags, la langue et d'autres propriétés via la fonctionnalité [Import CSV](./import).

Les Abonnements mobiles peuvent également être créés et mis à jour via les APIs [Users](/reference/create-user) et [Subscriptions](/reference/create-subscription), mais le SDK mobile est recommandé pour la plupart des cas d'utilisation.

### Gestion des désinstallations, désabonnements et jetons push invalides

Les Abonnements mobiles cessent de recevoir des notifications push si l'utilisateur :

* Désinstalle l'application
* Désactive le push dans les paramètres de l'appareil et ne rouvre jamais l'application
* Le [jeton push expire](./fcm-expired-token-faq)

Dans ces cas, le statut de l'Abonnement sera défini sur **Désabonné** lors de l'envoi de notifications push. Voir ci-dessous [Quand les statuts d'abonnement push se mettent-ils à jour ?](#when-do-push-subscription-statuses-update) pour plus de détails.

* Si l'utilisateur réinstalle l'application sur le même appareil ou sur un nouvel appareil, un nouvel Abonnement sera créé et il devra se réabonner pour recevoir des messages.
* Si l'utilisateur réactive le push dans les paramètres de l'appareil, le statut de l'Abonnement sera défini sur **Abonné** et un jeton push sera mis à jour lorsqu'il ouvrira l'application.
* Si le jeton push expire, le statut de l'Abonnement et le nouveau jeton push seront mis à jour lorsque l'utilisateur ouvrira l'application sur le même appareil.

Suivez les changements via :

* [Event Streams](./event-streams) - détecte les désabonnements lors de l'envoi de push
* [Rapports push](./push-notification-message-reports) - détecte les désabonnements lors de l'envoi de push
* Utilisez l'[écouteur de changement d'Abonnement](./mobile-sdk-reference#addobserver-push-subscription-changes) du SDK - détecte les désabonnements lorsque l'utilisateur désactive le push dans les paramètres de l'appareil puis ouvre l'application

***

## Abonnements Web push

Les Abonnements Web push sont liés à un appareil, un navigateur et un profil de navigateur spécifiques. Un utilisateur qui s'abonne sur Chrome desktop ne recevra pas de push sur Chrome mobile à moins qu'il ne s'abonne également à votre site web depuis cet appareil mobile, créant ainsi un Abonnement web push distinct.

De nouveaux Abonnements Web push sont créés dans ces scénarios :

* L'utilisateur s'abonne à votre site web en cliquant sur "Autoriser" sur l'[invite d'autorisation native](./permission-requests) au niveau du système du navigateur. Cela génère un jeton push et un ID d'Abonnement uniques.
* L'utilisateur efface les données du navigateur (historique, cache, cookies, stockage local) et revisite votre site. Cela entraîne la création d'un nouvel ID d'Abonnement unique.

<Note>
  Les ID d'Abonnement Web push ne changeront jamais. Cependant, de nouveaux ID d'Abonnement seront créés si l'utilisateur efface les données du navigateur et retourne sur le site ou s'abonne sur un navigateur/profil de navigateur différent.

  Appelez [`OneSignal.login`](./web-sdk-reference#login-external-id) chaque fois que l'utilisateur ouvre le site ou dans l'[écouteur de changement d'Abonnement](./web-sdk-reference#addeventlistener-push-subscription-changes) pour vous assurer que l'[External ID](./users#external-id) est défini et que l'Abonnement est lié à l'utilisateur.
</Note>

### Mise à jour des Abonnements Web push

Il est recommandé de mettre à jour les propriétés des Abonnements Web push via le [SDK web OneSignal](./web-sdk-reference).

* [Demander les autorisations push](./permission-requests) et [observer les changements d'autorisation/Abonnement](./web-sdk-reference#addeventlistener-push-subscription-changes)
* [Connecter les utilisateurs](./web-sdk-reference#login-external-id) pour définir l'External ID et les Alias
* Ajouter des [Tags](./add-user-data-tags)
* Définir la [Langue](./multi-language-messaging)

Vous pouvez mettre à jour les tags, la langue et d'autres propriétés via la fonctionnalité [Import CSV](./import).

Les Abonnements Web push ne peuvent pas être créés via l'API REST mais peuvent être mis à jour avec les APIs [Users](/reference/update-user) et [Subscriptions](/reference/update-subscription), mais le SDK web est recommandé pour la plupart des cas d'utilisation.

### Gestion des désabonnements et jetons push invalides

Les Abonnements Web push cessent de recevoir des notifications push si l'utilisateur :

* Efface les données du navigateur (historique, cache, cookies, stockage local)
* Désactive le push dans les paramètres système du navigateur
* Le [jeton push expire](./fcm-expired-token-faq)

Dans ces cas, le statut de l'Abonnement sera défini sur **Désabonné** lors de l'envoi de notifications push. Voir ci-dessous [Quand les statuts d'abonnement push se mettent-ils à jour ?](#when-do-push-subscription-statuses-update) pour plus de détails.

* Si l'utilisateur revient sur le site après avoir effacé les données du navigateur, un nouvel Abonnement sera créé et il sera automatiquement réabonné pour recevoir des messages si vous avez [l'auto-réabonnement activé](./web-push-setup#auto-resubscribe).
* Si l'utilisateur réactive le push dans les paramètres du navigateur, le statut de l'Abonnement sera défini sur **Abonné** lorsqu'il reviendra sur le site.
* Si le jeton push expire, le statut de l'Abonnement et le nouveau jeton push seront mis à jour lorsque l'utilisateur reviendra sur le site.

<Warning>
  Chromium a publié un [article de blog](https://blog.chromium.org/2025/10/automatic-notification-permission.html?m=1) en octobre 2025, concernant un changement qui **révoquera automatiquement les autorisations push** pour les utilisateurs ayant un faible engagement sur le site et recevant un volume élevé de notifications. Le seuil à partir duquel un utilisateur est considéré comme ayant un [score d'engagement faible](https://www.chromium.org/developers/design-documents/site-engagement/), semble être d'environ 30 jours d'inactivité. Lorsqu'elle est révoquée, l'utilisateur final devrait recevoir une notification directement de Chrome.
</Warning>

Suivez les changements via :

* [Event Streams](./event-streams) - détecte les désabonnements lors de l'envoi de push
* [Rapports push](./push-notification-message-reports) - détecte les désabonnements lors de l'envoi de push
* Utilisez l'[écouteur de changement d'Abonnement](./web-sdk-reference#addeventlistener-push-subscription-changes) du SDK - détecte les désabonnements lorsque l'utilisateur désactive le push puis revient sur le site

***

## Abonnements Email

Les Abonnements Email sont basés sur l'adresse e-mail et utilisés uniquement pour la livraison d'e-mails. Ceci est différent de la définition d'un [Tag](./add-user-data-tags).

Créez des Abonnements Email via :

1. La méthode SDK `addEmail` ou l'[invite email](./permission-requests) - utilisez ces méthodes après avoir appelé `OneSignal.login` pour définir l'External ID et lier l'Abonnement à l'utilisateur.
2. L'[API Create user](/reference/create-user) ou l'[API Create email](/reference/email)
3. L'[Importateur CSV](./import) du tableau de bord ou ajoutez manuellement des adresses e-mail

<Note>
  Les e-mails sont uniques par application. Supprimer et rajouter le même e-mail crée un nouvel ID d'Abonnement.

  Il est recommandé d'inclure l'`external_id` lors de la création d'Abonnements Email pour les lier à un [User](./users).
</Note>

### Gestion des Abonnements Email

**Lier à un utilisateur**

Assurez-vous de définir l'`external_id` lors de la création d'Abonnements Email pour les lier à un [User](./users).

* En utilisant le SDK, appelez la méthode `login` avant d'appeler `addEmail` pour définir l'`external_id` et lier l'Abonnement email à l'utilisateur.
* En utilisant l'Importateur CSV ou l'API REST, définissez l'identifiant `external_id` avec l'e-mail.

**Statuts d'Abonnement**

Les Abonnements Email nouvellement créés seront automatiquement définis sur **Abonné** sauf indication contraire.

Les Abonnements Email peuvent devenir désabonnés lorsque :

* Lors de l'envoi d'e-mails, l'utilisateur se désabonne via le [lien de désabonnement](./unsubscribe-links-email-subscriptions)
* En définissant `enabled` sur `false` via l'API
* En utilisant le tableau de bord pour désabonner l'Abonnement via le bouton d'options
  Les Abonnements Email peuvent être réabonnés via :
* En définissant `enabled` sur `true` via l'API
* En utilisant le tableau de bord pour abonner l'Abonnement via le bouton d'options

Si un utilisateur se désabonne des e-mails, vous pouvez le garder comme désabonné mais lui envoyer des e-mails importants en [envoyant aux e-mails désabonnés](./email-messaging#send-to-unsubscribed-users).

***

## Abonnements SMS

Les Abonnements SMS sont liés aux [numéros de téléphone au format E.164](https://en.wikipedia.org/wiki/E.164) (par ex., `+14155551234`).

Créés via :

1. La méthode SDK `addSms` ou l'[invite SMS](./permission-requests) — appelez d'abord `OneSignal.login` pour définir l'External ID et lier l'Abonnement à l'utilisateur.
2. L'[API Create user](/reference/create-user) ou l'[API Create SMS](/reference/sms)
3. L'[Importateur CSV](./import) du tableau de bord

<Note>
  Les numéros de téléphone sont uniques par application. Rajouter après suppression crée un nouvel ID d'Abonnement.

  Il est recommandé d'inclure l'`external_id` lors de la création d'Abonnements SMS pour les lier à un [User](./users).
</Note>

### Gestion des Abonnements SMS

**Lier à un utilisateur**

Définissez l'`external_id` lors de la création d'Abonnements SMS pour les lier à un [User](./users).

* En utilisant le SDK, appelez la méthode `login` avant d'appeler `addSms` pour définir l'`external_id` et lier l'Abonnement SMS à l'utilisateur.
* En utilisant l'Importateur CSV ou l'API REST, définissez l'identifiant `external_id` avec le numéro de téléphone.

**Statuts d'Abonnement**

Les Abonnements SMS nouvellement créés sont automatiquement définis sur **Abonné** sauf indication contraire.

Les Abonnements SMS peuvent devenir désabonnés lorsque :

* L'utilisateur répond avec "STOP" ou un autre [mot-clé de désabonnement](./sms-consent-keyword-management)
* Vous définissez `enabled` sur `false` via l'API
* Vous désabonnez l'Abonnement dans le tableau de bord via le bouton d'options

Les Abonnements SMS peuvent être réabonnés lorsque :

* L'utilisateur répond avec "START" ou un autre [mot-clé d'abonnement](./sms-consent-keyword-management)
* Vous définissez `enabled` sur `true` via l'API
* Vous réabonnez l'Abonnement dans le tableau de bord via le bouton d'options

<Warning>
  Réabonner un Abonnement SMS sans le consentement de l'utilisateur viole les règles de conformité des opérateurs (TCPA, CTIA) et peut entraîner un filtrage par les opérateurs ou une suspension de compte.
</Warning>

***

## Importer ou migrer des Abonnements

Importez les jetons push, adresses e-mail et numéros de téléphone d'un autre fournisseur en utilisant :

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

<Card title="Migrer vers OneSignal" icon="arrow-right-to-bracket" href="./migrating-to-onesignal">
  Importez des jetons push, adresses e-mail et numéros de téléphone depuis un autre fournisseur.
</Card>

***

## Supprimer des Abonnements

Les Abonnements peuvent être supprimés pour :

* La confidentialité des données
* Le nettoyage des enregistrements inactifs

<Card title="Supprimer des utilisateurs" icon="trash" href="./delete-users">
  Supprimez des Abonnements et des données utilisateur pour la confidentialité ou le nettoyage.
</Card>

<Note>
  Les Abonnements sans activité pendant 18+ mois sont automatiquement supprimés sur les plans gratuits.
</Note>

***

## FAQ

### Quand les statuts d'abonnement push se mettent-ils à jour ?

Les statuts d'abonnement push se mettent à jour via deux mécanismes :

**1. Lorsque l'utilisateur ouvre votre application ou votre site**

Le SDK OneSignal vérifie si le jeton push est valide et si les autorisations de notification sont toujours accordées, puis met à jour immédiatement le statut de l'abonnement.

Par exemple, si un utilisateur désactive les notifications push dans les paramètres de son appareil puis rouvre votre application, le SDK détecte le changement et marque l'abonnement comme **Désabonné** immédiatement.

Vous pouvez capturer ces changements avec l'Observateur d'Abonnement du SDK ([mobile](./mobile-sdk-reference#addobserver-push-subscription-changes) | [web](./web-sdk-reference#addeventlistener-push-subscription-changes)) pour synchroniser le statut avec votre propre base de données.

**2. Lorsque vous envoyez des notifications push**

Si un utilisateur désinstalle votre application, efface les données du navigateur, ou désactive le push **et ne revient jamais**, OneSignal ne peut pas détecter le changement jusqu'à ce que vous envoyiez une notification. Le service push (FCM, APNs, HMS) signale le jeton comme invalide et OneSignal marque l'abonnement comme **Désabonné**.

Cette détection nécessite généralement 2 messages ou plus car le service push ne rejette pas immédiatement un jeton invalide :

| Envoi      | Ce qui se passe                                                                                                                                     |
| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| Message 1  | Livré à l'appareil. L'utilisateur se désabonne ensuite dans les paramètres de l'appareil ou désinstalle l'application.                              |
| Message 2  | Le service push accepte le message mais l'appareil ne le reçoit pas. OneSignal rapporte "Livré" car le service push n'a pas encore rejeté le jeton. |
| Message 3  | Le service push rejette le jeton. OneSignal marque l'abonnement comme **Désabonné**.                                                                |
| Message 4+ | OneSignal n'effectue pas de tentative de livraison à cet abonnement.                                                                                |

Utilisez [Event Streams](./event-streams) pour détecter les désabonnements en temps réel lors de l'envoi de messages.

<Note>
  Si vous passez de longues périodes sans envoyer à tous les utilisateurs, les désabonnements s'accumulent silencieusement et apparaissent comme un pic important lorsque vous reprenez l'envoi. Envoyez à tous les utilisateurs au moins une ou deux fois par mois pour détecter les désabonnements progressivement. Voir [FCM expired token FAQ](./fcm-expired-token-faq) pour plus d'informations sur les pics de désabonnements.
</Note>

<Warning>
  Apple retarde le signalement des désabonnements de 14+ jours. Pour protéger la confidentialité des utilisateurs, Apple ne signale pas immédiatement les désinstallations ou les révocations d'autorisations. Si un utilisateur ouvre votre application après avoir désactivé le push, OneSignal détecte le changement instantanément via le SDK. Si l'utilisateur ne rouvre jamais l'application, il peut s'écouler plusieurs semaines avant qu'Apple ne signale le jeton invalide après l'envoi de notifications.

  Consultez le [Forum Apple](https://developer.apple.com/forums/thread/670868) et la [Note technique](https://developer.apple.com/library/archive/technotes/tn2265/_index.html#//apple_ref/doc/uid/DTS40010376-CH1-TNTAG34) pour plus de détails. Utilisez le tableau de bord ou l'API pour [supprimer les anciens abonnements](./delete-users) et garder votre audience propre.
</Warning>

### Si un utilisateur désactive les notifications dans les paramètres de son appareil et ne rouvre jamais l'application, que se passe-t-il ?

L'abonnement reste marqué comme **Abonné** dans OneSignal jusqu'à ce que vous envoyiez une notification à cet appareil. Après 2 tentatives d'envoi ou plus, le service push signale le jeton comme invalide et OneSignal marque l'abonnement comme **Désabonné**. Voir [Quand les statuts d'abonnement push se mettent-ils à jour ?](#when-do-push-subscription-statuses-update) ci-dessus pour la séquence complète.

***

## Pages connexes

<Columns cols={2}>
  <Card title="Utilisateurs" icon="users" href="./users">
    Le modèle utilisateur OneSignal, les alias et comment les utilisateurs se rapportent aux Abonnements.
  </Card>

  <Card title="Abonnements de test" icon="flask" href="./test-users">
    Trouvez votre appareil et marquez-le comme abonnement de test pour faciliter les tests.
  </Card>

  <Card title="Supprimer des utilisateurs" icon="trash" href="./delete-users">
    Supprimez des Abonnements et des données utilisateur pour la confidentialité ou le nettoyage.
  </Card>

  <Card title="Migrer vers OneSignal" icon="arrow-right-to-bracket" href="./migrating-to-onesignal">
    Importez des jetons push, adresses e-mail et numéros de téléphone depuis un autre fournisseur.
  </Card>
</Columns>
