Sync templates
curl --request POST \
--url https://api.hubmessage.io/whatsapp/businesses/{wabaId}/templates/sync \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.hubmessage.io/whatsapp/businesses/{wabaId}/templates/sync"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.hubmessage.io/whatsapp/businesses/{wabaId}/templates/sync', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hubmessage.io/whatsapp/businesses/{wabaId}/templates/sync",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.hubmessage.io/whatsapp/businesses/{wabaId}/templates/sync"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.hubmessage.io/whatsapp/businesses/{wabaId}/templates/sync")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubmessage.io/whatsapp/businesses/{wabaId}/templates/sync")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "1900296177408890",
"name": "confirm_account",
"status": "APPROVED",
"category": "AUTHENTICATION",
"language": "en_US",
"parameter_format": "POSITIONAL",
"message_send_ttl_seconds": 600,
"components": [
{
"type": "BODY",
"text": "Your verification code is *{{1}}*. For your security, do not share it.",
"add_security_recommendation": true,
"example": {
"body_text": [
[
"123456"
]
]
}
}
]
}
],
"syncedCount": 2,
"synced": true
}{
"error": 401,
"message": "Unauthorized"
}Templates
Sync templates
Force template status update with Meta
POST
/
whatsapp
/
businesses
/
{wabaId}
/
templates
/
sync
Sync templates
curl --request POST \
--url https://api.hubmessage.io/whatsapp/businesses/{wabaId}/templates/sync \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.hubmessage.io/whatsapp/businesses/{wabaId}/templates/sync"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.hubmessage.io/whatsapp/businesses/{wabaId}/templates/sync', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hubmessage.io/whatsapp/businesses/{wabaId}/templates/sync",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.hubmessage.io/whatsapp/businesses/{wabaId}/templates/sync"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.hubmessage.io/whatsapp/businesses/{wabaId}/templates/sync")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubmessage.io/whatsapp/businesses/{wabaId}/templates/sync")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "1900296177408890",
"name": "confirm_account",
"status": "APPROVED",
"category": "AUTHENTICATION",
"language": "en_US",
"parameter_format": "POSITIONAL",
"message_send_ttl_seconds": 600,
"components": [
{
"type": "BODY",
"text": "Your verification code is *{{1}}*. For your security, do not share it.",
"add_security_recommendation": true,
"example": {
"body_text": [
[
"123456"
]
]
}
}
]
}
],
"syncedCount": 2,
"synced": true
}{
"error": 401,
"message": "Unauthorized"
}Overview
Forces template synchronization with Meta, updating statuses (PENDING, APPROVED, REJECTED) and other template information locally.
Useful when you’ve created or edited a template and want to check if Meta has already updated the approval status.
The
wabaId is obtained from the List WABAs endpoint.Authorizations
Secret Key generated in the Hub Message Security panel
Path Parameters
WABA ID (obtained via List WABAs)
Example:
"428083093730937"
⌘I