Create a template
Registers a message template on an RCS sender with the RCS platform and returns it with status pending.
curl --request POST \
--url https://api.vobiz.ai/api/v1/sms/senders/{senderId}/templates \
--header 'Content-Type: application/json' \
--header 'X-Auth-ID: <api-key>' \
--header 'X-Auth-Token: <api-key>' \
--data '
{
"templateName": "order-shipped",
"type": "TEXT",
"content": {
"text": "Your order {{orderId}} has shipped and arrives on {{eta}}."
}
}
'from vobiz import Vobiz
client = Vobiz(api_key="MA_XXXXXXXX", auth_token="YOUR_AUTH_TOKEN")
client.sms.rcs_senders.create_template(
sender_id="5d7f9b1c-3e5a-4c7e-9f1b-3d5f7a9c1e3b",
template_name="order-shipped",
type="TEXT",
content={
"text": "Your order {{orderId}} has shipped and arrives on {{eta}}."
},
)
const options = {
method: 'POST',
headers: {
'X-Auth-ID': '<api-key>',
'X-Auth-Token': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
templateName: 'order-shipped',
type: 'TEXT',
content: {text: 'Your order {{orderId}} has shipped and arrives on {{eta}}.'}
})
};
fetch('https://api.vobiz.ai/api/v1/sms/senders/{senderId}/templates', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));Authorizations
Your Vobiz account Auth ID (MA_XXXXXXXX).
Your Vobiz account Auth Token.
Path Parameters
The id (UUID) of the RCS sender that owns the templates. An unknown sender returns sender not found.
Body
A message template to register on an RCS sender. All three fields are required and are passed to the RCS platform unchanged.
Unique name for the template on this sender. You use it in the path of every template endpoint.
"order-shipped"
Template type as defined by the RCS platform. It decides which content shape the platform expects.
Template content as a JSON object in the shape the RCS platform defines for the chosen type. Stored and returned exactly as you submit it.
Response
The new template in status pending.
A message template registered on an RCS sender, with the approval status reported by the RCS platform.
Unique identifier of the template on Vobiz (UUID). Template endpoints address templates by templateName instead.
"c2e4a6b8-1d3f-4a5c-9e7b-6f8d0a2c4e61"
The id of the RCS sender the template belongs to.
"7a1c3e5f-9b2d-4c6e-8f0a-1b3d5e7f9a21"
Your Vobiz account ID (MA_...) that owns the template.
"MA_XXXXXXXX"
Internal routing identifier; do not rely on its value.
"YOUR_ROUTING_IDENTIFIER"
Unique name of the template on its sender. Used in the path of every template endpoint.
"order-shipped"
Template type as defined by the RCS platform.
Approval status reported by the RCS platform, stored on your account. pending until the platform reports otherwise. Call GET /senders/{senderId}/templates/{templateName}/status to refresh it.
"pending"
The template content exactly as you submitted it.
When the template was created on your account (ISO 8601, UTC).
"2026-10-12T10:30:00Z"
When the template last changed, including status refreshes (ISO 8601, UTC).
"2026-10-12T10:30:00Z"
Was this page helpful?
curl --request POST \
--url https://api.vobiz.ai/api/v1/sms/senders/{senderId}/templates \
--header 'Content-Type: application/json' \
--header 'X-Auth-ID: <api-key>' \
--header 'X-Auth-Token: <api-key>' \
--data '
{
"templateName": "order-shipped",
"type": "TEXT",
"content": {
"text": "Your order {{orderId}} has shipped and arrives on {{eta}}."
}
}
'from vobiz import Vobiz
client = Vobiz(api_key="MA_XXXXXXXX", auth_token="YOUR_AUTH_TOKEN")
client.sms.rcs_senders.create_template(
sender_id="5d7f9b1c-3e5a-4c7e-9f1b-3d5f7a9c1e3b",
template_name="order-shipped",
type="TEXT",
content={
"text": "Your order {{orderId}} has shipped and arrives on {{eta}}."
},
)
const options = {
method: 'POST',
headers: {
'X-Auth-ID': '<api-key>',
'X-Auth-Token': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
templateName: 'order-shipped',
type: 'TEXT',
content: {text: 'Your order {{orderId}} has shipped and arrives on {{eta}}.'}
})
};
fetch('https://api.vobiz.ai/api/v1/sms/senders/{senderId}/templates', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));