Passer au contenu

Référence du Payload

Référence pour le message Payload utilisé par Notify lors de l’envoi via tout canal autre que l’e-mail (push, SMS, Telegram, Kakao, LINE, WhatsApp).

  • preset (string) : code du préréglage (preset) à appliquer à ce message.
  • content (LocalizedContent) : contenu du message. Mutuellement exclusif avec silent.
  • silent (bool) : envoie une notification push silencieuse (données uniquement). Mutuellement exclusif avec content.
  • custom_data (objet) : JSON de forme libre transmis au SDK client en tant que paramètre u.
  • open_action (OpenAction) : action déclenchée lorsque l’utilisateur ouvre la notification.
  • open_actions (map<Platform, OpenAction>) : remplacement par plateforme de open_action. La clé est une valeur numérique de l’énumération Platform.
  • voip_push (bool) : notification VoIP iOS.

LocalizedContent

Anchor link to

Associe un code de langue → contenu par plateforme. Les clés sont des codes à deux lettres ISO 639-1 (par exemple, "en", "es") plus la clé spéciale "default" pour une traduction fourre-tout. Les exceptions à la norme ISO 639-1 sont "zh-Hant" et "zh-Hans" pour le chinois traditionnel et simplifié.

{
"localized_content": {
"default": {
"ios": { "title": "Hello", "body": "Tap to view" },
"android": { "title": "Hello", "body": "Tap to view" }
},
"es": {
"ios": { "title": "Hola", "body": "Toca para ver" },
"android": { "title": "Hola", "body": "Toca para ver" }
}
}
}

Sélection de la langue pour un appareil

Anchor link to

Le contenu livré à un appareil est choisi dans cet ordre :

  1. Correspondance exacte avec la langue de l’appareil.
  2. Clé "default".
  3. Clé "en".
  4. Toute autre langue présente dans la carte (map).

Fournissez au moins "default" ou "en" pour que chaque appareil ait une solution de repli déterministe. Si vous ne prévoyez pas de variantes par langue, n’envoyez que "default".

Chaque entrée de langue est un objet Content avec des blocs optionnels par plateforme. Remplissez uniquement les plateformes que vous ciblez.

Bloc de plateformeCanal
iosPush iOS
androidPush Android (FCM)
huawei_androidPush Android Huawei
baidu_androidPush Android Baidu
mac_osPush macOS
amazonPush Amazon (ADM)
safariPush web Safari
chromePush web Chrome
firefoxPush web Firefox
iePush web Internet Explorer
windowsPush Windows (tuile / toast / badge)
telegramMessage Telegram
kakaoMessage Kakao
lineMessage LINE
whatsappMessage WhatsApp

Champs push communs

Anchor link to

Ces champs sont partagés par les blocs ios, android, huawei_android, baidu_android, mac_os, amazon, safari, chrome et firefox (la prise en charge varie. Les champs non utilisés sont ignorés par la plateforme concernée).

  • title (string) : titre de la notification.
  • body (string) : corps de la notification.
  • time_to_live (durée, ex. : "3600s") : durée pendant laquelle le serveur push doit conserver la notification pour un appareil hors ligne.
  • sound (string) : nom du fichier son.
  • sound_enabled (bool) : active ou supprime le son.
  • badges (string) : nombre de badges (iOS) ou équivalent.
  • root_params (objet) : remplacements bruts du payload spécifiques à la plateforme.
  • inbox (Inbox) : entrée de la Boîte de réception des messages (Message Inbox).
  • subtitle (string) : sous-titre de la notification iOS.
  • is_critical (bool) : alerte critique (nécessite une autorisation spéciale).
  • attachment (string) : URL d’une pièce jointe multimédia.
  • thread_id (string) : identifiant de fil de discussion pour les notifications groupées.
  • trim_content (bool) : tronque le contenu pour l’adapter.
  • category_id (string) : identifiant UNNotificationCategory pour les actions interactives.
  • interruption_level (string) : passive, active, time-sensitive ou critical.
  • collapse_id (string) : identifiant de regroupement APNs. Les notifications avec le même collapse_id se remplacent mutuellement sur l’appareil.

Android (android, huawei_android, baidu_android)

Anchor link to
  • icon (string) : petite icône de notification.
  • banner (string) : URL de l’image en grand format.
  • delivery_priority (NORMAL | HIGH) : priorité de livraison FCM.
  • vibration (bool) : vibration à la réception.
  • led_color (string, hex) : couleur de la LED de notification.
  • icon_background_color (string, hex) : couleur de fond de l’icône.
  • show_on_lockscreen (bool) : afficher sur l’écran de verrouillage.
  • custom_icon (string) : URL d’une icône personnalisée.
  • priority (NotificationPriority) : priorité dans la barre de notifications.
  • group_id (string) : clé de groupe de notifications.
  • collapse_key (string) : clé de regroupement FCM. Les notifications avec la même collapse_key se remplacent mutuellement lorsque l’appareil est hors ligne.

macOS (mac_os)

Anchor link to

Utilise les champs push communs plus subtitle et action (URL ouverte lorsque l’utilisateur clique sur la notification).

Amazon (amazon)

Anchor link to

Utilise les champs push communs plus custom_icon et priority (NotificationPriority).

Safari (safari)

Anchor link to
  • action (string) : URL ouverte lorsque l’utilisateur clique sur la notification.
  • url_arguments (tableau de string) : arguments d’URL Safari substitués dans le modèle d’URL de Web Push.

Chrome (chrome)

Anchor link to
  • icon, image (string) : URL de la petite icône et de la grande image.
  • duration (durée) : minuteur de fermeture automatique.
  • button_text1 / button_url1, button_text2 / button_url2 : jusqu’à deux boutons d’action.

Firefox (firefox)

Anchor link to

Utilise uniquement title, body, icon, root_params et inbox.

Windows (windows)

Anchor link to

Windows utilise une forme différente :

{
"windows": {
"type": "TOAST",
"template": { "title": "Hello", "body": "Tap to view" },
"tag": "promo",
"cache": true,
"time_to_live": "3600s"
}
}
  • type est TILE, TOAST ou BADGE.
  • template (structuré) ou raw ({ "content": "<raw xml>" }) — exactement l’un des deux.

Telegram (telegram)

Anchor link to
  • body (string) : texte du message.
  • content_variables (string) : variables sous forme de chaîne JSON pour le modèle côté bot.

Kakao (kakao)

Anchor link to
  • content (string) : contenu du message.
  • template (string) : code du modèle approuvé.
  • content_variables (string) : liaisons de variables de modèle sous forme de chaîne JSON.

LINE (line)

Anchor link to
  • content (string) : corps en texte brut.
  • template (string) : code d’un modèle LINE configuré dans le Panneau de Contrôle Pushwoosh (utilisé pour envoyer des messages image, carrousel ou flex). Pour du contenu riche, pré-configurez le modèle dans le Panneau de Contrôle et référencez-le ici.

Au moins l’un des champs content ou template doit être défini.

WhatsApp (whatsapp)

Anchor link to

Les messages WhatsApp passent par Meta et sont soumis aux règles de messagerie de Meta. La distinction principale se fait entre le texte libre (livré uniquement dans la fenêtre de service client de 24 heures ouverte par un message entrant de l’utilisateur) et les modèles approuvés (requis pour initier une conversation sortante et pour tout message en dehors de la fenêtre de 24 heures).

  • content (string) : texte du message de forme libre. Livré par Meta uniquement dans la fenêtre de 24 heures.
  • content_id (string) : nom d’un modèle Meta pré-approuvé (ex. : "hello_world"). Requis pour initier une conversation sortante ou pour tout message en dehors de la fenêtre de 24 heures.
  • language (string) : langue du modèle qui doit correspondre exactement à la langue approuvée dans Meta (ex. : "en_US", "en_GB"). N’a de sens qu’avec content_id. Ceci est indépendant de la clé LocalizedContent externe. La clé externe sélectionne le contenu pour un appareil, et language sélectionne la langue du modèle Meta pour ce contenu.
  • content_variables (string) : objet JSON mappant les placeholders du corps, ex. : "{\"1\":\"John\"}".
  • button_url_variables (string) : objet JSON mappant les placeholders d’URL de bouton, indexés par le numéro du bouton, ex. : "{\"0\":\"https://...\"}".
  • header_variables (string) : objet JSON mappant les placeholders d’en-tête, indexés par type, ex. : "{\"image\":\"https://...\"}".

Au moins l’un des champs content ou content_id doit être défini.

Le SMS utilise le flux de messages générique. Le bloc de plateforme sms est réservé. Fournissez le texte via le champ commun body sur n’importe quel bloc de plateforme rempli. L’ID de l’expéditeur et les autres options du fournisseur proviennent de la configuration SMS de l’application. Voir Configuration SMS.

OpenAction

Anchor link to

Définit l’action effectuée lorsque l’utilisateur ouvre le message.

Exactement l’un des suivants :

  • rich_media (RichMedia) : ouvrir une page Rich Media.
  • deep_link : ouvrir un lien profond : { "code": "flow-code", "params": { "key": "value" } }.
  • link (Link) : ouvrir une URL.
{ "code": "XXXXX-XXXXX" } // par code Rich Media
{ "url": "https://..." } // par URL distante
{
"url": "https://example.com/promo",
"shortener": "BITLY"
}

shortener est NONE (par défaut) ou BITLY.

Configure l’apparence du message dans la Boîte de réception des messages (Message Inbox).

{
"image_url": "https://cdn.example.com/inbox.png",
"expiration_date": "2026-05-15T00:00:00Z"
}
  • image_url (string) : image affichée dans l’entrée de la boîte de réception.
  • expiration_date (timestamp) : date à laquelle l’entrée est supprimée de la boîte de réception.

Énumération NotificationPriority

Anchor link to

Contrôle la priorité de la notification sur l’appareil cible, de PRIORITY_MIN (la plus basse) à PRIORITY_MAX (la plus élevée).

  • PRIORITY_UNSPECIFIED
  • PRIORITY_MIN
  • PRIORITY_LOW
  • PRIORITY_DEFAULT
  • PRIORITY_HIGH
  • PRIORITY_MAX

Exemple : Envoyer une notification push à un segment

Anchor link to
Terminal window
curl -X POST https://api.pushwoosh.com/messaging/v2/notify \
-H "Authorization: Token YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"segment": {
"application": "XXXXX-XXXXX",
"platforms": ["IOS", "ANDROID"],
"code": "active_users",
"payload": {
"content": {
"localized_content": {
"en": {
"ios": { "title": "Hello", "body": "Hello, world!" },
"android": { "title": "Hello", "body": "Hello, world!" }
},
"es": {
"ios": { "title": "¡Hola!", "body": "¡Hola, mundo!" },
"android": { "title": "¡Hola!", "body": "¡Hola, mundo!" }
}
}
},
"open_action": { "link": { "url": "https://example.com/promo" } }
},
"schedule": { "at": "2026-05-01T12:00:00Z" },
"message_type": "MESSAGE_TYPE_MARKETING"
}
}'

Exemple : Notification push transactionnelle par ID utilisateur

Anchor link to
Terminal window
curl -X POST https://api.pushwoosh.com/messaging/v2/notify \
-H "Authorization: Token YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"transactional": {
"application": "XXXXX-XXXXX",
"platforms": ["IOS", "ANDROID"],
"users": { "list": ["customer-42"] },
"payload": {
"content": {
"localized_content": {
"default": {
"ios": { "title": "Your order", "body": "Order #42 has shipped." },
"android": { "title": "Your order", "body": "Order #42 has shipped." }
}
}
},
"custom_data": { "order_id": "42" }
},
"schedule": { "at": "2026-05-01T12:00:00Z" },
"message_type": "MESSAGE_TYPE_TRANSACTIONAL"
}
}'