API de Templates
Além de gerenciar templates pelo Positus Studio, é possível administrá-los diretamente pela API. Os endpoints de templates são escopados por workspace e permitem listar, consultar, validar o nome, criar e excluir templates.Autenticação e escopo
Todas as rotas exigem autenticação via Bearer Token de usuário e são acessadas sob o workspace desejado:A criação e a exclusão de templates exigem que o usuário autenticado seja proprietário (owner) do workspace. Caso contrário, a API responde
403. As demais rotas exigem apenas que o usuário tenha acesso ativo ao workspace.Listar templates
Retorna os templates do workspace.- Não há paginação nem outros filtros (nome, categoria ou idioma).
- Templates com status
DELETEDnão são retornados na listagem. - O status
PAUSEDpossui dois ids (10e11); para filtrá-lo, consulte um id por vez.
Exibir template
Retorna um template específico do workspace.{ "data": { ...objeto de template } }, no mesmo formato de cada item da listagem. Se o template não pertencer ao workspace, a API responde 404.
Diferente da listagem, a exibição também retorna templates com status
DELETED.Validar nome
Antes de criar um template, verifique se o nome já está em uso no workspace. Tentar criar um template com um nome já existente resulta em erro.204 No Content: não há template com esse nome.422 Unprocessable Entity: o nome já existe.
O nome é normalizado da mesma forma que na criação (veja Criar template) e comparado somente com os templates registrados na Positus para o workspace, incluindo os já excluídos. A verificação não consulta a Meta.
Criar template
Cria um template no workspace. O template é enviado à Meta e, em caso de sucesso, registrado na Positus.O
name é normalizado antes de ser salvo: fica em minúsculas e espaços e símbolos viram _. Por exemplo, Meu primeiro template é salvo como meu_primeiro_template. O nome retornado na resposta é o normalizado.Componentes
A propriedadecomponents é repassada à Meta sem alterações: a Positus não define nem valida tipos de componentes, parâmetros ou botões, e a Meta é quem aceita ou rejeita o conteúdo. Consulte todas as possibilidades na documentação da Meta sobre componentes.
Os únicos casos em que a Positus inspeciona o conteúdo de components são os arquivos de header:
Template simples
200 OK
status, category e wa_id vêm da resposta da Meta. Por isso, a categoria pode ser diferente da enviada (a Meta pode recategorizar o template) e o status geralmente é PENDING. A criação responde 200, e não 201.Template com arquivo no header
O arquivo deve ser enviado no mesmo campo FormDatacomponents[1][example][header_handle][0] (índice do componente HEADER dentro de components). O exemplo abaixo mostra o corpo lógico, em que (binary) representa o arquivo.
200 OK (trecho). O arquivo enviado fica disponível em header_file, e header_handle[0] passa a conter o identificador gerado pela Meta.
Template de carrossel
Cada card com header de imagem ou vídeo exige o arquivo correspondente emcomponents[i][cards][j][components][k][example][header_handle][0] (FormData). O exemplo abaixo mostra o corpo lógico.
200 OK. Os arquivos dos cards são retornados em carousel_files, na ordem dos cards:
Template de autenticação
200 OK (trecho):
As opções de componentes de autenticação (como o corpo e o botão
OTP) são validadas pela Meta. Para ver o texto padrão de templates de autenticação, use a rota de pré-visualização.Limites e erros
Ao criar um template pela API, o evento
message_template_created é enviado ao webhook do workspace.Excluir template
Exclui um template do workspace. Exige usuário proprietário do workspace.204 No Content: o template foi excluído na Meta e marcado comoDELETEDna Positus.400: a Meta não excluiu o template. A resposta traz{ "message": "..." }com a mensagem retornada pela Meta.403: o usuário não é proprietário do workspace.
Pré-visualizações
Retorna as pré-visualizações de templates de autenticação fornecidas pela Meta para o WABA do workspace.
A resposta é o JSON retornado pela Meta, sem transformação, e fica em cache por 1 hora para a mesma combinação de workspace, categoria, idiomas e opções. Se o workspace não possuir WABA, a API responde
400.
Restrições
Retorna as restrições de templates do workspace.Esta rota é apenas informativa: o endpoint de criação valida somente se
display_format e sub_category pertencem aos valores aceitos, e não bloqueia o envio quando order_details é false.Listar templates de um número
Retorna os templates do workspace ao qual um número pertence.
Resposta —
{ "data": [ ...objetos de template ] }, com todos os templates não excluídos do workspace do número, sem filtro de status.