> For the complete documentation index, see [llms.txt](https://ua-api.decisiontele.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ua-api.decisiontele.com/viber-templates-api-beta.md).

# Viber templates API (beta)

DecisionTelecom Viber API дозволяє надсилати та отримувати ділові повідомлення Viber у будь-яку країну світу та з неї через API. Кожне повідомлення ідентифікується унікальним випадковим ідентифікатором, тому користувачі можуть перевірити статус повідомлення, використовуючи задану кінцеву точку.

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

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

Щоб отримати ключ API, будь ласка, зв'яжіться з вашим менеджером по роботі з клієнтами.

## Авторизація

## Basic Auth

#### **Example**:

```
$userHashKey = 'User Hash Key provided by your account manager';
$ch = curl_init('https://web.it-decision.com/v2/api/create-viber-template-api');
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); 
```

## **Створення transactional Viber шаблону**

Шаблон транзакції – це стандартизований, попередньо затверджений формат повідомлення для сповіщень (наприклад, підтвердження замовлень, оновлення щодо доставки).&#x20;

Він складається з елементів:\
**Фіксований текст**: статичний контент, який залишається незмінним.\
**Заповнювачі (змінні)**: динамічні поля, що замінюються даними, що відповідають вимогам одержувача, під час надсилання.\
Використовуйте цей запит для надсилання нового шаблону. Після створення шаблон потрапляє в чергу модерації. Ви повинні дочекатися статусу «Approved» перед використанням.

**Винятки**:

* Максимальна довжина шаблону (без урахування фігурних дужок {{}}) – 1000 символів
* Кількість заповнювачів (змінних) не може перевищувати 8.
* Кількість символів у заповнювачі (змінній) не повинна перевищувати 125.
* Заповнювачі (змінні) **НЕ МОЖУТЬ** **бути на початку тексту або в кінці тексту**.
* Заповнювачі (змінні) **НЕ МОЖУТЬ БУТИ URL-адресами або посиланнями**.

{% tabs %}
{% tab title="POST" %}

```
https://web.it-decision.com/v2/api/create-viber-template-api
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Request POST:" %}

```json
Example for trasactional Viber template:
{
    "name":"Custom name",
    "template":"Dear {{John Doe}}, your {{john_doe}} account expires on {{September 18, 2026}}. Please renew your account using the link https://customsite.com/.",
    "callback_url":"https://customsite.com/templates-callback",
    "lang": "en"
}
```

{% endtab %}
{% endtabs %}

### **Параметри**

**name:** Обов'язкове. назва темплейту - до 100 символів

**template**: Обов'язкове. Максимальна довжина шаблону (без урахування фігурних дужок {{}}) – 1000 символів.\
Повідомлення з прикладами фраз у структурах {{...}}, які відрізнятимуться при подальшому надсиланні як транзакційних повідомлень. Під час формування транзакційного повідомлення ці фрази будуть використовуватися для надсилання відповідно до нових типів транзакційних повідомлень 1701 та 1702.\
Наприклад, транзакційне повідомлення, надіслане для шаблону з наведеного вище прикладу, буде таким:\
\&#xNAN;*Dear Alex* Cossac&#x6B;*, your alex\_*&#x63;ossack *account expires on October 15*, *2027. Please renew your account using the link <https://customsite.com/>.*\
Тут *Alex* Cossack, alex\_cossack, *October 15*, *2027 - це* фрази, які є змінними в транзакційних повідомленнях цього шаблону.

**callback\_url**: Обов'язкове. URL-адреса зворотного виклику, на яку будуть надсилатися статуси затвердження шаблону.

**lang:** Обов'язкове. Код мови шаблону (наприклад, en, uk, fr). [Locales list](#localization)

### Response:

{% tabs %}
{% tab title="JSON (POST)" %}

```json
{
    "success": true,
    "message": "Template successfully created",
    "data": {
        "example": "Dear John Doe, your john_doe account expires on September 18, 2026. Please renew your account using the link https://customsite.com/.",
        "template_text": "Dear {{var1}}, your {{var2}} account expires on {{var3}}. Please renew your account using the link https://customsite.com/.",
        "name": "Custom Name",
        "lang": "en",
        "status_template": "Pending Approval",
        "template_id": "36568982-d84c-42ce-9c72-8caf62cd8b05",
        "created_at": "2026-06-10 06:58:00",
        "id": 46
    }
}
```

{% endtab %}
{% endtabs %}

### **Значення**:

**success:** true/false

**message**: повідомлення про успішне або невдале створення шаблону

**data**: Об'єкт з інформацією про створений шаблон.\
**data.id**: Внутрішній ідентифікатор шаблону в базі даних.\
**data.name**: Назва шаблону.\
**data.template\_id**: Унікальний ідентифікатор шаблону для вашого облікового запису Viber.\
**data.template\_text**: Текст шаблону з назвами змінних (заповнювачів).\
**data.example**: Згенероване приклад повідомлення.\
**data.status\_template**: Поточний статус шаблону - **Pending Approval**, **Created**, **Approved**, **Rejected**.\
**data.created\_at**: (дата й час) Дата створення шаблону.\
**data.lang**: Мова шаблону.

### Отримання статусів на зазначений в запросі callback\_url:

{% tabs %}
{% tab title="JSON (POST)" %}

```json
{
    "template_id": "0aac888f-2ee2-4112-9659-1755a951966a",
    "status_template": "Approved"
}
```

{% endtab %}
{% endtabs %}

## **Отримання даних Viber шаблону**

{% tabs %}
{% tab title="POST" %}

```
 https://web.it-decision.com/v2/api/get-viber-template-api
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Request POST:" %}

```json
{
    "id":4291235
}
```

{% endtab %}
{% endtabs %}

### Параметри

**id:**

Внутрішній Ідентифікатор шаблону, статус якого ви хочете отримати

{% tabs %}
{% tab title="Response JSON:" %}

```json
{
    "success": true,
    "message": "Template received successfully",
    "data": {
        "id": 4291235,
        "template_id": "36568982-d84c-42ce-9c72-8caf62cd8b05",
        "name": "Custom Name",
        "template_text": "Dear {{var1}}, your {{var2}} account expires on {{var3}}. Please renew your account using the link https://customsite.com/.",
        "example": "Dear John Doe, your john_doe account expires on September 18, 2026. Please renew your account using the link https://customsite.com/.",
        "status_template": "Approved",
        "created_at": "2026-06-10 06:58:00",
        "lang": "en"
    }
}
```

{% endtab %}
{% endtabs %}

### **Значення**:

**success:** true/false

**message**: повідомлення про успішне або невдале створення шаблону

**data**: Об'єкт з інформацією про створений шаблон.\
**data.id**: Внутрішній ідентифікатор шаблону в базі даних.\
**data.name**: Назва шаблону.\
**data.template\_id**: Унікальний ідентифікатор шаблону для вашого облікового запису Viber.\
**data.template\_text**: Текст шаблону з назвами змінних (заповнювачів).\
**data.example**: Згенероване приклад повідомлення.\
**data.status\_template**: Поточний статус шаблону - **Pending Approval**, **Created**, **Approved**, **Rejected**.\
**data.created\_at**: (дата й час) Дата створення шаблону.\
**data.lang**: Мова шаблону.

## **Localization**&#x20;

| Language              | Code (lang) |
| --------------------- | ----------- |
| Arabic                | ar          |
| Armenian              | hy          |
| Belarusian            | be          |
| Bosnian               | bs          |
| Bulgarian             | bg          |
| Burmese               | my          |
| Chinese (Simplified)  | zh-Hans     |
| Chinese (Traditional) | zh-Hant     |
| Croatian              | hr          |
| Czech                 | cs          |
| Danish                | da          |
| Dutch                 | nl          |
| English               | en          |
| Finnish               | fi          |
| French                | fr\_FR      |
| Georgian              | ka          |
| German                | de          |
| Greek                 | el          |
| Hebrew                | he          |
| Hungarian             | hu          |
| Indonesian            | id          |
| Italian               | it          |
| Japanese              | ja          |
| Nepali                | ne          |
| Norwegian             | no          |
| Persian               | fa          |
| Polish                | pl          |
| Portuguese (Brazil)   | pt\_BR      |
| Portuguese (Portugal) | pt\_PT      |
| Romanian              | ro          |
| Russian               | ru          |
| Serbian               | sr          |
| Slovak                | sk          |
| Slovenian             | sl          |
| Spanish               | es\_ES      |
| Swedish               | sv          |
| Thai                  | th          |
| Turkish               | tr          |
| Ukrainian             | uk          |
| Vietnamese            | vi          |

### **Errors** <a href="#errors" id="errors"></a>

| 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:**

callback\_url is not url

callback\_url url wrong scheme

| Name    | Internal server error                                              |
| ------- | ------------------------------------------------------------------ |
| message | Error for template registration on Viber side: \<Viber side error> |
| code    | 1                                                                  |
| status  | 400                                                                |

| Name    | Message Template error                                                                   |
| ------- | ---------------------------------------------------------------------------------------- |
| message | Viber Business Account is not configured. Please contact your manager for clarification. |
| code    | 7                                                                                        |
| status  | 400                                                                                      |
|         |                                                                                          |

| Name    | Authorization error |
| ------- | ------------------- |
| message | Unauthorized access |
| code    | 6                   |
| status  | 401                 |
