Skip to content



To send a Viber message it is required to call POST /viber/messages sending message parameters in the body with authorization data in the heading.

Request parameters


Parameter Data type Description
boolean Flag that shortens the length of the link: if true, then the link will be shortened. False by default.


Parameter Data type Description
from string The sender’s name used when sending the message
Only the senders’ names which are available for using by the user.
to string Phone number in the international format in accordance with E. 164 standard
string The message text, UTF-8 characters.
The standard number of characters is no more than 1000.
The maximum number of characters is 2000.
If the standard number of characters in a Viber message exceeds 1000 characters, your message will be split into segments and delivered consistently with preservation of semantic content.
string URL to the image, supported image formats:
string URL the user will be forwarded to after having clicked on the button
Any valid URL including direct links of mobile operating systems
string The button text, up to 30 UTF-8 symbols
integer Lifetime of the message in seconds
Minimum value: 15
Maximum value: 1209600, 14 days
Default value: 86400, 1 day
priority Message priority level
Between 0 and 3, where:
- 0 — low priority
- 3 — highest priority
- 0 — default priority level
string UTC time when the message is to be sent
Format: YYYY-MM-DD hh:mm:ss
string URL the system will send notifications on the message status changes to
Any valid HHTTP or HTTPS URL
array[object] An array of optional data to be transmitted with the callback.
Any {“key1”: “value1”,“key2”: “value2” } array

Possible combinations of text, buttons and images

Though the parameters text, action, caption and image are considered optional in the description, it is necessary to specify at least one of them or more according to the following list of possible combinations:

  • text
  • image
  • text, action, caption
  • text, action, caption, image

Request example

curl -X POST \
 -H 'Authorization: Key QWxhZGRpbjpvcGVuIHNlc2FtZQ==' \
 -H 'Content-Type: application/json' \
 -d '{ 
    "messages": [
            "from": "MyCompany",
            "to": "79034567890",
            "text": "Code: 1234",
            "image": "",
            "action": "",
            "caption": "Activate!"

Response example

    "result": [
            "code": "OK",
            "messageId": "3482512350952730368"

Response parameters

Parameter Data type Description
code string Points out the result of message processing
1. OK - Processed successfully
2. REJECTED - An error has occurred while processing the request
Array[String, String] An array of the errors which occurred while processing the message
To be given with code=REJECTED only
reasons.key string Error code
reasons.ref string A reference to the parameter where the error occurred
string Message ID
To be given with code=OK only


While creating the message status a POST request will be sent to the URL provided when sending the message in the callbackUrl parameter. 200 OK is expected as the answer to the request.

In case the answer to the request is 500 Internal Error, there will be made 5 attempts to deliver the status with 1 minute interval.

Request example

    "messageId": "string",
    "status": "string",
    "ts": 0,
    "errorCode": 0,
    "ip": "string",
    "browser": "string",
    "os": "string",
    "userAgent": "string",
    "options": { }

Request parameters

Parameter Data type Status Description
messageId long any A unique message ID on the platform
ts int any Points out the time for creating the ‘status’ object
status enum any Delivery status code for the Viber message
For more information see Possible statuses
int rejected
Reason for non-delivery of the message to the user (status = undelivered)
- user_blocked – the user has been blocked;
- not_viber_user – the recipient is not a Viber user;
- message_limit_exceeded - the message limit has been exceeded for this name
string clicked
The user’s IP
string clicked
The user’s browser
string clicked
The user’s operating system
string any The user data the user wants to receive with the callback

Possible statuses

Parameter Description
scheduled The message has been scheduled.
enroute The message is in the queue for sending.
sent The message has been sent to the operator network.
delivered The message has been delivered to the user.
expired The lifetime of the message has expired.
seen The message has been read
clicked The link in the notification has been followed
undeliverable Unable to deliver the message.
rejected The message has been rejected by the operator or Devino.
unknown An unknown error has occurred.
subscribed The user has subscribed
unsubscribed The user has unsubscribed

Incoming webhook


To receive incoming VIBER messages, you must:

  • contact the company manager or contact technical support,
  • tell the URL to send incoming VIBER messages.


  "incomingMessageId": "3777714415805253122",
  "to": "MyCompany",
  "from": "79101111111",
  "text": "Incoming message",
  "ts": "1587721283000"


Parameter Data type Description
incomingMessageId long Message ID
to string Address of the recipient
from string Sender address
text string Message text
ts long Points out the time for creating message with milliseconds