Templates

Modelos de mensagem aprovados pela Meta (obrigatórios fora da janela de 24 h).

Basehttps://app.onzap.io/v1/instances/{instanceId}AuthX-Instance-Token: SEU_TOKEN

Listar templates

GET/v1/instances/{instanceId}/templates
Só API oficial

Templates da conta do WhatsApp Business, com status de aprovação. Paginação da Meta (paging.cursors).

Parâmetros de query

statusstringopcional
APPROVED, PENDING, REJECTED, PAUSED…
namestringopcional
Filtra pelo nome (contém).
categorystringopcional
MARKETING, UTILITY ou AUTHENTICATION.
languagestringopcional
Ex.: pt_BR.
limitintegeropcional
Quantidade por página.
afterstringopcional
Cursor da próxima página.
beforestringopcional
Cursor da página anterior.
Requisição
curl "https://app.onzap.io/v1/instances/SUA_INSTANCIA/templates" \
  -H "X-Instance-Token: $ONZAP_TOKEN"
Resposta

Templates

{
  "data": [
    {
      "category": "UTILITY",
      "components": [
        {}
      ],
      "id": "1234567890123456",
      "language": "pt_BR",
      "name": "pedido_enviado",
      "parameter_format": "POSITIONAL",
      "quality_score": {},
      "rejected_reason": "NONE",
      "status": "APPROVED"
    }
  ],
  "paging": {}
}

Criar template

POST/v1/instances/{instanceId}/templates
Só API oficial

Envia o template para aprovação da Meta (formato da Cloud API). O resultado da análise chega no evento template.status.

Corpo (JSON)

categorystringobrigatório
Valores:MARKETINGUTILITYAUTHENTICATION
componentsarray de objectobrigatório
languagestringobrigatório
Ex.: pt_BR.
namestringobrigatório
Letras minúsculas, números e _.
parameter_formatstringopcional
Valores:POSITIONALNAMED
Requisição
curl -X POST "https://app.onzap.io/v1/instances/SUA_INSTANCIA/templates" \
  -H "X-Instance-Token: $ONZAP_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "category": "UTILITY",
    "components": [
      {
        "example": {
          "body_text": [
            [
              "Maria",
              "#1234"
            ]
          ]
        },
        "text": "Olá {{1}}, seu pedido {{2}} foi enviado!",
        "type": "BODY"
      }
    ],
    "language": "pt_BR",
    "name": "pedido_enviado"
  }'
Resposta

Enviado para análise

{
  "category": "UTILITY",
  "id": "3EB0C0A1B2C3D4E5F6",
  "status": "ok"
}

Excluir template

DELETE/v1/instances/{instanceId}/templates/{name}
Só API oficial

Sem id, exclui todas as traduções com esse nome.

Parâmetros do caminho

namestringobrigatório
Nome do template (letras minúsculas, números e _).

Parâmetros de query

idstringopcional
Exclui só a tradução com este ID.
Requisição
curl -X DELETE "https://app.onzap.io/v1/instances/SUA_INSTANCIA/templates/NAME" \
  -H "X-Instance-Token: $ONZAP_TOKEN"
Resposta

Excluído