WhatsApp Business API | Self-Service
Managing and maintaining your WhatsApp Business Account is easy with tyntec’s self-service, such as our Profile API and webhook API.
WhatsApp Profile API
The WhatsApp Profile API is a self-service API, allowing you to change your core company details for your WhatsApp Business Account (WABA). In your WhatsApp profile, you’ll be able to update:
- Company logo (deletion also possible)
- Public URL for company logo
- About information
- Company description
- e-mail and contact information
- Company address
- Vertical/industry
- Websites
In addition, the Profile API supports patching of single / specific information if needed.
With this API, our customers with an activated WhatsApp Business Account can change/update their information in an automated manner.
How to Get Your Current Profile
<div class="geshifilter"><pre class="php geshifilter-php">curl https<span class="sy0">:</span><span class="co1">//api.tyntec.com/chat-api/v2/channels/whatsapp/phone-numbers/<PHONENUMBER>/settings/profile -H 'apikey: <APIKEY>'</span></pre></div>
Response
<div class="geshifilter"><pre class="php geshifilter-php"><span class="br0">{</span>
<span class="st0">"address"</span><span class="sy0">:</span> <span class="st0">"Hofmannstrasse 25 - 27, 81379 Munich, Germany"</span><span class="sy0">,</span>
<span class="st0">"description"</span><span class="sy0">:</span> <span class="st0">"tyntec WhatsApp Business API Demo"</span><span class="sy0">,</span>
<span class="st0">"email"</span><span class="sy0">:</span> <span class="st0">"support@tyntec.com"</span><span class="sy0">,</span>
<span class="st0">"vertical"</span><span class="sy0">:</span> <span class="st0">"Professional Services"</span><span class="sy0">,</span>
<span class="st0">"websites"</span><span class="sy0">:</span> <span class="br0">[</span>
<span class="st0">"https://tyntec.com"</span>
<span class="br0">]</span><span class="sy0">,</span>
<span class="st0">"about"</span><span class="sy0">:</span> <span class="st0">"Hey there! I am using WhatsApp."</span>
<span class="br0">}</span></pre></div>
How to Update Your Complete Profile
<div class="geshifilter"><pre class="php geshifilter-php">curl –XPATCH https<span class="sy0">:</span><span class="co1">//api.tyntec.com/chat-api/v2/channels/whatsapp/phone-numbers/<PHONENUMBER>/settings/profile -H 'apikey: <APIKEY>' -d ‘</span>
<span class="br0">{</span>
<span class="st0">"address"</span><span class="sy0">:</span> <span class="st0">"Hofmannstrasse 25 - 27, 81379 Munich, Germany"</span><span class="sy0">,</span>
<span class="st0">"description"</span><span class="sy0">:</span> <span class="st0">"tyntec WhatsApp Business API Demo"</span><span class="sy0">,</span>
<span class="st0">"email"</span><span class="sy0">:</span> <span class="st0">"support@tyntec.com"</span><span class="sy0">,</span>
<span class="st0">"vertical"</span><span class="sy0">:</span> <span class="st0">"Professional Services"</span><span class="sy0">,</span>
<span class="st0">"websites"</span><span class="sy0">:</span> <span class="br0">[</span>
<span class="st0">"https://tyntec.com"</span>
<span class="br0">]</span><span class="sy0">,</span>
<span class="st0">"about"</span><span class="sy0">:</span> <span class="st0">"Hey there! I am using WhatsApp."</span>
<span class="br0">}</span>
‘</pre></div>
Response: 204 No-Content
Update a Part of the Profile
<div class="geshifilter"><pre class="php geshifilter-php">curl –XPATCH https<span class="sy0">:</span><span class="co1">//api.tyntec.com/chat-api/v2/channels/whatsapp/phone-numbers/<PHONENUMBER>/settings/profile -H 'apikey: <APIKEY>' -d ‘</span>
<span class="br0">{</span>
<span class="st0">"email"</span><span class="sy0">:</span> <span class="st0">"support@tyntec.com"</span><span class="sy0">,</span>
<span class="st0">"vertical"</span><span class="sy0">:</span> <span class="st0">"Professional Services"</span><span class="sy0">,</span>
<span class="st0">"websites"</span><span class="sy0">:</span> <span class="br0">[</span>
<span class="st0">"https://tyntec.com"</span><span class="sy0">,</span> “https<span class="sy0">:</span><span class="co1">//api.tyntec.com/reference”</span>
<span class="br0">]</span>
<span class="br0">}</span>
‘</pre></div>
Response: 204 No-Content
Webhook API
The webhook self-service API allows you to specify applications with webhooks.
In this first version, only a default application per API key is supported, without the possibilities to specify callbacks per WhatsApp Phone Number.
The events supported :
“MoMessage”,
“MessageStatus::accepted”,
“MessageStatus::delivered”,
“MessageStatus::seen”,
“MessageStatus::failed”,
“MessageStatus::channelFailed”,
“MessageStatus::deleted”,
“WhatsAppGroupEvent::userJoined”,
“WhatsAppGroupEvent::userLeft”,
“WhatsAppGroupEvent::subjectChanged”,
“WhatsAppGroupEvent::descriptionChanged”
Please note that the patch operation must define all events, any missing will be removed.
How to specify applications with webhooks
<div class="geshifilter"><pre class="php geshifilter-php"><span class="br0">{</span>
<span class="st0">"callbackVersion"</span><span class="sy0">:</span> <span class="st0">"2.11"</span><span class="sy0">,</span>
<span class="st0">"inboundMessageUrl"</span><span class="sy0">:</span> <span class="st0">"<your server>"</span><span class="sy0">,</span>
<span class="st0">"messageStatusUrl"</span><span class="sy0">:</span> <span class="st0">"<your server>"</span><span class="sy0">,</span>
<span class="st0">"eventFilter"</span><span class="sy0">:</span> <span class="br0">[</span>
<span class="st0">"MessageStatus::accepted"</span><span class="sy0">,</span>
<span class="st0">"MessageStatus::channelFailed"</span><span class="sy0">,</span>
<span class="st0">"MessageStatus::deleted"</span><span class="sy0">,</span>
<span class="st0">"MessageStatus::delivered"</span><span class="sy0">,</span>
<span class="st0">"MessageStatus::failed"</span><span class="sy0">,</span>
<span class="st0">"MessageStatus::seen"</span>
<span class="br0">]</span>
<span class="br0">}</span></pre></div>
Message Templates Management
The Message Template API is a self-service API that allows our customers to:
-
- Get current templates
-
- Request new templates
-
- Add localizations to existing templates
-
- Delete templates.
With this API, customers can request classic text templates as well as the media message templates.
Alternatively, you can use the Message Template Manager directly on your my.tyntec.com account. Check instructions here.
Get current templates
These are examples on requesting new WhatsApp templates.
The name of a template must match ^[a-z][a-z_0-9]+$, so start with lower case letter and consist only of lower case letters, numbers and _.
In general a template can consist of the following three components:
Header
- Could be either a text (up to 60 characters), an image or a document.
- In case of a text up to one variable is supported. The variable is indicated by
{{1}}.
Body
- Simple text, that can contain newlines, emojis or urls and variables.
- Variables are indicated by
{{n}}, n sequential natural number without repetition. - A variable counts as 1 character for the length.
- When a Footer or Header component is used it can be at most 160 characters. Otherwise it’s 1024 characters.
- The body must be present and not empty.
Footer
- Text based footer up to 60 characters.
Adding media samples to message templates
WhatsApp requires that media samples are provided alongside message templates that are categorized as ‘media’ (images, videos, documents). Previously, WhatsApp did not check the media element of message templates. Due to an increase in spam-like media, however, WhatsApp now requests any enterprise with a WhatsApp Business Profile to provide a media sample to avoid customer friction.
This is how you can submit media message templates for:
- Please utilize the Message Template API for media message template submission via an API extension (for video, image, document and text), that allows you to specify samples alongside message templates:
- In case your media message template has been rejected after your initial submission, please contact us at support@tyntec.com
- A header ‘Location’ does not need to be enhanced with a sample.
Please have a look at more information on how to submit your media sample via the API extension below:
Media based headers (video, image, document):
<div class="geshifilter"><pre class="php geshifilter-php"> <span class="br0">{</span>
<span class="st0">"name"</span><span class="sy0">:</span> <span class="st0">"test_template_media_header"</span><span class="sy0">,</span>
<span class="st0">"category"</span><span class="sy0">:</span> <span class="st0">"ACCOUNT_UPDATE"</span><span class="sy0">,</span>
<span class="st0">"localizations"</span><span class="sy0">:</span> <span class="br0">[</span>
<span class="br0">{</span>
<span class="st0">"language"</span><span class="sy0">:</span> <span class="st0">"en"</span><span class="sy0">,</span>
<span class="st0">"components"</span><span class="sy0">:</span> <span class="br0">[</span>
<span class="br0">{</span>
<span class="st0">"type"</span><span class="sy0">:</span> <span class="st0">"HEADER"</span><span class="sy0">,</span>
<span class="st0">"format"</span><span class="sy0">:</span> <span class="st0">"IMAGE"</span><span class="sy0">,</span>
<span class="st0">"example"</span><span class="sy0">:</span> <span class="br0">{</span>
<span class="st0">"mediaId"</span> <span class="sy0">:</span> <span class="st0">"d1c3f5d3-4be0-49cd-a5f8-f90acaaa53a5"</span><span class="sy0">,</span> this will be available later
<span class="st0">"url"</span><span class="sy0">:</span> <span class="st0">"https://upload.wikimedia.org/wikipedia/commons/1/16/HDRI_Sample_Scene_Balls_%28JPEG-HDR%29.jpg"</span>
<span class="br0">}</span>
<span class="br0">}</span><span class="sy0">,</span>
<span class="br0">{</span>
<span class="st0">"text"</span><span class="sy0">:</span> <span class="st0">"Hi {{1}},<span class="es1">\n</span><span class="es1">\n</span>this is an {{2}}. For you!"</span><span class="sy0">,</span>
<span class="st0">"type"</span><span class="sy0">:</span> <span class="st0">"BODY"</span><span class="sy0">,</span>
<span class="st0">"example"</span><span class="sy0">:</span> <span class="br0">{</span>
<span class="st0">"texts"</span><span class="sy0">:</span> <span class="br0">[</span>
<span class="st0">"Peter"</span><span class="sy0">,</span>
<span class="st0">"Example"</span>
<span class="br0">]</span>
<span class="br0">}</span>
<span class="br0">}</span><span class="sy0">,</span>
<span class="br0">{</span>
<span class="st0">"type"</span><span class="sy0">:</span> <span class="st0">"BUTTONS"</span><span class="sy0">,</span>
<span class="st0">"buttons"</span><span class="sy0">:</span> <span class="br0">[</span>
<span class="br0">{</span>
<span class="st0">"type"</span><span class="sy0">:</span> <span class="st0">"URL"</span><span class="sy0">,</span>
<span class="st0">"text"</span><span class="sy0">:</span> <span class="st0">"test"</span><span class="sy0">,</span>
<span class="st0">"url"</span><span class="sy0">:</span> <span class="st0">"https://www.tyntec.com/{{1}}"</span><span class="sy0">,</span>
<span class="st0">"example"</span><span class="sy0">:</span> <span class="br0">{</span>
<span class="st0">"url"</span><span class="sy0">:</span> <span class="st0">"https://www.tyntec.com/EXAMPLE"</span>
<span class="br0">}</span>
<span class="br0">}</span>
<span class="br0">]</span>
<span class="br0">}</span>
<span class="br0">]</span>
<span class="br0">}</span>
<span class="br0">]</span>
<span class="br0">}</span></pre></div>
Text based header:
<div class="geshifilter"><pre class="php geshifilter-php"> <span class="br0">{</span>
<span class="st0">"name"</span><span class="sy0">:</span> <span class="st0">"test_template"</span><span class="sy0">,</span>
<span class="st0">"category"</span><span class="sy0">:</span> <span class="st0">"ACCOUNT_UPDATE"</span><span class="sy0">,</span>
<span class="st0">"localizations"</span><span class="sy0">:</span> <span class="br0">[</span>
<span class="br0">{</span>
<span class="st0">"language"</span><span class="sy0">:</span> <span class="st0">"en"</span><span class="sy0">,</span>
<span class="st0">"components"</span><span class="sy0">:</span> <span class="br0">[</span>
<span class="br0">{</span>
<span class="st0">"type"</span><span class="sy0">:</span> <span class="st0">"HEADER"</span><span class="sy0">,</span>
<span class="st0">"format"</span><span class="sy0">:</span> <span class="st0">"TEXT"</span><span class="sy0">,</span>
<span class="st0">"text"</span><span class="sy0">:</span> <span class="st0">"{{1}} stranger"</span><span class="sy0">,</span>
<span class="st0">"example"</span><span class="sy0">:</span> <span class="br0">{</span>
<span class="st0">"text"</span> <span class="sy0">:</span> <span class="st0">"Hello"</span>
<span class="br0">}</span>
<span class="br0">}</span><span class="sy0">,</span>
<span class="br0">{</span>
<span class="st0">"text"</span><span class="sy0">:</span> <span class="st0">"Hi {{1}},<span class="es1">\n</span><span class="es1">\n</span>this is an {{2}}. For you!"</span><span class="sy0">,</span>
<span class="st0">"type"</span><span class="sy0">:</span> <span class="st0">"BODY"</span><span class="sy0">,</span>
<span class="st0">"example"</span><span class="sy0">:</span> <span class="br0">{</span>
<span class="st0">"texts"</span><span class="sy0">:</span> <span class="br0">[</span>
<span class="st0">"Peter"</span><span class="sy0">,</span>
<span class="st0">"Example"</span>
<span class="br0">]</span>
<span class="br0">}</span>
<span class="br0">}</span><span class="sy0">,</span>
<span class="br0">{</span>
<span class="st0">"type"</span><span class="sy0">:</span> <span class="st0">"BUTTONS"</span><span class="sy0">,</span>
<span class="st0">"buttons"</span><span class="sy0">:</span> <span class="br0">[</span>
<span class="br0">{</span>
<span class="st0">"type"</span><span class="sy0">:</span> <span class="st0">"URL"</span><span class="sy0">,</span>
<span class="st0">"text"</span><span class="sy0">:</span> <span class="st0">"test"</span><span class="sy0">,</span>
<span class="st0">"url"</span><span class="sy0">:</span> <span class="st0">"https://www.tyntec.com/{{1}}"</span><span class="sy0">,</span>
<span class="st0">"example"</span><span class="sy0">:</span> <span class="br0">{</span>
<span class="st0">"url"</span><span class="sy0">:</span> <span class="st0">"https://www.tyntec.com/EXAMPLE"</span>
<span class="br0">}</span>
<span class="br0">}</span>
<span class="br0">]</span>
<span class="br0">}</span>
<span class="br0">]</span>
<span class="br0">}</span>
<span class="br0">]</span>
<span class="br0">}</span></pre></div>
Body only template request
<div class="geshifilter"><pre class="php geshifilter-php"><span class="br0">{</span>
<span class="st0">"name"</span><span class="sy0">:</span> <span class="st0">"body_only"</span><span class="sy0">,</span>
<span class="st0">"category"</span><span class="sy0">:</span> <span class="st0">"ACCOUNT_UPDATE"</span><span class="sy0">,</span>
<span class="st0">"localizations"</span><span class="sy0">:</span> <span class="br0">[</span>
<span class="br0">{</span>
<span class="st0">"language"</span><span class="sy0">:</span> <span class="st0">"en"</span><span class="sy0">,</span>
<span class="st0">"components"</span><span class="sy0">:</span> <span class="br0">[</span>
<span class="br0">{</span>
<span class="st0">"type"</span><span class="sy0">:</span> <span class="st0">"BODY"</span><span class="sy0">,</span>
<span class="st0">"text"</span><span class="sy0">:</span> <span class="st0">"Hello {{1}}!"</span>
<span class="br0">}</span>
<span class="br0">]</span>
<span class="br0">}</span><span class="sy0">,</span>
<span class="br0">{</span>
<span class="st0">"language"</span><span class="sy0">:</span> <span class="st0">"fr"</span><span class="sy0">,</span>
<span class="st0">"components"</span><span class="sy0">:</span> <span class="br0">[</span>
<span class="br0">{</span>
<span class="st0">"type"</span><span class="sy0">:</span> <span class="st0">"BODY"</span><span class="sy0">,</span>
<span class="st0">"text"</span><span class="sy0">:</span> <span class="st0">"Bonjour {{1}}!"</span>
<span class="br0">}</span>
<span class="br0">]</span>
<span class="br0">}</span>
<span class="br0">]</span>
<span class="br0">}</span></pre></div>
Body with footer template request
<div class="geshifilter"><pre class="php geshifilter-php"><span class="br0">{</span>
<span class="st0">"name"</span><span class="sy0">:</span> <span class="st0">"body_and_footer"</span><span class="sy0">,</span>
<span class="st0">"category"</span><span class="sy0">:</span> <span class="st0">"ACCOUNT_UPDATE"</span><span class="sy0">,</span>
<span class="st0">"localizations"</span><span class="sy0">:</span> <span class="br0">[</span>
<span class="br0">{</span>
<span class="st0">"language"</span><span class="sy0">:</span> <span class="st0">"en"</span><span class="sy0">,</span>
<span class="st0">"components"</span><span class="sy0">:</span> <span class="br0">[</span>
<span class="br0">{</span>
<span class="st0">"type"</span><span class="sy0">:</span> <span class="st0">"BODY"</span><span class="sy0">,</span>
<span class="st0">"text"</span><span class="sy0">:</span> <span class="st0">"Hello {{1}}!"</span>
<span class="br0">}</span><span class="sy0">,</span>
<span class="br0">{</span>
<span class="st0">"type"</span><span class="sy0">:</span> <span class="st0">"FOOTER"</span><span class="sy0">,</span>
<span class="st0">"text"</span><span class="sy0">:</span> <span class="st0">"Your demo team"</span>
<span class="br0">}</span>
<span class="br0">]</span>
<span class="br0">}</span>
<span class="br0">]</span>
<span class="br0">}</span></pre></div>
Text-based header template request
<div class="geshifilter"><pre class="php geshifilter-php"><span class="br0">{</span>
<span class="st0">"name"</span><span class="sy0">:</span> <span class="st0">"body_and_text_header"</span><span class="sy0">,</span>
<span class="st0">"category"</span><span class="sy0">:</span> <span class="st0">"ACCOUNT_UPDATE"</span><span class="sy0">,</span>
<span class="st0">"localizations"</span><span class="sy0">:</span> <span class="br0">[</span>
<span class="br0">{</span>
<span class="st0">"language"</span><span class="sy0">:</span> <span class="st0">"en"</span><span class="sy0">,</span>
<span class="st0">"components"</span><span class="sy0">:</span> <span class="br0">[</span>
<span class="br0">{</span>
<span class="st0">"type"</span><span class="sy0">:</span> <span class="st0">"HEADER"</span><span class="sy0">,</span>
<span class="st0">"format"</span><span class="sy0">:</span> <span class="st0">"TEXT"</span><span class="sy0">,</span>
<span class="st0">"text"</span><span class="sy0">:</span> <span class="st0">"Hello {{1}}"</span>
<span class="br0">}</span><span class="sy0">,</span>
<span class="br0">{</span>
<span class="st0">"type"</span><span class="sy0">:</span> <span class="st0">"BODY"</span><span class="sy0">,</span>
<span class="st0">"text"</span><span class="sy0">:</span> <span class="st0">"This is an example of a text based header"</span>
<span class="br0">}</span>
<span class="br0">]</span>
<span class="br0">}</span>
<span class="br0">]</span>
<span class="br0">}</span></pre></div>
Media-based header template request
<div class="geshifilter"><pre class="php geshifilter-php"><span class="br0">{</span>
<span class="st0">"name"</span><span class="sy0">:</span> <span class="st0">"body_and_media_header"</span><span class="sy0">,</span>
<span class="st0">"category"</span><span class="sy0">:</span> <span class="st0">"ACCOUNT_UPDATE"</span><span class="sy0">,</span>
<span class="st0">"localizations"</span><span class="sy0">:</span> <span class="br0">[</span>
<span class="br0">{</span>
<span class="st0">"language"</span><span class="sy0">:</span> <span class="st0">"en"</span><span class="sy0">,</span>
<span class="st0">"components"</span><span class="sy0">:</span> <span class="br0">[</span>
<span class="br0">{</span>
<span class="st0">"type"</span><span class="sy0">:</span> <span class="st0">"HEADER"</span><span class="sy0">,</span>
<span class="st0">"format"</span><span class="sy0">:</span> <span class="st0">"IMAGE"</span>
<span class="br0">}</span><span class="sy0">,</span>
<span class="br0">{</span>
<span class="st0">"type"</span><span class="sy0">:</span> <span class="st0">"BODY"</span><span class="sy0">,</span>
<span class="st0">"text"</span><span class="sy0">:</span> <span class="st0">"The format could be as well DOCUMENT"</span>
<span class="br0">}</span>
<span class="br0">]</span>
<span class="br0">}</span>
<span class="br0">]</span>
<span class="br0">}</span></pre></div>
Requesting new localization
These are examples on requesting new localizations for WhatsApp templates.
You must have requested a template before.
In general a localization of a template can consist of the following three components:
Header
- Could be either a text (up to 60 characters), an image or a document.
- In case of a text up to one variable is supported. The variable is indicated by
{{1}}.
Body
- Simple text that can contain newlines, emojis, URLs and variables.
- Variables are indicated by
{{n}}, n sequential natural number without repetition. - A variable counts as 1 character for the length.
- When a Footer or Header component is used it can be at most 160 characters. Otherwise it’s 1024 characters.
- The body must be present and not empty.
Footer
- Text based footer up to 60 characters
Body only localization request
<div class="geshifilter"><pre class="php geshifilter-php"><span class="br0">{</span>
<span class="st0">"language"</span><span class="sy0">:</span> <span class="st0">"en"</span><span class="sy0">,</span>
<span class="st0">"components"</span><span class="sy0">:</span> <span class="br0">[</span>
<span class="br0">{</span>
<span class="st0">"type"</span><span class="sy0">:</span> <span class="st0">"BODY"</span><span class="sy0">,</span>
<span class="st0">"text"</span><span class="sy0">:</span> <span class="st0">"Hello {{1}}!"</span>
<span class="br0">}</span>
<span class="br0">]</span>
<span class="br0">}</span></pre></div>
Body with footer template localization request
<div class="geshifilter"><pre class="php geshifilter-php"><span class="br0">{</span>
<span class="st0">"language"</span><span class="sy0">:</span> <span class="st0">"en"</span><span class="sy0">,</span>
<span class="st0">"components"</span><span class="sy0">:</span> <span class="br0">[</span>
<span class="br0">{</span>
<span class="st0">"type"</span><span class="sy0">:</span> <span class="st0">"BODY"</span><span class="sy0">,</span>
<span class="st0">"text"</span><span class="sy0">:</span> <span class="st0">"Hello {{1}}!"</span>
<span class="br0">}</span><span class="sy0">,</span>
<span class="br0">{</span>
<span class="st0">"type"</span><span class="sy0">:</span> <span class="st0">"FOOTER"</span><span class="sy0">,</span>
<span class="st0">"text"</span><span class="sy0">:</span> <span class="st0">"Your demo team"</span>
<span class="br0">}</span>
<span class="br0">]</span>
<span class="br0">}</span></pre></div>
Text-based header template localization request
<div class="geshifilter"><pre class="php geshifilter-php"><span class="br0">{</span>
<span class="st0">"language"</span><span class="sy0">:</span> <span class="st0">"en"</span><span class="sy0">,</span>
<span class="st0">"components"</span><span class="sy0">:</span> <span class="br0">[</span>
<span class="br0">{</span>
<span class="st0">"type"</span><span class="sy0">:</span> <span class="st0">"HEADER"</span><span class="sy0">,</span>
<span class="st0">"format"</span><span class="sy0">:</span> <span class="st0">"TEXT"</span><span class="sy0">,</span>
<span class="st0">"text"</span><span class="sy0">:</span> <span class="st0">"Hello {{1}}"</span>
<span class="br0">}</span><span class="sy0">,</span>
<span class="br0">{</span>
<span class="st0">"type"</span><span class="sy0">:</span> <span class="st0">"BODY"</span><span class="sy0">,</span>
<span class="st0">"text"</span><span class="sy0">:</span> <span class="st0">"This is an example of a text based header"</span>
<span class="br0">}</span>
<span class="br0">]</span>
<span class="br0">}</span></pre></div>
Media-based header template localization request
<div class="geshifilter"><pre class="php geshifilter-php"><span class="br0">{</span>
<span class="st0">"language"</span><span class="sy0">:</span> <span class="st0">"en"</span><span class="sy0">,</span>
<span class="st0">"components"</span><span class="sy0">:</span> <span class="br0">[</span>
<span class="br0">{</span>
<span class="st0">"type"</span><span class="sy0">:</span> <span class="st0">"HEADER"</span><span class="sy0">,</span>
<span class="st0">"format"</span><span class="sy0">:</span> <span class="st0">"IMAGE"</span>
<span class="br0">}</span><span class="sy0">,</span>
<span class="br0">{</span>
<span class="st0">"type"</span><span class="sy0">:</span> <span class="st0">"BODY"</span><span class="sy0">,</span>
<span class="st0">"text"</span><span class="sy0">:</span> <span class="st0">"The format could be as well DOCUMENT"</span>
<span class="br0">}</span>
<span class="br0">]</span>
<span class="br0">}</span></pre></div>
Interactive template request with quick reply buttons
You can add up to 3 quick reply buttons.
<div class="geshifilter"><pre class="php geshifilter-php"><span class="br0">{</span>
<span class="st0">"name"</span><span class="sy0">:</span> <span class="st0">"quick_reply_buttons"</span><span class="sy0">,</span>
<span class="st0">"category"</span><span class="sy0">:</span> <span class="st0">"ACCOUNT_UPDATE"</span><span class="sy0">,</span>
<span class="st0">"localizations"</span><span class="sy0">:</span> <span class="br0">[</span>
<span class="br0">{</span>
<span class="st0">"language"</span><span class="sy0">:</span> <span class="st0">"en"</span><span class="sy0">,</span>
<span class="st0">"components"</span><span class="sy0">:</span> <span class="br0">[</span>
<span class="br0">{</span>
<span class="st0">"type"</span><span class="sy0">:</span> <span class="st0">"BODY"</span><span class="sy0">,</span>
<span class="st0">"text"</span><span class="sy0">:</span> <span class="st0">"Quick reply buttons are possible as well"</span>
<span class="br0">}</span><span class="sy0">,</span>
<span class="br0">{</span>
<span class="st0">"type"</span><span class="sy0">:</span> <span class="st0">"BUTTONS"</span><span class="sy0">,</span>
<span class="st0">"buttons"</span><span class="sy0">:</span> <span class="br0">[</span>
<span class="br0">{</span>
<span class="st0">"type"</span> <span class="sy0">:</span> <span class="st0">"QUICK_REPLY"</span><span class="sy0">,</span>
<span class="st0">"text"</span> <span class="sy0">:</span> <span class="st0">"Cool!"</span>
<span class="br0">}</span><span class="sy0">,</span>
<span class="br0">{</span>
<span class="st0">"type"</span> <span class="sy0">:</span> <span class="st0">"QUICK_REPLY"</span><span class="sy0">,</span>
<span class="st0">"text"</span> <span class="sy0">:</span> <span class="st0">"Nice!"</span>
<span class="br0">}</span>
<span class="br0">]</span>
<span class="br0">}</span>
<span class="br0">]</span>
<span class="br0">}</span>
<span class="br0">]</span>
<span class="br0">}</span></pre></div>
Interactive template request with call to action buttons
You can use either one url or one phone number or both types here:
<div class="geshifilter"><pre class="php geshifilter-php"><span class="br0">{</span>
<span class="st0">"name"</span><span class="sy0">:</span> <span class="st0">"body_and_text_header"</span><span class="sy0">,</span>
<span class="st0">"category"</span><span class="sy0">:</span> <span class="st0">"ACCOUNT_UPDATE"</span><span class="sy0">,</span>
<span class="st0">"localizations"</span><span class="sy0">:</span> <span class="br0">[</span>
<span class="br0">{</span>
<span class="st0">"language"</span><span class="sy0">:</span> <span class="st0">"en"</span><span class="sy0">,</span>
<span class="st0">"components"</span><span class="sy0">:</span> <span class="br0">[</span>
<span class="br0">{</span>
<span class="st0">"type"</span><span class="sy0">:</span> <span class="st0">"BODY"</span><span class="sy0">,</span>
<span class="st0">"text"</span><span class="sy0">:</span> <span class="st0">"Quick reply buttons are possible as well"</span>
<span class="br0">}</span><span class="sy0">,</span>
<span class="br0">{</span>
<span class="st0">"type"</span><span class="sy0">:</span> <span class="st0">"BUTTONS"</span><span class="sy0">,</span>
<span class="st0">"buttons"</span><span class="sy0">:</span> <span class="br0">[</span>
<span class="br0">{</span>
<span class="st0">"type"</span> <span class="sy0">:</span> <span class="st0">"PHONE_NUMBER"</span><span class="sy0">,</span>
<span class="st0">"text"</span> <span class="sy0">:</span> <span class="st0">"Support"</span><span class="sy0">,</span>
<span class="st0">"phoneNumber"</span> <span class="sy0">:</span> <span class="st0">"+1231312313"</span>
<span class="br0">}</span><span class="sy0">,</span>
<span class="br0">{</span>
<span class="st0">"type"</span> <span class="sy0">:</span> <span class="st0">"URL"</span><span class="sy0">,</span>
<span class="st0">"text"</span> <span class="sy0">:</span> <span class="st0">"Your documents"</span><span class="sy0">,</span>
<span class="st0">"url"</span> <span class="sy0">:</span> <span class="st0">"https://www.example.com/{{1}}"</span>
<span class="br0">}</span>
<span class="br0">]</span>
<span class="br0">}</span>
<span class="br0">]</span>
<span class="br0">}</span>
<span class="br0">]</span>
<span class="br0">}</span></pre></div>