WABA API

Documentação da integração com WhatsApp Business API via rotas públicas da Sendeasy.

Autenticação

Header obrigatório:

Authorization: Bearer <api_token>

Prefixo de rotas

/api/v1/waba/:whatsappId

Templates

MétodoEndpointFinalidade
GET/templatesListar templates
POST/templatesCriar template
PUT/templates/:templateIdAtualizar template
DELETE/templates/:templateNameRemover template

Mensagens

MétodoEndpointFinalidade
POST/sendEnviar template (ou texto simples via body específico)
POST/send-textEnviar texto
POST/send-imageEnviar imagem
POST/send-videoEnviar vídeo
POST/send-audioEnviar áudio
POST/send-documentEnviar documento
POST/marketing-lite/sendEnviar mensagem marketing (Marketing Messages Lite API)

Nova API: mensagem marketing

Endpoint público:

POST /api/v1/waba/:whatsappId/marketing-lite/send

Endpoint Meta utilizado pelo backend:

POST /{phone-number-id}/marketing_messages

Pré-requisitos:

  1. Conta WABA com onboarding de Marketing Messages Lite concluído.
  2. Termos de Marketing Messages Lite aceitos na conta Meta.
  3. Template de categoria MARKETING com status APPROVED.

Payload

CampoTipoObrigatórioObservações
tostringSimnúmero no formato internacional (somente dígitos)
templateNamestringSimnome do template aprovado no Meta
languagestringNãopadrão: pt_BR
componentsarrayNãocomponentes/parametrizações do template
productPolicystringNãoCLOUD_API_FALLBACK (default) ou STRICT
messageActivitySharingbooleanNãopadrão: true
bizOpaqueCallbackDatastringNãovolta no webhook para correlação de campanha

Exemplo: envio de mensagem marketing

curl --location 'https://server.sendeasy.app/api/v1/waba/SEU_WHATSAPP_ID/marketing-lite/send' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer SEU_API_TOKEN' \
  --data '{
    "to": "5511999999999",
    "templateName": "promo_blackfriday",
    "language": "pt_BR",
    "components": [
      {
        "type": "body",
        "parameters": [
          { "type": "text", "text": "João" }
        ]
      }
    ],
    "productPolicy": "CLOUD_API_FALLBACK",
    "messageActivitySharing": true,
    "bizOpaqueCallbackData": "campaign_blackfriday_2026"
  }'

Resposta de sucesso (exemplo):

{
  "messages": [
    { "id": "wamid.HBg..." }
  ]
}

Erro de limite/opt-out (exemplo):

{
  "error": "MARKETING_LIMIT_REACHED",
  "message": "User has opted out of marketing messages or reached the limit",
  "details": "..."
}

Exemplo: envio de texto

curl --location 'https://server.sendeasy.app/api/v1/waba/SEU_WHATSAPP_ID/send-text' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer SEU_API_TOKEN' \
  --data '{
    "to": "5511999999999",
    "text": "Olá! Mensagem enviada pela WABA API."
  }'

Exemplo: envio de template

{
  "to": "5511999999999",
  "templateName": "boas_vindas",
  "language": "pt_BR",
  "components": [
    {
      "type": "body",
      "parameters": [
        { "type": "text", "text": "João" }
      ]
    }
  ]
}

Códigos de erro comuns

CódigoQuando acontece
WHATSAPP_NOT_FOUNDwhatsappId não existe
WHATSAPP_CREDENTIALS_MISSINGcanal sem credenciais WABA completas
MISSING_PARAMETERSpayload sem campos obrigatórios
MARKETING_LIMIT_REACHEDcontato deu opt-out ou atingiu limite de marketing
WHATSAPP_API_ERRORerro retornado pela API da Meta

Coleção Postman

A coleção oficial usada internamente:

[SENDEASY] WABA Integration API.postman_collection.json

Essa informação foi útil?