Pular para o conteúdo principal
POST
/
v1
/
templates
Criar template
curl --request POST \
  --url https://pilotstatus.com.br/v1/templates \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "name": "promo_cupom",
  "category": "MARKETING",
  "language": "pt_BR",
  "body": {
    "header": {
      "type": "IMAGE",
      "base64": "data:image/png;base64,..."
    },
    "body": {
      "text": "Oi {{nome}}! Use e ganhe {{desconto}} de desconto."
    },
    "footer": {
      "text": "Promoção por tempo limitado"
    },
    "buttons": [
      {
        "type": "QUICK_REPLY",
        "text": "Quero!"
      },
      {
        "type": "URL",
        "text": "Comprar",
        "url": "https://loja.com/promo/{{link}}"
      },
      {
        "type": "PHONE_NUMBER",
        "text": "Falar",
        "phone_number": "+5511999998888"
      },
      {
        "type": "COPY_CODE",
        "example": [
          "PROMO10"
        ]
      }
    ]
  },
  "examples": {
    "nome": "Maria",
    "desconto": "10%",
    "link": "abc123"
  }
}
'
{
  "id": "tpl_01HZX...",
  "name": "promo_cupom",
  "category": "MARKETING",
  "metaStatus": "PENDING"
}

Autorizações

x-api-key
string
header
obrigatório

Sua chave de API ps_

Corpo

application/json
name
string
obrigatório

Nome do template (apenas letras/números; separadores viram _).

Exemplo:

"promo_cupom"

body
string
obrigatório

Conteúdo do template: objeto { header?, body, footer?, buttons? } (recomendado), o mesmo JSON como string, ou texto puro (embrulhado automaticamente).

Exemplo:

"{ \"body\": { \"text\": \"Oi {{nome}}!\" } }"

body.header
string

Cabeçalho opcional. TEXT: text com 0–1 variável (até 60 caracteres). IMAGE/VIDEO/DOCUMENT: informe url (http/https) OU base64 (data URI); base64 é re-hospedado no servidor. Sem cabeçalho de localização.

Exemplo:

"{ \"type\": \"IMAGE\", \"base64\": \"data:image/png;base64,...\" }"

Rodapé opcional, até 60 caracteres, sem variáveis.

Exemplo:

"{ \"text\": \"Promoção por tempo limitado\" }"

body.buttons
string

Até 10 botões: QUICK_REPLY (≤ 10; text), URL (≤ 2; text + url estática ou dinâmica com {{1}} no fim), PHONE_NUMBER (≤ 1; text + phone_number E.164), COPY_CODE (≤ 1; código em example). Quick-reply e CTA podem coexistir.

Exemplo:

"[{ \"type\": \"URL\", \"text\": \"Comprar\", \"url\": \"https://loja.com/promo/{{link}}\" }, { \"type\": \"COPY_CODE\", \"example\": [\"PROMO10\"] }]"

examples
string

Obrigatório quando há variáveis: mapeia cada variável usada no body/header (e na URL dinâmica) a um valor de amostra. O código do COPY_CODE vai em button.example, não aqui. Faltando → 400 TEMPLATE_EXAMPLES_REQUIRED.

Exemplo:

"{ \"nome\": \"Maria\", \"desconto\": \"10%\", \"link\": \"abc123\" }"

category
string

Categoria do template (padrão UTILITY).

Exemplo:

"MARKETING"

language
string

Idioma do template (padrão pt_BR).

Exemplo:

"pt_BR"

Resposta

Criar template completo