# Aperçu de l'API de messagerie v2

L'API de messagerie v2 est un point de terminaison REST/JSON unique pour créer des messages sortants sur tous les canaux pris en charge par Pushwoosh :

- Push : iOS, Android, Huawei, Baidu, macOS, Amazon, Windows, Safari, Chrome, Firefox, IE
- E-mail
- SMS
- Telegram, Kakao, LINE, WhatsApp, Viber

Le **canal** est sélectionné par le type de payload (`payload` pour les push / SMS / messageries, `email_payload` pour les e-mails).

Le **ciblage** est sélectionné par le type de requête (`segment` pour les segments d'audience, `transactional` pour les listes explicites d'appareils ou d'utilisateurs).

## URL de base

```
https://api.pushwoosh.com
```

Si vous utilisez une région dédiée ou un déploiement privé, confirmez l'URL de base exacte avec votre Customer Success Manager Pushwoosh.

## Authentification

Chaque requête doit inclure un en-tête `Authorization` avec un [jeton d'accès API](/fr/developer/api-reference/api-access-token/#server-api-token) Pushwoosh côté serveur :

```
Authorization: Token VOTRE_JETON_API
```

Utilisez le même jeton que vous utilisez déjà pour les appels API de serveur à serveur. N'exposez pas ce jeton dans les applications clientes.

## Méthodes

- [`Notify`](/fr/developer/api-reference/messaging-api-v2/notify/) : `POST /messaging/v2/notify`. Crée et envoie un message unique (segment ou transactionnel).
- [`Cancel`](/fr/developer/api-reference/messaging-api-v2/cancel/) : `POST /messaging/v2/cancel`. Annule un message créé précédemment qui n'a pas encore été livré.
- [`Update`](/fr/developer/api-reference/messaging-api-v2/update/) : `POST /messaging/v2/update`. Remplace un message encore planifié par une nouvelle définition.

## Format de la requête et de la réponse

- Type de contenu : `application/json`.
- Les noms de champs utilisent le `snake_case`. Les groupes `oneof` apparaissent comme des objets imbriqués avec exactement une clé définie.
- Les valeurs Enum sont sérialisées sous forme de chaînes de caractères (par exemple, `"IOS"`, `"MESSAGE_TYPE_MARKETING"`).
- Les réponses réussies renvoient un code HTTP 200 avec un corps JSON ; les erreurs utilisent l'enveloppe d'erreur standard gRPC-Gateway — `{ "code": ..., "message": ..., "details": [...] }`.

## Démarrage rapide

```bash title="Envoyer un push à un segment"
curl -X POST https://api.pushwoosh.com/messaging/v2/notify \
  -H "Authorization: Token VOTRE_JETON_API" \
  -H "Content-Type: application/json" \
  -d '{
    "segment": {
      "application": "XXXXX-XXXXX",
      "platforms": ["IOS", "ANDROID"],
      "code": "active_users",
      "payload": {
        "content": {
          "localized_content": {
            "en": {
              "ios":     { "body": "Hello from v2!" },
              "android": { "body": "Hello from v2!" }
            }
          }
        }
      },
      "schedule": { "at": "2026-05-01T12:00:00Z" },
      "message_type": "MESSAGE_TYPE_MARKETING"
    }
  }'
```

## Envoi d'e-mails via SMTP

Si un service utilise déjà le protocole SMTP, vous pouvez soumettre des e-mails transactionnels via la [passerelle SMTP](/fr/developer/api-reference/smtp-gateway/) au lieu d'appeler `Notify` directement. La passerelle transmet chaque message à cette API en tant que `Notify` transactionnel, donc les mêmes règles d'authentification et de payload d'e-mail s'appliquent.

## Prochaines étapes

<CardGrid>
  <LinkCard title="Notify" href="/developer/api-reference/messaging-api-v2/notify/" />
  <LinkCard title="Cancel" href="/developer/api-reference/messaging-api-v2/cancel/" />
  <LinkCard title="Update" href="/developer/api-reference/messaging-api-v2/update/" />
  <LinkCard title="Référence du payload" href="/developer/api-reference/messaging-api-v2/payload-reference/" />
  <LinkCard title="Référence du payload d'e-mail" href="/developer/api-reference/messaging-api-v2/email-payload-reference/" />
  <LinkCard title="Passerelle SMTP" href="/developer/api-reference/smtp-gateway/" />
  <LinkCard title="Migration depuis la v1" href="/developer/api-reference/messaging-api-v2/migration-from-v1/" />
</CardGrid>