ข้ามไปยังเนื้อหา

Payload reference

เนื้อหานี้ยังไม่มีในภาษาของคุณ

Reference for the Payload message used by Notify when sending through any non-email channel (push, SMS, Telegram, Kakao, LINE, WhatsApp).

  • preset (string): preset code to apply to this message.
  • content (LocalizedContent): message content. Mutually exclusive with silent.
  • silent (bool): send a silent (data-only) push. Mutually exclusive with content.
  • custom_data (object): free-form JSON forwarded to the client SDK as the u parameter.
  • open_action (OpenAction): action triggered when the user opens the notification.
  • open_actions (map<Platform, OpenAction>): per-platform override of open_action. Key is a numeric Platform enum value.
  • voip_push (bool): iOS VoIP notification.

LocalizedContent

Anchor link to

Maps locale code → per-platform content. Keys are ISO 639-1 two-letter codes (for example, "en", "es") plus the special key "default" for a catch-all translation. The exceptions to ISO 639-1 are "zh-Hant" and "zh-Hans" for Traditional and Simplified Chinese.

{
"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" }
}
}
}

Locale selection for a device

Anchor link to

Content delivered to a device is picked in this order:

  1. Exact match on the device’s language.
  2. Key "default".
  3. Key "en".
  4. Any other locale present in the map.

Provide at least one of "default" or "en" so every device has a deterministic fallback. If you do not expect per-locale variants, send only "default".

Each locale entry is a Content object with optional per-platform blocks. Only fill in the platforms you target.

Platform blockChannel
iosiOS push
androidAndroid (FCM) push
huawei_androidHuawei Android push
baidu_androidBaidu Android push
mac_osmacOS push
amazonAmazon (ADM) push
safariSafari web push
chromeChrome web push
firefoxFirefox web push
ieInternet Explorer web push
windowsWindows push (tile / toast / badge)
telegramTelegram message
kakaoKakao message
lineLINE message
whatsappWhatsApp message

Common push fields

Anchor link to

These fields are shared by ios, android, huawei_android, baidu_android, mac_os, amazon, safari, chrome, and firefox blocks (support varies. Unused fields are ignored by the relevant platform).

  • title (string): notification title.
  • body (string): notification body.
  • time_to_live (duration, e.g. "3600s"): how long the push server should retain the notification for an offline device.
  • sound (string): sound file name.
  • sound_enabled (bool): enable or suppress sound.
  • badges (string): badge count (iOS) or analogue.
  • root_params (object): raw platform-specific payload overrides.
  • inbox (Inbox): Message Inbox entry.
  • subtitle (string): iOS notification subtitle.
  • is_critical (bool): critical alert (requires entitlement).
  • attachment (string): URL of a media attachment.
  • thread_id (string): thread identifier for grouped notifications.
  • trim_content (bool): trim content to fit.
  • category_id (string): UNNotificationCategory identifier for interactive actions.
  • interruption_level (string): passive, active, time-sensitive, or critical.

Android (android, huawei_android, baidu_android)

Anchor link to
  • icon (string): notification small icon.
  • banner (string): big-picture URL.
  • delivery_priority (NORMAL | HIGH): FCM delivery priority.
  • vibration (bool): vibration on receive.
  • led_color (string, hex): notification LED color.
  • icon_background_color (string, hex): icon background color.
  • show_on_lockscreen (bool): show on the lock screen.
  • custom_icon (string): URL of a custom icon.
  • priority (NotificationPriority): in-tray priority.
  • group_id (string): notification group key.

macOS (mac_os)

Anchor link to

Uses the common push fields plus subtitle and action (URL opened when the user clicks the notification).

Amazon (amazon)

Anchor link to

Uses the common push fields plus custom_icon and priority (NotificationPriority).

Safari (safari)

Anchor link to
  • action (string): URL opened when the user clicks the notification.
  • url_arguments (array of string): Safari URL arguments substituted into the Web Push URL template.

Chrome (chrome)

Anchor link to
  • icon, image (string): small icon and large image URLs.
  • duration (duration): auto-close timer.
  • button_text1 / button_url1, button_text2 / button_url2: up to two action buttons.

Firefox (firefox)

Anchor link to

Uses only title, body, icon, root_params, and inbox.

Windows (windows)

Anchor link to

Windows uses a different shape:

{
"windows": {
"type": "TOAST",
"template": { "title": "Hello", "body": "Tap to view" },
"tag": "promo",
"cache": true,
"time_to_live": "3600s"
}
}
  • type is TILE, TOAST, or BADGE.
  • template (structured) or raw ({ "content": "<raw xml>" }) — exactly one.

Telegram (telegram)

Anchor link to
  • body (string): message text.
  • content_variables (string): JSON-stringified variables for the bot-side template.

Kakao (kakao)

Anchor link to
  • content (string): message content.
  • template (string): approved template code.
  • content_variables (string): JSON-stringified template variable bindings.

LINE (line)

Anchor link to
  • content (string): plain text body.
  • template (string): code of a LINE template configured in the Pushwoosh Control Panel (used to send image, carousel, or flex messages). For rich content, pre-configure the template in the Control Panel and reference it here.

At least one of content or template must be set.

WhatsApp (whatsapp)

Anchor link to

WhatsApp messages go through Meta and are subject to Meta’s messaging rules. The key split is between free-form text (only delivered inside the 24-hour customer service window opened by an inbound message from the user) and approved templates (required for outbound initiation and for any message outside the 24-hour window).

  • content (string): free-form message text. Delivered by Meta only inside the 24-hour window.
  • content_id (string): name of a pre-approved Meta template (e.g. "hello_world"). Required for outbound initiation or any message outside the 24-hour window.
  • language (string): template locale that must exactly match the locale approved in Meta (e.g. "en_US", "en_GB"). Only meaningful together with content_id. This is independent of the outer LocalizedContent key. The outer key selects content for a device, and language selects the Meta-template locale for that content.
  • content_variables (string): JSON object mapping body placeholders, e.g. "{\"1\":\"John\"}".
  • button_url_variables (string): JSON object mapping button-URL placeholders keyed by button index, e.g. "{\"0\":\"https://...\"}".
  • header_variables (string): JSON object mapping header placeholders keyed by type, e.g. "{\"image\":\"https://...\"}".

At least one of content or content_id must be set.

SMS uses the generic message flow. The sms platform block is reserved. Provide the text through the common body field on any filled platform block. Sender ID and other provider options come from the app’s SMS configuration. See SMS configuration.

OpenAction

Anchor link to

Defines the action performed when the user opens the message.

Exactly one of:

  • rich_media (RichMedia): open a Rich Media page.
  • deep_link: open a deep link: { "code": "flow-code", "params": { "key": "value" } }.
  • link (Link): open a URL.
{ "code": "XXXXX-XXXXX" } // by Rich Media code
{ "url": "https://..." } // by remote URL
{
"url": "https://example.com/promo",
"shortener": "BITLY"
}

shortener is NONE (default) or BITLY.

Configures how the message appears in Message Inbox.

{
"image_url": "https://cdn.example.com/inbox.png",
"expiration_date": "2026-05-15T00:00:00Z"
}
  • image_url (string): image shown in the inbox entry.
  • expiration_date (timestamp): when the entry is removed from the inbox.

NotificationPriority enum

Anchor link to

Controls notification priority on the target device, from PRIORITY_MIN (lowest) to PRIORITY_MAX (highest).

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

Example: Send a push to a 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"
}
}'

Example: Transactional push by user IDs

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"
}
}'