<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>article Registering Viber Transactional Message Templates via Sinch in Viber</title>
    <link>https://community.sinch.com/t5/Viber/Registering-Viber-Transactional-Message-Templates-via-Sinch/ta-p/19923</link>
    <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P dir="ltr"&gt;&lt;STRONG&gt;Viber requires all transactional and OTP messages to use pre-approved templates.&lt;/STRONG&gt; Using approved templates guarantees your messages are compliant with Viber's content policy and billed at transactional rates. Template registration is handled through your Sinch account manager.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P dir="ltr"&gt;&lt;STRONG&gt;Step 1: Prepare your template content&lt;/STRONG&gt;&lt;/P&gt;
&lt;P dir="ltr"&gt;Before submitting, make sure each template meets Viber's requirements:&lt;/P&gt;
&lt;UL dir="ltr"&gt;
&lt;LI&gt;&lt;STRONG&gt;Category:&lt;/STRONG&gt; either &lt;EM&gt;OTP&lt;/EM&gt; or &lt;EM&gt;Transactional&lt;/EM&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Language:&lt;/STRONG&gt; one language per template. If you need the same message in several languages, each language is a separate template.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Length:&lt;/STRONG&gt; 1–1,000 characters of message text.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Variables:&lt;/STRONG&gt; up to 8 dynamic placeholders written in double curly braces, e.g. &lt;CODE&gt;{{order_id}}&lt;/CODE&gt;. Variable names are English only, max 50 characters. Multiple variables can sit back-to-back if separated by at least one space.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Structure:&lt;/STRONG&gt; the template must start and end with fixed text, not a variable. The one exception is &lt;CODE&gt;{{pin}}&lt;/CODE&gt; in OTP templates, which may be the last element.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;OTP templates&lt;/STRONG&gt; must include a &lt;CODE&gt;{{pin}}&lt;/CODE&gt; variable. These render in Viber with a dedicated "Copy" button for the code.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Example values:&lt;/STRONG&gt; for every variable, provide a realistic sample value (max 125 characters). Viber's moderators use these to evaluate the template.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P dir="ltr"&gt;Note: when you later send messages, each variable value is limited to 125 characters and may not contain URLs or links.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P dir="ltr"&gt;&lt;STRONG&gt;Step 2: Submit to your Sinch account manager&lt;/STRONG&gt;&lt;/P&gt;
&lt;P dir="ltr"&gt;Send your account manager, for each template:&lt;/P&gt;
&lt;UL dir="ltr"&gt;
&lt;LI&gt;Your Viber Service ID (business account)&lt;/LI&gt;
&lt;LI&gt;Template name (optional, for your own tracking)&lt;/LI&gt;
&lt;LI&gt;Category (OTP or Transactional)&lt;/LI&gt;
&lt;LI&gt;Language&lt;/LI&gt;
&lt;LI&gt;The full template text with placeholders&lt;/LI&gt;
&lt;LI&gt;Variable names and example values&lt;/LI&gt;
&lt;/UL&gt;
&lt;P dir="ltr"&gt;For large volumes, submit templates in bulk via spreadsheet (up to 100 templates per file); your account manager can provide the format.&lt;/P&gt;
&lt;P dir="ltr"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P dir="ltr"&gt;&lt;STRONG&gt;Step 3: Moderation&lt;/STRONG&gt;&lt;/P&gt;
&lt;P dir="ltr"&gt;Once submitted, the template enters Viber's moderation queue with status &lt;EM&gt;Pending&lt;/EM&gt;. Viber reviews templates within up to 24 hours on business days. The outcome is either:&lt;/P&gt;
&lt;UL dir="ltr"&gt;
&lt;LI&gt;&lt;STRONG&gt;Approved&lt;/STRONG&gt; — the template receives a Template ID and is ready to use.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Declined&lt;/STRONG&gt; — the template was rejected for content policy reasons.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P dir="ltr"&gt;Your account manager will confirm the result and share the Template ID.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P dir="ltr"&gt;Reference the Template ID in your send request, supply values for every variable exactly as named in the template, and set the language to match the template's locale. Only templates in &lt;EM&gt;Approved&lt;/EM&gt; status can be sent; requests referencing a Pending or Declined template will fail.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P dir="ltr"&gt;&lt;STRONG&gt;Good to know&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL dir="ltr"&gt;
&lt;LI&gt;Templates cannot be edited. To change an approved template, submit a new one and retire the old one.&lt;/LI&gt;
&lt;LI&gt;Each Service ID can hold up to 2,000 templates.&lt;/LI&gt;
&lt;LI&gt;Templates are tied to a specific Service ID and cannot be shared across accounts.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;-----------------Parameter details---------------------------------------------------------&lt;/P&gt;
&lt;TABLE data-layout="default" data-table-width="760" data-number-column="false" data-testid="renderer-table"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #747474;" data-cell-background="#747474"&gt;
&lt;P data-local-id="4ee00807630f" data-renderer-start-pos="111"&gt;Parameter (data type)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #747474;" data-cell-background="#747474"&gt;
&lt;P data-local-id="a9736a83855c" data-renderer-start-pos="136"&gt;Description&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #747474;" data-cell-background="#747474"&gt;
&lt;P data-local-id="2e30365ae117" data-renderer-start-pos="151"&gt;Validations&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="00c7dcbd3897" data-renderer-start-pos="168"&gt;service_id (integer)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="a94bf9d031b7" data-renderer-start-pos="192"&gt;Route parameter. The service ID for which the action is performed.&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="f8e28654a7d5" data-renderer-start-pos="262"&gt;Required&lt;BR /&gt;Must exist and belong to the partner performing the request.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="c8c40ad55dc2" data-renderer-start-pos="337"&gt;name (string)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="987bfafd1e7b" data-renderer-start-pos="354"&gt;A human-readable label for the template.&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="f17bd9fc4905" data-renderer-start-pos="398"&gt;Optional&lt;BR /&gt;Max length: 64&lt;BR /&gt;Allowed: letters, digits, spaces. Special characters are not allowed.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="fc22e659b85c" data-renderer-start-pos="497"&gt;category (string)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="001844300fd3" data-renderer-start-pos="518"&gt;The category of the message template.&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="023061f6b468" data-renderer-start-pos="559"&gt;Required&lt;BR /&gt;Options: &lt;SPAN data-vc="highlighted-text" data-highlighted="true"&gt;&lt;SPAN class="_1mT5xdRAKS"&gt;&lt;SPAN class="_0nmozVaHVx _2V7sgO2M4S _3BoeIDwZ7G _30zrXRyxdf _0ReiIH7zJH" data-testid="definition-highlighter"&gt;OTP&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;, Transactional.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="f8025f76a173" data-renderer-start-pos="602"&gt;params (array)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="1611a0d5c77c" data-renderer-start-pos="620"&gt;A list of dynamic parameters (variables) used within the template text.&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="c074cc6cbe64" data-renderer-start-pos="695"&gt;Required&lt;BR /&gt;Max items - 8&lt;BR /&gt;Pass an empty array {} if the template is static (contains no variables).&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="916374807d93" data-renderer-start-pos="797"&gt;params.name (string)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="a2cfb4a3ac0d" data-renderer-start-pos="821"&gt;Defines the variable name to be used as a placeholder in the template.&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="4dc17a1364af" data-renderer-start-pos="895"&gt;Conditional: Required if params is not empty.&lt;BR /&gt;Max length - 50 characters.&lt;BR /&gt;English Only.&lt;BR /&gt;Note for &lt;SPAN data-vc="highlighted-text" data-highlighted="true"&gt;OTP&lt;/SPAN&gt; category: If the template is for &lt;SPAN data-vc="highlighted-text" data-highlighted="true"&gt;OTP&lt;/SPAN&gt;(category=&lt;SPAN data-vc="highlighted-text" data-highlighted="true"&gt;OTP&lt;/SPAN&gt;), it must include the {{pin}} placeholder.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="df161c549e17" data-renderer-start-pos="1094"&gt;params.type (string)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="afea8f32192f" data-renderer-start-pos="1118"&gt;The data type of the variable that you will use in send template message request.&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="bd3cf5c474e4" data-renderer-start-pos="1203"&gt;Conditional: Required if params is not empty.&lt;BR /&gt;Must be “TEXT”&lt;BR /&gt;Templates variables validations&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="eca08a14513d" data-renderer-start-pos="1301"&gt;locales (array)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="ff6a2a6c1e98" data-renderer-start-pos="1320"&gt;Configuration for language and message content.&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="d0c6a35cce87" data-renderer-start-pos="1371"&gt;Required&lt;BR /&gt;Max items - 1&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="a76592247371" data-renderer-start-pos="1399"&gt;locales.lang (string)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="d05532542e09" data-renderer-start-pos="1424"&gt;Template language code (e.g., en, ru, fr).&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="10998d023460" data-renderer-start-pos="1470"&gt;Required&lt;BR /&gt;Min length - 1 character&lt;BR /&gt;Format must match one of the values supported by the system. Please refer to the table below for the exact string format.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="b7f4b89c3c6c" data-renderer-start-pos="1631"&gt;locales.template (string)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="122b130c8adf" data-renderer-start-pos="1660"&gt;The message string containing static text and placeholders.&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="86a9dafb4c79" data-renderer-start-pos="1723"&gt;Required&lt;BR /&gt;Min length - 1 character&lt;BR /&gt;Max length - 1000 characters.&lt;BR /&gt;Must start and end with static text, not a variable. The only exception is the {{pin}} placeholder for &lt;SPAN data-vc="highlighted-text" data-highlighted="true"&gt;OTP&lt;/SPAN&gt; templates, which can be placed at the very end.&lt;BR /&gt;Multiple parameters can be used back-to-back, provided they are separated by at least a single space.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="c73387752869" data-renderer-start-pos="2049"&gt;varExample (array)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="cfc0bda78442" data-renderer-start-pos="2071"&gt;A list of example values for the declared parameters. Used for template moderation.&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="7d1ccdf0ef24" data-renderer-start-pos="2158"&gt;Required&lt;BR /&gt;Max Items - 8&lt;BR /&gt;Pass an empty array [] for static templates.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="a892eb658592" data-renderer-start-pos="2231"&gt;varExample.name (string)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="108ff98f8cb7" data-renderer-start-pos="2259"&gt;The name of the parameter (must match a name defined in params).&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="0cc3900f247a" data-renderer-start-pos="2327"&gt;Conditional: Required if params is not empty.&lt;BR /&gt;Max length - 50 characters.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="89b86f680cac" data-renderer-start-pos="2406"&gt;varExample.example (string)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="b2b7ae58f0f5" data-renderer-start-pos="2437"&gt;Conditional. A sample value for the parameter content. Required if params is not empty.&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="02fb9afe8f04" data-renderer-start-pos="2528"&gt;Conditional: Required if params is not empty.&lt;BR /&gt;Max length - 125 characters.&lt;BR /&gt;Please note - When sending an actual message, the placeholder value is limited to 125 characters, links are not allowed.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;</description>
    <pubDate>Mon, 21 Sep 2026 10:20:25 GMT</pubDate>
    <dc:creator>Matthew_Kerr</dc:creator>
    <dc:date>2026-09-21T10:20:25Z</dc:date>
    <item>
      <title>Registering Viber Transactional Message Templates via Sinch</title>
      <link>https://community.sinch.com/t5/Viber/Registering-Viber-Transactional-Message-Templates-via-Sinch/ta-p/19923</link>
      <description>&lt;DIV class="lia-message-template-content-zone"&gt;
&lt;P dir="ltr"&gt;&lt;STRONG&gt;Viber requires all transactional and OTP messages to use pre-approved templates.&lt;/STRONG&gt; Using approved templates guarantees your messages are compliant with Viber's content policy and billed at transactional rates. Template registration is handled through your Sinch account manager.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P dir="ltr"&gt;&lt;STRONG&gt;Step 1: Prepare your template content&lt;/STRONG&gt;&lt;/P&gt;
&lt;P dir="ltr"&gt;Before submitting, make sure each template meets Viber's requirements:&lt;/P&gt;
&lt;UL dir="ltr"&gt;
&lt;LI&gt;&lt;STRONG&gt;Category:&lt;/STRONG&gt; either &lt;EM&gt;OTP&lt;/EM&gt; or &lt;EM&gt;Transactional&lt;/EM&gt;.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Language:&lt;/STRONG&gt; one language per template. If you need the same message in several languages, each language is a separate template.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Length:&lt;/STRONG&gt; 1–1,000 characters of message text.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Variables:&lt;/STRONG&gt; up to 8 dynamic placeholders written in double curly braces, e.g. &lt;CODE&gt;{{order_id}}&lt;/CODE&gt;. Variable names are English only, max 50 characters. Multiple variables can sit back-to-back if separated by at least one space.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Structure:&lt;/STRONG&gt; the template must start and end with fixed text, not a variable. The one exception is &lt;CODE&gt;{{pin}}&lt;/CODE&gt; in OTP templates, which may be the last element.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;OTP templates&lt;/STRONG&gt; must include a &lt;CODE&gt;{{pin}}&lt;/CODE&gt; variable. These render in Viber with a dedicated "Copy" button for the code.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Example values:&lt;/STRONG&gt; for every variable, provide a realistic sample value (max 125 characters). Viber's moderators use these to evaluate the template.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P dir="ltr"&gt;Note: when you later send messages, each variable value is limited to 125 characters and may not contain URLs or links.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P dir="ltr"&gt;&lt;STRONG&gt;Step 2: Submit to your Sinch account manager&lt;/STRONG&gt;&lt;/P&gt;
&lt;P dir="ltr"&gt;Send your account manager, for each template:&lt;/P&gt;
&lt;UL dir="ltr"&gt;
&lt;LI&gt;Your Viber Service ID (business account)&lt;/LI&gt;
&lt;LI&gt;Template name (optional, for your own tracking)&lt;/LI&gt;
&lt;LI&gt;Category (OTP or Transactional)&lt;/LI&gt;
&lt;LI&gt;Language&lt;/LI&gt;
&lt;LI&gt;The full template text with placeholders&lt;/LI&gt;
&lt;LI&gt;Variable names and example values&lt;/LI&gt;
&lt;/UL&gt;
&lt;P dir="ltr"&gt;For large volumes, submit templates in bulk via spreadsheet (up to 100 templates per file); your account manager can provide the format.&lt;/P&gt;
&lt;P dir="ltr"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P dir="ltr"&gt;&lt;STRONG&gt;Step 3: Moderation&lt;/STRONG&gt;&lt;/P&gt;
&lt;P dir="ltr"&gt;Once submitted, the template enters Viber's moderation queue with status &lt;EM&gt;Pending&lt;/EM&gt;. Viber reviews templates within up to 24 hours on business days. The outcome is either:&lt;/P&gt;
&lt;UL dir="ltr"&gt;
&lt;LI&gt;&lt;STRONG&gt;Approved&lt;/STRONG&gt; — the template receives a Template ID and is ready to use.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Declined&lt;/STRONG&gt; — the template was rejected for content policy reasons.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P dir="ltr"&gt;Your account manager will confirm the result and share the Template ID.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P dir="ltr"&gt;Reference the Template ID in your send request, supply values for every variable exactly as named in the template, and set the language to match the template's locale. Only templates in &lt;EM&gt;Approved&lt;/EM&gt; status can be sent; requests referencing a Pending or Declined template will fail.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P dir="ltr"&gt;&lt;STRONG&gt;Good to know&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL dir="ltr"&gt;
&lt;LI&gt;Templates cannot be edited. To change an approved template, submit a new one and retire the old one.&lt;/LI&gt;
&lt;LI&gt;Each Service ID can hold up to 2,000 templates.&lt;/LI&gt;
&lt;LI&gt;Templates are tied to a specific Service ID and cannot be shared across accounts.&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;-----------------Parameter details---------------------------------------------------------&lt;/P&gt;
&lt;TABLE data-layout="default" data-table-width="760" data-number-column="false" data-testid="renderer-table"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #747474;" data-cell-background="#747474"&gt;
&lt;P data-local-id="4ee00807630f" data-renderer-start-pos="111"&gt;Parameter (data type)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #747474;" data-cell-background="#747474"&gt;
&lt;P data-local-id="a9736a83855c" data-renderer-start-pos="136"&gt;Description&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #747474;" data-cell-background="#747474"&gt;
&lt;P data-local-id="2e30365ae117" data-renderer-start-pos="151"&gt;Validations&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="00c7dcbd3897" data-renderer-start-pos="168"&gt;service_id (integer)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="a94bf9d031b7" data-renderer-start-pos="192"&gt;Route parameter. The service ID for which the action is performed.&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="f8e28654a7d5" data-renderer-start-pos="262"&gt;Required&lt;BR /&gt;Must exist and belong to the partner performing the request.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="c8c40ad55dc2" data-renderer-start-pos="337"&gt;name (string)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="987bfafd1e7b" data-renderer-start-pos="354"&gt;A human-readable label for the template.&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="f17bd9fc4905" data-renderer-start-pos="398"&gt;Optional&lt;BR /&gt;Max length: 64&lt;BR /&gt;Allowed: letters, digits, spaces. Special characters are not allowed.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="fc22e659b85c" data-renderer-start-pos="497"&gt;category (string)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="001844300fd3" data-renderer-start-pos="518"&gt;The category of the message template.&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="023061f6b468" data-renderer-start-pos="559"&gt;Required&lt;BR /&gt;Options: &lt;SPAN data-vc="highlighted-text" data-highlighted="true"&gt;&lt;SPAN class="_1mT5xdRAKS"&gt;&lt;SPAN class="_0nmozVaHVx _2V7sgO2M4S _3BoeIDwZ7G _30zrXRyxdf _0ReiIH7zJH" data-testid="definition-highlighter"&gt;OTP&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;, Transactional.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="f8025f76a173" data-renderer-start-pos="602"&gt;params (array)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="1611a0d5c77c" data-renderer-start-pos="620"&gt;A list of dynamic parameters (variables) used within the template text.&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="c074cc6cbe64" data-renderer-start-pos="695"&gt;Required&lt;BR /&gt;Max items - 8&lt;BR /&gt;Pass an empty array {} if the template is static (contains no variables).&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="916374807d93" data-renderer-start-pos="797"&gt;params.name (string)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="a2cfb4a3ac0d" data-renderer-start-pos="821"&gt;Defines the variable name to be used as a placeholder in the template.&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="4dc17a1364af" data-renderer-start-pos="895"&gt;Conditional: Required if params is not empty.&lt;BR /&gt;Max length - 50 characters.&lt;BR /&gt;English Only.&lt;BR /&gt;Note for &lt;SPAN data-vc="highlighted-text" data-highlighted="true"&gt;OTP&lt;/SPAN&gt; category: If the template is for &lt;SPAN data-vc="highlighted-text" data-highlighted="true"&gt;OTP&lt;/SPAN&gt;(category=&lt;SPAN data-vc="highlighted-text" data-highlighted="true"&gt;OTP&lt;/SPAN&gt;), it must include the {{pin}} placeholder.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="df161c549e17" data-renderer-start-pos="1094"&gt;params.type (string)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="afea8f32192f" data-renderer-start-pos="1118"&gt;The data type of the variable that you will use in send template message request.&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="bd3cf5c474e4" data-renderer-start-pos="1203"&gt;Conditional: Required if params is not empty.&lt;BR /&gt;Must be “TEXT”&lt;BR /&gt;Templates variables validations&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="eca08a14513d" data-renderer-start-pos="1301"&gt;locales (array)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="ff6a2a6c1e98" data-renderer-start-pos="1320"&gt;Configuration for language and message content.&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="d0c6a35cce87" data-renderer-start-pos="1371"&gt;Required&lt;BR /&gt;Max items - 1&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="a76592247371" data-renderer-start-pos="1399"&gt;locales.lang (string)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="d05532542e09" data-renderer-start-pos="1424"&gt;Template language code (e.g., en, ru, fr).&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="10998d023460" data-renderer-start-pos="1470"&gt;Required&lt;BR /&gt;Min length - 1 character&lt;BR /&gt;Format must match one of the values supported by the system. Please refer to the table below for the exact string format.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="b7f4b89c3c6c" data-renderer-start-pos="1631"&gt;locales.template (string)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="122b130c8adf" data-renderer-start-pos="1660"&gt;The message string containing static text and placeholders.&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="86a9dafb4c79" data-renderer-start-pos="1723"&gt;Required&lt;BR /&gt;Min length - 1 character&lt;BR /&gt;Max length - 1000 characters.&lt;BR /&gt;Must start and end with static text, not a variable. The only exception is the {{pin}} placeholder for &lt;SPAN data-vc="highlighted-text" data-highlighted="true"&gt;OTP&lt;/SPAN&gt; templates, which can be placed at the very end.&lt;BR /&gt;Multiple parameters can be used back-to-back, provided they are separated by at least a single space.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="c73387752869" data-renderer-start-pos="2049"&gt;varExample (array)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="cfc0bda78442" data-renderer-start-pos="2071"&gt;A list of example values for the declared parameters. Used for template moderation.&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="7d1ccdf0ef24" data-renderer-start-pos="2158"&gt;Required&lt;BR /&gt;Max Items - 8&lt;BR /&gt;Pass an empty array [] for static templates.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="a892eb658592" data-renderer-start-pos="2231"&gt;varExample.name (string)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="108ff98f8cb7" data-renderer-start-pos="2259"&gt;The name of the parameter (must match a name defined in params).&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1" style="background-color: #c0e6f5;" data-cell-background="#c0e6f5"&gt;
&lt;P data-local-id="0cc3900f247a" data-renderer-start-pos="2327"&gt;Conditional: Required if params is not empty.&lt;BR /&gt;Max length - 50 characters.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="89b86f680cac" data-renderer-start-pos="2406"&gt;varExample.example (string)&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="b2b7ae58f0f5" data-renderer-start-pos="2437"&gt;Conditional. A sample value for the parameter content. Required if params is not empty.&lt;/P&gt;
&lt;/TD&gt;
&lt;TD colspan="1" rowspan="1"&gt;
&lt;P data-local-id="02fb9afe8f04" data-renderer-start-pos="2528"&gt;Conditional: Required if params is not empty.&lt;BR /&gt;Max length - 125 characters.&lt;BR /&gt;Please note - When sending an actual message, the placeholder value is limited to 125 characters, links are not allowed.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;/DIV&gt;</description>
      <pubDate>Mon, 21 Sep 2026 10:20:25 GMT</pubDate>
      <guid>https://community.sinch.com/t5/Viber/Registering-Viber-Transactional-Message-Templates-via-Sinch/ta-p/19923</guid>
      <dc:creator>Matthew_Kerr</dc:creator>
      <dc:date>2026-09-21T10:20:25Z</dc:date>
    </item>
  </channel>
</rss>

