---
title: Viber Transactional & OTP Message Templates
description: Learn how to create and send Viber Transactional & OTP message templates on Apifon's platform. Required for all transactional Viber messages from July 1, 2026.
---

[Skip to content](https://kb.apifon.com/viber-transactional-and-otp-message-templates#main-content)

- [English](https://kb.apifon.com/viber-transactional-and-otp-message-templates)
- [Ελληνικά](https://kb.apifon.com/el/viber-transactional-otp-message-templates-el)

English

Show submenu for translations

![apifon-full-lock-up-purple-1.png\]](https://kb.apifon.com/hs-fs/hubfs/apifon-full-lock-up-purple-1.png?height=40&name=apifon-full-lock-up-purple-1.png)

Open main navigation

Close main navigation

- - [English](https://kb.apifon.com/viber-transactional-and-otp-message-templates)
    - [Ελληνικά](https://kb.apifon.com/el/viber-transactional-otp-message-templates-el)
  
  
  
  
  
  
  English
  
  Show submenu for translations
- [apifon.com](https://www.apifon.com/)

[apifon.com](https://www.apifon.com/)

 How can we help you today?

- There are no suggestions because the search field is empty.

1. [Knowledge Base](https://kb.apifon.com/?hsLang=en)
2. [Campaigns](https://kb.apifon.com/campaigns?hsLang=en)
3. [Viber](https://kb.apifon.com/campaigns?hsLang=en#viber)

# Viber Transactional & OTP Message Templates

**Effective July 1st, 2026, templates are mandatory for all Transactional Viber Business Messages.**

This includes messages such as order confirmations, appointment reminders, and one-time passwords (OTPs), which will no longer support free-form text.

Transactional Message Templates are structured, text-only message formats that allow businesses to send standardized messages using dynamic parameters for personalization.

This requirement applies only to transactional messaging and does not affect promotional Viber campaigns.

### **The Two Categories**

Viber supports two types of transactional templates:

| Category | Description |
| --- | --- |
| **Transactional** | Used for customer notifications such as order confirmations, appointment reminders, and service updates. |
| **OTP** | Used for authentication flows requiring a one-time password.  |

### **Part 1 — Creating a Template**

#### **Step 1 — Create the Template**

Use the Apifon API or the Mookee platform to create and manage your Viber templates, track approval status, and start sending.

- **Via the Apifon platform (Mookee UI)** — follow the steps below.
- **Via the Viber Templates REST API** — manage templates programmatically. See the [Viber Templates REST API](https://docs.apifon.com/apireference.html#template-rules-amp-constraints) for full details. You will need an [Account](https://kb.apifon.com/create-an-account?hsLang=en) and an [API Token](https://kb.apifon.com/edit-api-tokens?hsLang=en) with the IM scope enabled.

In both cases, the template is submitted to Viber for approval. The response returns immediately with status `PENDING` and updates automatically once Viber reviews it.

#### **To create a template via the Mookee UI:**

1. Go to [mookee.apifon.com](https://mookee.apifon.com/#/dashboard/) and log in.
2. In the left menu, click **Templates**.  
      
   ![Dashboard - Templates](https://kb.apifon.com/hs-fs/hubfs/Dashboard%20-%20Templates.png?width=624&height=372&name=Dashboard%20-%20Templates.png)
3. Select the **Viber Template** tab.
   
   ![VIBER TEMPLATE TAB](https://kb.apifon.com/hs-fs/hubfs/VIBER%20TEMPLATE%20TAB.png?width=475&height=316&name=VIBER%20TEMPLATE%20TAB.png)
   
   Here you can view, search, preview, delete, and check the status and ID of your templates.
   
   ![Transactional Template (1)](https://kb.apifon.com/hs-fs/hubfs/Transactional%20Template%20(1).png?width=646&height=354&name=Transactional%20Template%20(1).png)
4. Click the **+ Add** button.
   
   ![](https://kb.apifon.com/hs-fs/hubfs/image-png-Jun-10-2026-10-56-03-9513-AM.png?width=190&height=67&name=image-png-Jun-10-2026-10-56-03-9513-AM.png)
5. Select **Transactional** as the type of Viber template .
   
   ![TRANSACTIONAL OR PROMO](https://kb.apifon.com/hs-fs/hubfs/TRANSACTIONAL%20OR%20PROMO.png?width=347&height=224&name=TRANSACTIONAL%20OR%20PROMO.png)
6. Choose either **[OTP or Transactional](https://kb.apifon.com/viber-transactional-and-otp-message-templates#transactional_and_otp_templates)** as the message category. Each category has different requirements; for example, OTP templates require a single-use PIN.
   
   ![OTP OR TRANSACTIONAL](https://kb.apifon.com/hs-fs/hubfs/OTP%20OR%20TRANSACTIONAL.png?width=670&height=116&name=OTP%20OR%20TRANSACTIONAL.png)
7. Provide a descriptive **name** and **language **of your template.
   
   ![template name & language](https://kb.apifon.com/hs-fs/hubfs/template%20name%20%26%20language.png?width=670&height=83&name=template%20name%20%26%20language.png)
8. Select your **Viber Sender ID** from the dropdown list. This must be one of your registered Viber senders. If no senders appear, you need to set up a Viber Sender ID first.
   
   ![Viber Sender ID](https://kb.apifon.com/hs-fs/hubfs/Viber%20Sender%20ID.png?width=670&height=81&name=Viber%20Sender%20ID.png)

#### **Step 2 — Define Your Parameters and Message Body**

1. On the right side, under the message preview, click **Add Variable**. Enter a **Variable name** and an **Example value**, then click **Add & Insert**.  
     - **Variable name** — the placeholder name (e.g., `NAME`, `ORDER`). This is what goes inside ![](https://kb.apifon.com/hs-fs/hubfs/image-png-Aug-11-2026-09-26-21-3090-AM.png?width=58&height=30&name=image-png-Aug-11-2026-09-26-21-3090-AM.png) in the message body.
     - **Example value** — a sample value for preview purposes (e.g., `Maria`, `A-4471`).
       
       ![Add Variable](https://kb.apifon.com/hs-fs/hubfs/Add%20Variable.png?width=355&height=698&name=Add%20Variable.png)  
       
       ![](https://kb.apifon.com/hs-fs/hubfs/image-png-Jun-11-2026-03-18-06-6320-PM.png?width=281&height=199&name=image-png-Jun-11-2026-03-18-06-6320-PM.png)
2. In the center area, write your message body.
   
   ![Transactional - Message Content](https://kb.apifon.com/hs-fs/hubfs/Transactional%20-%20Message%20Content.png?width=670&height=323&name=Transactional%20-%20Message%20Content.png)
   
   Use the add variable button to insert variable names as ![](https://kb.apifon.com/hs-fs/hubfs/image-png-Aug-11-2026-09-35-28-9482-AM.png?width=214&height=30&name=image-png-Aug-11-2026-09-35-28-9482-AM.png) in the body of your message.
3. Follow all validation rules shown in the top-right of the template editor (character limits, formatting guidelines, etc.).
4. When ready, click **Submit for Approval**.

Make sure your contact list includes the variable fields your template uses (e.g., `NAME`, `ORDER`). If a recipient is missing a required field, the message will not be delivered to them. 

If the body or parameters fail UI validation, the submission is rejected immediately, and nothing is saved.

Rakuten Viber's value rules: 

- Add up to **8 variables.**
- Maximum **125 characters** per value.

#### **Step 3 — Track Approval and Get the Template ID**

1. Back on the Templates menu, click the **Transactional** filter to see only your transactional templates.
2. Wait for Viber's review. The status updates automatically:
   
   | Status | Meaning |
   | --- | --- |
   | **PENDING** | Submitted, waiting on Viber's review  |
   | **APPROVED** | Viber accepted the template  |
   | **DECLINED** | Viber rejected the template. Create a new template with the required changes and resubmit it for approval.  |
3. Once **APPROVED**, you are ready to send. 

If you created your template via the Apifon platform and want to use it in your API requests, click the **Copy** icon to copy the Viber Template ID and include it in your send request.  
![image-png-Jun-12-2026-12-31-02-7271-PM](https://kb.apifon.com/hs-fs/hubfs/image-png-Jun-12-2026-12-31-02-7271-PM.png?width=670&height=187&name=image-png-Jun-12-2026-12-31-02-7271-PM.png)

### **Part 2 — Sending a Message with a Transactional Template**

### **Sending via the Apifon Platform**

Once the template has been approved, follow the steps below to send your Viber campaign from the Apifon platform. 

Follow the standard process for creating a [Viber campaign](https://kb.apifon.com/create-viber-campaign?hsLang=en). At the third step of campaign design, choose one of the following:

- **If you have an approved template:** Use the **Templates** button to select it. The message text is filled in automatically.
- **If you don't have a template yet:** Type your message text directly in the message field, including the variables.

In both cases, make sure the variables in your campaign text use single curly braces `{VALUE}` instead of double ![](https://kb.apifon.com/hs-fs/hubfs/image-png-Aug-11-2026-09-56-03-1661-AM.png?width=103&height=30&name=image-png-Aug-11-2026-09-56-03-1661-AM.png). The platform requires this format for campaign personalization.

- Schedule the campaign at least **10 minutes ahead**. This activates [auto-templating](https://kb.apifon.com/auto-templating?hsLang=en).

### **Sending via API**

The steps below apply to API users.

First, study our public [API Documentation](https://docs.apifon.com/gettingStarted.html#get-started)<https://docs.apifon.com/gettingStarted.html#get-started>for detailed instructions on sending and managing Viber Template requests.

#### **Step 1 — Reference the Template**

In the send request, place the template\_id on the Viber channel entry.

#### **Step 2 — Provide Values for Each Recipient**

Each recipient carries their own set of personalization values. For every parameter the template declares, the recipient must supply a matching value.

**The Most Important Thing to Understand — Variable Name Matching**

Variable names must match **exactly**.

When you create a template on the Apifon platform, you choose the variable names yourself. In the message body, each variable is wrapped in double curly braces.

Those exact names must then appear in the subscriber fields of the API request. Each recipient carries a params block, and that block must contain a key for every variable name defined in the template, using the exact same spelling and capitalization (variable names are case-sensitive).

The platform reads each defined variable name (e.g., NAME, ORDER), looks it up in the specific subscriber’s params, and populates the template accordingly for that recipient. 

#### **Variable Matching Rules**

| Scenario | Result |
| --- | --- |
| A variable (e.g. `ORDER`) is missing from a subscriber's params. | The request was rejected (403). Please name the subscriber and the missing variable. |
| The name is spelled differently (`Order` vs `ORDER`). | Treated as missing → rejected. Names must match exactly. |
| A subscriber has extra params that the template doesn't use. | Fine —  any additional parameters are simply ignored. Only the declared variable names are read. |
| A value exceeds 125 characters or contains a link. | Rejected, naming the subscriber and variable. |

#### **Step 3 — Delivery**

Valid requests pass through the platform's normal pipeline and are delivered to Viber as transactional template messages, with the approved wording filled in per recipient. Billing is automatically at the transactional rate.

Start creating your first template today!

Thank you for reading.

- [Getting Started](https://kb.apifon.com/getting-started?hsLang=en)
- [Account & Billing](https://kb.apifon.com/account-billing?hsLang=en#main-content)
  
  
  
  
  
    - [Account Management](https://kb.apifon.com/account-billing?hsLang=en#account-management)
    - [Billing & Payments](https://kb.apifon.com/account-billing?hsLang=en#billing-payments)
    - [Security & Access](https://kb.apifon.com/account-billing?hsLang=en#security-access)
    - [Email & Domain Security](https://kb.apifon.com/account-billing?hsLang=en#email-domain-security)
- [Campaigns](https://kb.apifon.com/campaigns?hsLang=en#main-content)
  
  
  
  
  
    - [Campaign Management](https://kb.apifon.com/campaigns?hsLang=en#campaign-management)
    - [Templates & Content](https://kb.apifon.com/campaigns?hsLang=en#templates-content)
    - [SMS](https://kb.apifon.com/campaigns?hsLang=en#sms)
    - [Viber](https://kb.apifon.com/campaigns?hsLang=en#viber)
    - [Email](https://kb.apifon.com/campaigns?hsLang=en#email)
    - [Landing Pages](https://kb.apifon.com/campaigns?hsLang=en#landing-pages)
    - [Automations](https://kb.apifon.com/campaigns?hsLang=en#automations)
- [Integrations](https://kb.apifon.com/integrations?hsLang=en)
- [Lists](https://kb.apifon.com/lists?hsLang=en#main-content)
  
  
  
  
  
    - [List Management Tools](https://kb.apifon.com/lists?hsLang=en#list-management-tools)
    - [Forms](https://kb.apifon.com/lists?hsLang=en#forms)
    - [Segmentation](https://kb.apifon.com/lists?hsLang=en#segmentation)
- [Reports & Analytics](https://kb.apifon.com/reports-analytics?hsLang=en#main-content)
  
  
  
  
  
    - [SMS](https://kb.apifon.com/reports-analytics?hsLang=en#sms)
    - [Viber](https://kb.apifon.com/reports-analytics?hsLang=en#viber)
    - [Email](https://kb.apifon.com/reports-analytics?hsLang=en#email)
    - [Tracking & Integrations](https://kb.apifon.com/reports-analytics?hsLang=en#tracking-integrations)
    - [E-Commerce](https://kb.apifon.com/reports-analytics?hsLang=en#e-commerce)
- [FAQs](https://kb.apifon.com/faqs?hsLang=en)

[![](https://kb.apifon.com/hs-fs/hubfs/apifon-master-logo-white.png?width=1080&height=556&name=apifon-master-logo-white.png)](http://apifon.com)

<https://www.facebook.com/apifon> <https://www.linkedin.com/company/apifon> <https://www.instagram.com/apifon_co>

Copyright © 2026, Apifon S.A