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 for full details. You will need an Account and an API Token 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:
- Go to mookee.apifon.com and log in.
- In the left menu, click Templates.

- Select the Viber Template tab.

Here you can view, search, preview, delete, and check the status and ID of your templates..png?width=646&height=354&name=Transactional%20Template%20(1).png)
- Click the + Add button.

- Select Transactional as the type of Viber template .

- Choose either OTP or Transactional as the message category. Each category has different requirements; for example, OTP templates require a single-use PIN.

- Provide a descriptive name and language of your template.

- 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.

Step 2 — Define Your Parameters and Message Body
- 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
in the message body. - Example value — a sample value for preview purposes (e.g.,
Maria,A-4471).

- Variable name — the placeholder name (e.g.,
- In the center area, write your message body.

Use the add variable button to insert variable names as
in the body of your message. - Follow all validation rules shown in the top-right of the template editor (character limits, formatting guidelines, etc.).
- 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
- Back on the Templates menu, click the Transactional filter to see only your transactional templates.
- 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. - 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.
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. 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
. The platform requires this format for campaign personalization.
-
Schedule the campaign at least 10 minutes ahead. This activates auto-templating.
Sending via API
The steps below apply to API users.
First, study our public API Documentation 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.