Provider Guide
Unified message sending support
Which message payload types and provider-specific extensions are accepted by POST /v1/messages per provider.
Capability
| Capability | Telegram | Twitter / X | LINE | Zalo | |
|---|---|---|---|---|---|
| text | Full | Full | Full | Full | Full |
| image | Full | Full | Full | Full | Full |
| video | Full | Full | Full | Full | Full |
| audio | Full | Full | Partial | Full | Full |
| document | Full | Full | Not supported | Full | Full |
| reply_to.reply_token | Not supported | Full | Not supported | Not supported | Not supported |
| mentions | Not supported | Full | Not supported | Not supported | Not supported |
| provider_data.parse_mode | Full | Not supported | Not supported | Not supported | Not supported |
Notes
- WhatsApp audio messages take content as a JSON string {"url":"...","seconds":N,"waveform":"..."} — only url is mandatory.
- parse_mode (Markdown / HTML) is fully honored by Telegram. Other providers ignore the field today.
- Twitter accepts audio only as part of a media attachment, not as a standalone voice note.
- Twitter does not support arbitrary document attachments — convert to an image or link before sending.
- reply_to.reply_token sends a quoted reply: pass data.message.reply_token from the inbound event back unchanged. WhatsApp only for now — other providers return 501 unsupported_by_provider; a tampered token returns 400 invalid_reply_token.
- mentions tags group members: declare ids in the mentions array and place {{@<id>}} anchors in text / caption. WhatsApp only; other providers ignore the field and send placeholders as literal text. provider_data.mentions is deprecated.