post
https://connect.routee.net/viber/transactional/messages
Send an approved BM transactional template (transactional or OTP category).
Recent Requests
Log in to see full request history
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Loading…
Send any approved BM transactional template. OTP-category templates require pin in templateParams.
There is no greenfield POST /viber/transactional/otp. Legacy POST /viber/otp remains for older integrations.
HTTP 200 means the message was accepted for processing, not delivered to the handset.
Request notes
| Topic | Guidance |
|---|---|
templateParams | TEXT values, max 25 chars each, no URLs, no file-extension-like values (e.g. test.pdf). Omit or {} only when the template has no variables. |
deliveryScope | PRIMARY_DEVICE (default) or ALL_DEVICES |
seq | Optional partner correlation id; Routee assigns one if omitted (returned in response and echoed on tracking) |
callbackUrl | Optional HTTPS URL for delivery status callbacks for this message |
Send-time validation (HTTP 400)
Invalid templateLang or templateParams fail before queue with code 400019029 and validationIssues:
| Code | Meaning |
|---|---|
TEMPLATE_LANG_REQUIRED | templateLang missing |
TEMPLATE_LANG_MISMATCH | Language does not match template locale |
MISSING_PARAM | Required placeholder missing or blank |
UNKNOWN_PARAM | Extra key not on template |
PARAM_VALUE_TOO_LONG | Value longer than 25 characters |
PARAM_CONTAINS_URL | URL-like content in a parameter |
PARAM_CONTAINS_FILE_EXTENSION | File-extension-like fragment |
OTP_PIN_REQUIRED | OTP-category template without pin |
Response fields
| KEY | DESCRIPTION |
|---|---|
trackingId | Use with Retrieve Viber Single Message by Tracking Id |
deliveryScope | PRIMARY_DEVICE or ALL_DEVICES as applied |
seq | Correlation id (yours or Routee-assigned) |
to, from | Recipient and sender as resolved by Routee |
status | Initial status object |
price | Charged amount where applicable |
Tracking GET and delivery callbacks include messageKind: transactional_template and a transactionalTemplate block. See Viber transactional tracking and callbacks.
403Missing or invalid OAuth token, or insufficient Viber permission
404Account or resource not found

