VIBER API

DecisionTelecom Viber API позволяет отправлять и получать деловые сообщения Viber в любую страну мира и из нее через API. Каждое сообщение идентифицируется уникальным случайным идентификатором, поэтому пользователи всегда могут проверить статус сообщения, используя заданную конечную точку.

Viber API использует HTTPS с ключом доступа, который используется в качестве авторизации API. Полезные данные запросов и ответов форматируются как JSON с использованием кодировки UTF-8.

API Авторизация - Базовый ключ доступа Base64.

Чтобы получить ключ API, пожалуйста, свяжитесь с вашим менеджером по работе с клиентами.

Авторизация

Basic Auth

Пример:

$userHashKey = 'User Hash Key provided by your account manager';
$ch = curl_init('https://web.it-decision.com/v1/api/send-viber');
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "$userHashKey");
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($requestParams)); // 
$requestParams - raquest array with correct data 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); 
$result = curl_exec($ch); 
curl_close($ch);

Отправить Вайбер сообщение

https://web.it-decision.com/v1/api/send-viber
Example for text-image-button messages:
{
	"source_addr": "Custom Company", 						
	"destination_addr": 8882222200,							
	"message_type":108, 									
	"text":"Message content", 										
	"image":"https://yourdomain.com/images/image.jpg", 		
	"button_caption":"Join Us", 							
	"button_action":"https://yourdomain.com/join-us",   	
	"source_type":1, 										
	"callback_url":"https://yourdomain.com/viber-callback",
	"validity_period":3600
}

Example for promotional text messages:
{
	"source_addr": "Custom Company", 						
	"destination_addr": 8882222200,	
	"message_type":106, 								
	"text":"Message content",
	"source_type":1, 	
	"callback_url":"https://yourdomain.com/viber-callback",
	"validity_period":3600
}

Example for send file:
{
	"source_addr": "Custom Company", 						
	"destination_addr": 8882222200,						
	"message_type":222, 
	"file_url":" https://yourdomain.com/files/custom.pdf ",	
	"source_type":1, 								
	"callback_url":"https://yourdomain.com/viber-callback",
	"validity_period":180
}

Example for transactional template messages:
{
	"source_addr": "Custom Company", 						
	"destination_addr": 8882222200,	
	"message_type":304, 
	"text":"Message content",							
	"source_type":2,
	"callback_url":"https://yourdomain.com/viber-callback",
	"validity_period":180
}

Параметры

source_addr:

от 3 до 20 символов - от кого сообщение

destination_addr:

от 11 до 20 цифр – кому сообщение

message_type (тип отправленного сообщения):

6 - только текст (для основного устройства)

106 - только текст (для всех устройств)

8 - текст+изображение+кнопка (для основного устройства)

108 - текст+изображение+кнопка (для всех устройств)

9 - текст+кнопка (для основного устройства)

109 - текст+кнопка (для всех устройств)

222 - отправить файл (для всех устройств), поддерживаемые форматы: .doc, .docx, .rtf, .dot, .dotx, .odt ,odf, .fodt, .txt, .info, .pdf, .xps, .pdax, .eps, xls, .xlsx, .ods, .fods, .csv, .xlsm, .xltx

301 - транзакционный шаблонный текст (для основного устройства)

304 - транзакционный шаблонный текст (для всех устройств)

text:

до 1000 символов - текст Viber сообщения

image (Правильный URL-адрес с изображением для рекламного сообщения с заголовком кнопки и действием кнопки):

jpg or jpeg (тип mime — изображение/jpeg), максимальное разрешение 800x800 пикселей

png (тип mime — image/png), максимальное разрешение 800x800 пикселей

button_caption:

от 1 до 30 символов - надпись на кнопке

button_action:

Правильный URL для перехода при нажатии кнопки

source_type (Процедура отправки сообщения):

promotion message (сообщение может быть с текстом, изображением, кнопкой) - 1

transactional message (текстовое шаблонное сообщение) – 2

callback_url:

Правильный URL для обратного вызова статуса сообщения

validity_period:

TTL (время жизни) позволяет отправителю ограничить время жизни сообщения. В случае, если сообщение не получило статус «доставлено» до истечения времени, сообщение не будет списано и не будет доставлено пользователю. В случае, если TTL не был указан (нет параметра «ttl»), Viber будет пытаться доставить сообщение в течение 1 дня.

promotion message - мин. TTL 60 секунд макс. TTL 43200 секунд (12 часов)

transactional message - мин. TTL 60 секунд макс. TTL 43200 секунд(12 часов)

file_url:

Параметр только для типа сообщений 222, должен содержать корректный URL документа. Расширения файлов, разрешённые к отправке: .doc, .docx, .rtf, .dot, .dotx, .odt ,odf, .fodt, .txt, .info, .pdf, .xps, .pdax, .eps, xls, .xlsx, .ods, .fods, .csv, .xlsm, .xltx Файл должен содержать расширение и его название не может превышать 25 символов. Размер файла не должен превышать 200 MB.

Response:

{
     "message_id":4291235
}

Значения:

message_id:

Идентификатор отправленного сообщения

Получить Вайбер сообщение

 https://web.it-decision.com/v1/api/receive-viber
{
     "message_id":4291235
}

Параметры

message_id:

ID сообщения, статус которого вы хотите получить (за последние 30 дней)

{
     "message_id":4291235, 			
     "status":1, 					
}

Значения

message_id:

ID сообщения, статус которого вы хотите получить (за последние 30 дней)

status:

Текущий статус сообщения Viber

Получить Вайбер сообщения массово

Количество проверяемых сообщений — не более 200 в одном запросе.

 https://web.it-decision.com/v1/api/receive-bulk-viber
[
     {"message_id":11017894},
     {"message_id":11017879},
     {"message_id":11017865},
     {"message_id": ... n}
]

Параметры

message_id:

ID сообщения, статус которых вы хотите получить (за последние 30 дней)

{
    "11017894": {
        "message_id": 11017894,
        "status": 1
    },
    "11017879": {
        "message_id": 11017879,
        "status": 1
    },
    "11017865": {
        "name": "Empty parameter or parameter validation error",
        "message": "Invalid Parameter: message_id 11017865 is not accepted for you",
        "code": 1,
        "status": 400
    }
}

Значения

message_id:

ID сообщения, статус которого вы хотите получить (за последние 30 дней)

status:

Текущий статус сообщения Viber

Получение Callback

Обратный вызов будет возвращен на URL, указанный при отправке сообщения в параметре callback_url

{
    "message_id":4291235,                                 
    "status":1                                                                       
}

If the status is 3 (Rejected) then the additional parameter reject_code will be returned:
{
    "message_id":4291235,                                 
    "status":1,         
    "reject_code":9                                              
}

If the message type being sent is 301 or 304 (template transactional text) then the additional parameter matching_template_id will be returned
{
    "message_id":4291235,                                 
    "status":1,         
    "matching_template_id":11079289                                                            
}

Значения:

message_id:

ID сообщения

status:

Текущий статус сообщения

reject_code:

код, возвращаемый Viber при отклонении сообщения:

1 - Внутренняя ошибка сервера.

2 - Идентификатор не использовался более года/Идентификатор был недавно создан и еще не загружен на сервер.

3 - Ошибка в структуре запроса. Возможно, пропущена запятая, скобки, текст длиной более 1000 символов и т. д.

5 - Неверный тип сообщения. Либо неподдерживаемый тип, либо неверное значение.

6 - Отсутствуют обязательные параметры.

7 - Указывает на тайм-аут сервера на стороне Viber.

8 - Идентификатор был заблокирован пользователем/Пользователь полностью заблокировал деловые сообщения на своем устройстве.

9 - Номер назначения не зарегистрирован как пользователь Viber.

10 - Устройство не Android или iOS с версией Viber, поддерживающей деловые сообщения.

11 - Запрос был отправлен с IP-адреса, не входящего в белый список для этого идентификатора/В запросе использован неверный идентификатор, не принадлежащий партнеру.

13 - Ошибка в процессе выставления счета

18 - Отсутствует значение/Неверное значение в запросе параметра «label».

28 - Файл, который пытаются отправить, не имеет поддерживаемого формата для этой функции.

29 - Имя файла превышает максимально допустимые 25 символов.

30 - Если URL-адрес миниатюры состоит из более чем 1000 символов.

matching_template_id:

ID, выданный Viber при регистрации шаблона. Если параметр присутствует и значение параметра пустое, это означает, что сообщение не соответствует ни одному из зарегистрированных шаблонов и было перетарифицировано с транзакционного на рекламное сообщение на стороне Viber.

Статусы сообщений Viber:

Name
Status code

sent

0

delivered

1

error

2

rejected

3

undelivered

4

pending

5

seen

6

unknown

20

Ошибки:

Name
Too Many Requests

message

Rate limit exceeded

code

0

status

429

Name
Empty parameter or parameter validation error

message

Invalid Parameter: <param>

code

1

status

400

param:

destination_addrr more than 20 chars

wrong viber user account

source_type is wrong

source_type or message_type is wrong

source_type is wrong, because the account is another type

message_type is wrong

empty text

text more than 1000 chars

transaction message error - not empty image, button_caption or button_action

message_type is wrong - not empty image, button_caption or button_action

message_type is wrong - empty image, button_caption or button_action

message_type is wrong - empty button_caption or button_action

image is not url

image url wrong scheme

image not valid type

image is not valid

image size is more than 800x800

button_action is empty

button_caption is empty

button_caption or button_action is empty

image or button_action is empty

image or button_caption is empty

callback_url is not url

callback_url url wrong scheme

button_action is not url

button_action url wrong scheme

button_action more than 30 chars

message_id <message_id> is not accepted for you

file_url is not url

file_url wrong scheme

file_url contains an invalid file type or extension, possible file extensions to send: .doc, .docx, .rtf, .dot, .dotx, .odt ,odf, .fodt, .txt, .info, .pdf, .xps, .pdax, .eps, xls, .xlsx, .ods, .fods, .csv, .xlsm, .xltx

button_caption is not applicable with file_url

button_action is not applicable with file_url

image is not applicable with file_url

wrong message type for file_url

file_url is not applicable in this context

Name
Internal server error

message

The server encountered an unexpected condition which prevented it from fulfilling the request

code

2

status

500

Name
Topup balance is required

message

Sender balance is empty

code

3

status

402

Name
Duplicate error

message

Duplicate Viber message detected

code

4

status

400

Name
Message Template error

message

The message does not match any template

code

5

status

400

Name
Authorization error

message

Unauthorized

code

6

status

401

Примеры:

curl --location --request POST 'https://web.it-decision.com/v1/api/send-viber' \
--header 'Authorization: Basic api key' \
--header 'Content-Type: application/json' \
--data-raw '{"source_addr": "Custom Company", "destination_addr": 8882222200,"message_type":106,"text":"Message content","image":"https://yourdomain.com/images/image.jpg","button_caption":"Join Us","button_action":"https://yourdomain.com/join-us","source_type":1,"callback_url":"https://yourdomain.com/viber-callback","validity_period":3600}'

Last updated