API Pública (Server)

Guia técnico para consumir as rotas públicas da Sendeasy via backend.

Base URL

https://backend.sendeasy.app

Autenticação

Existem 3 modelos principais:

  1. API Token (Authorization: Bearer <api_token>) — WABA API e Bots API
  2. Token do canal (Authorization: Bearer <token_do_canal>) — WhatsApp em /api/messages/send, e-mail em /api/v1/email/*
  3. Token de integração (/api/integration/generic)

Endpoints públicos principais

1) Mensageria simples

MétodoEndpointAuth
POST/api/messages/sendToken do canal

Payload base:

{
  "name": "Lead Exemplo",
  "email": "lead@exemplo.com",
  "number": "5511999999999",
  "body": "Olá! Quero saber mais.",
  "sector": "12",
  "files": ["https://meusite.com/arquivo.pdf"]
}

2) Integrações públicas

MétodoEndpointAuth
POST/api/integration/genericToken Generic

3) WABA API

Prefixo:

/api/v1/waba/:whatsappId

Detalhes completos em /server/waba.

4) E-mail API

MétodoEndpointAuth
POST/api/v1/email/sendToken do e-mail (canal)
GET/api/v1/email/healthToken do e-mail (canal)

Envio transacional pelo e-mail dono do token (cada e-mail do projeto tem o seu, em Canais → E-mail), 1 crédito de e-mail por envio. Detalhes completos em /server/email.

5) Bots API

MétodoEndpointAuth
POST/api/v1/ai/completionAPI Token
POST/api/v1/ai/extractAPI Token
POST/api/v1/ai/searchAPI Token
GET/api/v1/ai/healthAPI Token

Geração de texto, extração de PDF e busca na base de conhecimento do bot, 1 crédito de bot por geração (search e health não consomem). Detalhes completos em /server/bots.

6) Submissões de Diagnóstico

MétodoEndpointAuth
POST/api/v1/diagnostic-submissionsAPI Token

Registra as tentativas de envio dos seus formulários de diagnóstico (quiz/avaliação) para acompanhar em Leads → Submissões de Diagnóstico. Não consome créditos. Detalhes completos em /server/diagnosticos.

Exemplo cURL (/api/messages/send)

curl --location 'https://backend.sendeasy.app/api/messages/send' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer SEU_TOKEN_DO_CANAL' \
  --data '{
    "name": "Lead Exemplo",
    "number": "5511999999999",
    "body": "Mensagem enviada por integração"
  }'

Respostas e contratos

Sucesso típico

{
  "message": "Message queued successfully"
}

Erro típico

{
  "error": "ERR_NO_PERMISSION"
}

Traduções (padrão frontend)

Para aplicações multilíngues, traduza o error no client usando catálogo backendErrors com pt, en e es.

Exemplo:

const i18nError = backendErrors[locale]?.[response.error] || response.error

Essa informação foi útil?