Criar template
Changed onCria o template e envia para aprovação da Meta. providerStatus nasce PENDING; o resultado chega pelo webhook template.updated.
- O nome é único por conta WhatsApp Business. Repetido: 409 CONFLICT.
- Em AUTHENTICATION o conteúdo é fixo: a Arara envia à Meta o texto {{1}} é o seu código de verificação com um botão de copiar código, em pt_BR. body, buttons e language enviados não mudam o template aprovado. No envio, passe o código como única variável.
- Exige conta ativa (403 ACCOUNT_NOT_ACTIVATED).
- Os planos atuais não têm limite de templates. Contas no plano Free legado têm teto de 3 templates aprovados e recebem 403 PLAN_LIMIT_REACHED.
Permissão: TEMPLATES_WRITE.
Request
- Base URLhttps://api.ararahq.com
- AuthHTTP bearer
- TypeScriptA function with typed inputs. Its response is checked against the schema.
Request body
Example request
{
"name": "pedido_confirmado"
}Response
Template criado
Example response
{
"id": "a7f3c1e2-4b5d-6789-abcd-ef0123456789",
"name": "pedido_confirmado",
"formattedName": "pedido_confirmado",
"category": "UTILITY",
"originalCategory": "UTILITY",
"language": "pt_BR",
"providerName": "GUPSHUP",
"providerTemplateId": "4c1f0e9a-2b3d-4e5f-8a6b-7c8d9e0f1a2b",
"providerStatus": "PENDING",
"rejectionReason": null,
"availableForSending": true,
"unavailableReason": null,
"bodyPreview": "Oi {{1}}, seu pedido {{2}} foi confirmado. Total: R$ {{3}}.",
"structureJson": {},
"usageGuide": {
"message": "Use o objeto 'variables' no envio da mensagem para substituir os placeholders.",
"endpoint": "POST /v1/messages"
},
"variablesSchema": {
"1": "João",
"2": "12345",
"3": "147,90"
},
"createdAt": "2026-09-15T14:30:00Z",
"updatedAt": null
}Changes
- breaking
the
request property's minItems was increased to2 - warning
the
//request property's maxLength was set to20 - warning
the
////request property's maxLength was set to20 - info
api tag
Templatesadded - info
api tag
templatesremoved - info
added the new optional request property
// - info
added the new optional request property
//// - info
added the new
CHARGEenum value to the request property// - info
added the new
CHARGEenum value to the request property//// - info
added the new
FLOWenum value to the request property// - info
added the new
FLOWenum value to the request property//// - info
added the non-success response with the status
- info
added the non-success response with the status
- breaking
- breaking
the response's body type changed from
objectto no type for status - breaking
the response property
/became nullable for the status - breaking
the response property
/became nullable for the status - breaking
the response property
became optional for the status - breaking
the
response's property type changed fromobjecttostringfor status - breaking
removed the required property
from the response with the status - breaking
removed the required property
/from the response with the status - breaking
removed the required property
/from the response with the status - warning
removed the request property
- warning
removed the request property
- warning
removed the request property
- warning
removed the optional property
/from the response with the status - info
added to the response body
anyOflist for the response status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the optional property
to the response with the status - info
added the required property
to the response with the status
- breaking