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

# Messages transactionnels

> Apprenez à envoyer des messages transactionnels tels que des OTP, des mises à jour de facturation et des rappels en utilisant l'API de OneSignal avec des données personnalisées via push, e-mail ou SMS.

L'envoi de messages opportuns et personnalisés à des individus ou à de petits groupes est essentiel pour offrir une excellente expérience client et maintenir l'engagement. Les messages transactionnels, tels que les codes à usage unique (OTP), les mises à jour de facturation ou les confirmations d'activité, vous permettent de partager des mises à jour significatives et en temps réel depuis votre serveur.

Ce guide explique comment envoyer des messages transactionnels (push, e-mail ou SMS) avec l'API de OneSignal en utilisant des données personnalisées et des identifiants utilisateur.

***

## Cas d'utilisation courants

Utilisez les messages transactionnels pour :

* Envoyer des codes de connexion et de vérification (OTP)
* Confirmer des commandes, des reçus ou des changements d'abonnement
* Livrer des statuts de facturation ou des alertes de renouvellement
* Rappeler aux utilisateurs des rendez-vous ou des échéances
* Accuser réception d'actions clés (par ex. inscriptions ou achats)

***

## Exigences

Avant d'envoyer des messages transactionnels, nous vous suggérons de consulter les guides suivants :

* Comprendre les [Users](./users), [Subscriptions](./subscriptions) et [Aliases](./aliases) de OneSignal.
* Configurer votre [base de données, DMP ou CRM pour communiquer avec OneSignal](./database-dmp-crm-integration) ou utiliser l'une de nos [Integrations](./integrations).
* Créer des [Templates](./templates) pour personnaliser vos messages.
* Utiliser la [syntaxe Liquid](./using-liquid-syntax) pour personnaliser vos messages.

***

## Identification des utilisateurs

Pour cibler des utilisateurs individuels, vous devez les identifier dans OneSignal. L'approche recommandée consiste à définir un **External ID**, qui doit correspondre à l'identifiant utilisateur utilisé dans votre base de données ou CRM.

OneSignal prend également en charge jusqu'à **20 alias par utilisateur**, vous permettant d'associer plusieurs identifiants (par ex. `other_user_id`, `facebook_id`, etc.) à travers vos systèmes. Pour les e-mails et les SMS, vous pouvez également envoyer des messages directement en utilisant l'adresse e-mail ou le numéro de téléphone respectivement.

***

## Ciblage des utilisateurs

Utilisez l'[API Create Message](/reference/create-message) pour envoyer des messages transactionnels sur les canaux push, e-mail et SMS en ciblant les utilisateurs via des alias, des adresses e-mail, des numéros de téléphone ou des ID d'abonnement.

### Envoyer vers des alias (recommandé)

Utilisez `include_aliases` pour cibler l'`external_id` recommandé ou d'autres alias comme suit :

<CodeGroup>
  ```json external_id theme={null}
  {
    "app_id": "YOUR_APP_ID",
    "include_aliases": {"external_id": ["userA", "userB"]},
    "contents": {"en": "English Message"},
    "target_channel": "push"
  }
  ```

  ```json custom_alias theme={null}
  {
    "app_id": "YOUR_APP_ID",
    "include_aliases": { "alias_label": ["alias_id_1", "alias_id_2"] },
    "contents": { "en": "English Message" },
    "target_channel": "email"
  }
  ```
</CodeGroup>

### Envoyer vers des abonnements

Si vous souhaitez envoyer vers des Abonnements spécifiques, vous pouvez utiliser la propriété `include_subscription_ids`. Cette option n'est pas recommandée car les utilisateurs peuvent avoir plusieurs Abonnements.

```json theme={null}
{
  "app_id": "YOUR_APP_ID",
  "include_subscription_ids": ["1dd608f2-c6a1-11e3-851d-000c2940e62c"],
  "contents": { "en": "English Message" }
}
```

### Envoyer vers des adresses e-mail

Si vous avez l'adresse e-mail de l'utilisateur, vous pouvez lui envoyer des e-mails en utilisant la propriété `include_email_tokens`.

Tous les e-mails inclus qui n'existent pas dans votre application OneSignal créeront automatiquement un nouvel abonnement e-mail.

```json theme={null}
{
  "app_id": "YOUR_APP_ID",
  "include_email_tokens": ["user1@email.com", "user2@email.com"],
  "email_subject": "Welcome to Cat Facts!",
  "email_body": "<html><head>Welcome to Cat Facts</head><body><h1>Welcome to Cat Facts</h1><h4>Learn more about everyone's favorite furry companions!</h4><hr/><p>Hi Nick,</p><p>Thanks for subscribing to Cat Facts! We can't wait to surprise you with funny details about your favorite animal.</p><h5>Today's Cat Fact (March 27)</h5><p>In tigers and tabbies, the middle of the tongue is covered in backward-pointing spines, used for breaking off and gripping meat.</p><a href='https://catfac.ts/welcome'>Show me more Cat Facts</a><hr/><p><small>(c) 2018 Cat Facts, inc</small></p><p><small><a href='[unsubscribe_url]'>Unsubscribe</a></small></p></body></html>"
}
```

### Envoyer vers des numéros de téléphone

Si vous avez le numéro de téléphone de l'utilisateur, vous pouvez lui envoyer des SMS et MMS en utilisant la propriété `include_phone_numbers`.

Tous les numéros de téléphone inclus qui n'existent pas dans votre application OneSignal créeront automatiquement un nouvel abonnement SMS.

```json theme={null}
{
  "app_id": "YOUR_APP_ID",
  "include_phone_numbers": ["+15555555555"],
  "contents": { "en": "English Message" }
}
```

***

## Ajout de données personnalisées

Pour un contenu personnalisé, transmettez des `custom_data` spécifiques à l'utilisateur au message en utilisant des Templates et la syntaxe Liquid.

Étapes pour ajouter des données personnalisées :

1. Créez un [Template](./templates) via le tableau de bord ou l'[API Create template](/reference/create-template).
2. Ajoutez des [variables Liquid](./using-liquid-syntax) (par ex., `{{ message.custom_data.order_id }}`) à votre template.
3. Référencez le `template_id` et les `custom_data` dans votre appel API Create Message.

```json theme={null}
{
  "app_id": "YOUR_APP_ID",
  "include_aliases": { "external_id": ["userA"] },
  "template_id": "8458af75-4da2-4ecf-afb5-f242a8926cc3",
  "custom_data": { "order_id": 123, "currency": "USD", "amount": 25 }
}
```

### Exemple : Code à usage unique (OTP)

1. Identifiez l'utilisateur en utilisant un alias, un e-mail ou un numéro de téléphone.
2. Créez un Template qui inclut un code de vérification :

```
Votre code de vérification est {{ message.custom_data.verification_code }}
```

3. Générez le `verification_code` sur votre serveur lorsque l'utilisateur demande l'accès.
4. Saisissez la valeur `verification_code` dans la requête API.

```json theme={null}
{
  "app_id": "YOUR_APP_ID",
  "include_aliases": { "external_id": ["userA"] },
  "template_id": "8458af75-4da2-4ecf-afb5-f242a8926cc3",
  "custom_data": { "verification_code": "123456" }
}
```

**Alternative :** Si vous ne souhaitez pas utiliser de templates et `custom_data`, vous pouvez saisir la valeur de la variable directement dans le message avec une concaténation de chaînes. Par exemple :

```json theme={null}
{
  "app_id": "YOUR_APP_ID",
  "include_aliases": {"external_id": ["userA"]},
  "contents": {"en": "Your verification code is " + verification_code}
}
```

***

## Dépannage

* Pour `include_aliases`, l'alias doit être enregistré sur l'utilisateur au préalable.
* Pour les e-mails/SMS, assurez-vous du formatage correct.

***

## Ressources supplémentaires

* [Guide Create message](/reference/create-message)
* [Users](./users) et [Aliases](./aliases)
* [Templates](./templates) et [Syntaxe Liquid](./using-liquid-syntax)
* [Limites de débit](/reference/rate-limits)

***
