🛠️ Integrações

API REST do Chatys: documentação para desenvolvedores

URL base e autenticação

A API REST do Chatys permite integrar programaticamente qualquer sistema com a plataforma — CRMs, ERPs, sistemas proprietários, scripts de automação e muito mais. Toda comunicação ocorre via HTTPS com autenticação por Bearer Token.

URL base da API:

https://api.chatys.com.br/v1

Autenticação: todas as requisições devem incluir o header Authorization com o Bearer Token da sua API Key:

Authorization: Bearer SUA_API_KEY_AQUI
Content-Type: application/json
Tela de gerenciamento de APIs do Chatys

Painel de APIs e IA — gerencie suas API Keys e configure integrações avançadas

Como gerar e gerenciar API Keys

1
Acesse Configurações → Integrações → API Keys no painel do Chatys.
2
Clique em + Gerar Nova API Key.
3
Preencha o nome da chave (ex: "Sistema ERP Produção") e as permissões desejadas: leitura, escrita ou ambas.
4
Clique em Gerar. A chave completa é exibida apenas uma vez — copie e armazene imediatamente em local seguro (ex: variável de ambiente, cofre de segredos).
5
Para revogar uma chave comprometida, clique no ícone de lixeira ao lado dela na lista. A revogação é imediata.
Atenção: Nunca exponha a API Key em código-fonte público, repositórios GitHub ou logs de aplicação. Use variáveis de ambiente (process.env.CHATYS_API_KEY) ou gerenciadores de segredos como AWS Secrets Manager, HashiCorp Vault ou similares.

Principais Endpoints

POST /conversations — Iniciar conversa

Cria uma nova conversa outbound para um contato. Requer que o contato tenha enviado uma mensagem nos últimos 24h (janela de conversação) ou que você use um Template de mensagem aprovado.

POST https://api.chatys.com.br/v1/conversations

{
  "contact_phone": "+5511999887766",
  "channel_id": "chan_abc123",
  "message": "Olá {{name}}, tudo bem? Passando para confirmar seu agendamento.",
  "template_id": "tmpl_xyz789",  // opcional, para fora da janela 24h
  "assigned_agent_id": "agent_456",  // opcional
  "tags": ["agendamento", "confirmacao"]  // opcional
}

Resposta de sucesso (201):

{
  "id": "conv_new123",
  "status": "open",
  "contact_id": "contact_789",
  "channel": "whatsapp",
  "created_at": "2025-01-15T10:00:00Z"
}

POST /messages — Enviar mensagem

Envia uma mensagem em uma conversa já existente.

POST https://api.chatys.com.br/v1/messages

{
  "conversation_id": "conv_abc123",
  "type": "text",
  "content": "Sua fatura foi gerada! Acesse o link para pagar.",
  "attachments": [
    {
      "type": "image",
      "url": "https://meusite.com/boleto-qr.png"
    }
  ]
}

Tipos de mensagem suportados: text, image, document, audio, video, location, template.

GET /contacts — Listar contatos

GET https://api.chatys.com.br/v1/contacts?page=1&limit=50&tag=cliente&search=Maria

// Resposta
{
  "data": [
    {
      "id": "contact_123",
      "name": "Maria Silva",
      "phone": "+5511999887766",
      "email": "maria@email.com",
      "tags": ["cliente", "vip"],
      "custom_fields": {
        "plano": "Profissional",
        "cidade": "São Paulo"
      },
      "created_at": "2025-01-10T08:00:00Z",
      "last_conversation_at": "2025-01-15T14:00:00Z"
    }
  ],
  "meta": {
    "total": 1245,
    "page": 1,
    "limit": 50
  }
}

Parâmetros de filtro disponíveis: search (nome/telefone/email), tag, created_after, created_before, channel.

POST /contacts — Criar ou atualizar contato

Cria um novo contato ou atualiza um existente pelo telefone (upsert).

POST https://api.chatys.com.br/v1/contacts

{
  "name": "João Pereira",
  "phone": "+5521988776655",
  "email": "joao@empresa.com",
  "tags": ["lead", "interesse-plano-pro"],
  "custom_fields": {
    "empresa": "TechCorp Ltda",
    "cargo": "Diretor Comercial",
    "origem": "Site Institucional"
  }
}

GET /conversations — Listar conversas

GET https://api.chatys.com.br/v1/conversations?status=open&channel=whatsapp&agent_id=agent_123&page=1&limit=20

Parâmetros: status (open, closed, pending), channel, agent_id, tag, created_after, created_before.

POST /tags — Aplicar tag

POST https://api.chatys.com.br/v1/tags/apply

{
  "entity_type": "conversation",  // ou "contact"
  "entity_id": "conv_abc123",
  "tags": ["urgente", "reclamacao", "vip"]
}

Exemplo completo em cURL — Enviar mensagem

curl -X POST https://api.chatys.com.br/v1/messages \
  -H "Authorization: Bearer sua_api_key_aqui" \
  -H "Content-Type: application/json" \
  -d '{
    "conversation_id": "conv_abc123",
    "type": "text",
    "content": "Olá! Sua solicitação foi processada com sucesso. Número de protocolo: #12345"
  }'

Exemplo em Node.js com fetch:

const response = await fetch('https://api.chatys.com.br/v1/messages', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${process.env.CHATYS_API_KEY}`,
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    conversation_id: 'conv_abc123',
    type: 'text',
    content: 'Pedido confirmado! Entrega prevista em 3 dias úteis.'
  })
});

const data = await response.json();
console.log('Mensagem enviada:', data.id);

Rate Limits

A API do Chatys aplica rate limits para garantir estabilidade para todos os usuários:

  • Leitura (GET): 1.000 requisições por minuto por API Key
  • Escrita (POST/PUT/DELETE): 300 requisições por minuto por API Key
  • Envio de mensagens: limitado também pelas políticas do canal (WhatsApp Cloud API tem seus próprios limites de envio)

Os headers de resposta informam o status do rate limit:

X-RateLimit-Limit: 300
X-RateLimit-Remaining: 287
X-RateLimit-Reset: 1705320060

Quando o limite é excedido, a API retorna HTTP 429 com body:

{
  "error": "rate_limit_exceeded",
  "retry_after": 34,
  "message": "Limite de requisições atingido. Tente novamente em 34 segundos."
}
Dica: Implemente exponential backoff no seu cliente: ao receber HTTP 429, aguarde o tempo indicado em retry_after antes de tentar novamente. Para envios em lote, adicione um delay de 200ms entre cada requisição para evitar atingir o limite.

Integração bidirecional com CRM

Para criar uma sincronização completa entre o Chatys e seu CRM:

  • CRM → Chatys: Use a API do Chatys para criar/atualizar contatos quando um lead entra no CRM, e para iniciar conversas proativas via WhatsApp quando um oportunidade avança de etapa.
  • Chatys → CRM: Use Webhooks do Chatys para notificar o CRM quando um lead é qualificado, uma conversa encerrada ou uma tag aplicada. Seu servidor recebe o evento e usa a API do CRM para atualizar o registro.
  • Identificação de contato: Use o campo custom_fields para armazenar o ID do CRM no contato do Chatys, e vice-versa — isso facilita o lookup bidirecional sem ambiguidade.

Sandbox para testes

O ambiente de sandbox permite testar integrações sem impactar dados reais ou consumir créditos de mensagens:

1
Acesse Configurações → Integrações → API Keys e crie uma chave marcando a opção Ambiente Sandbox.
2
Use a URL base do sandbox: https://sandbox.api.chatys.com.br/v1
3
No sandbox, mensagens enviadas não chegam aos contatos reais — elas são simuladas e ficam visíveis apenas no painel de sandbox.
4
Os dados criados no sandbox são isolados dos dados de produção e são limpos automaticamente a cada 30 dias.
A documentação completa da API, com todos os endpoints, schemas de resposta e exemplos interativos, está disponível em app.chatys.com.br/developers/docs. Você pode testar endpoints diretamente na documentação usando sua API Key.

Casos de uso — como aplicar no seu negócio

Veja como empresas de diferentes segmentos utilizam esta funcionalidade na prática:

🛍️ E-commerce e lojas online

O checkout da loja é integrado com a API do Chatys: quando o pedido é confirmado, o sistema envia automaticamente uma mensagem de confirmação via WhatsApp com o número de rastreio. 100% automatizado, sem agente humano envolvido — o cliente recebe a informação em segundos após a compra.

🏥 Clínicas e profissionais de saúde

Um app de vistorias imobiliárias usa a API para notificar o inquilino via WhatsApp quando a vistoria é agendada, confirmada e concluída. Toda a jornada do inquilino é automatizada diretamente no WhatsApp — sem e-mails ignorados ou ligações não atendidas.

🏠 Imobiliárias e construtoras

Uma startup SaaS usa a API para enviar notificações de uso via WhatsApp: relatório semanal, alertas de limite atingido e aviso de fatura vencendo. O WhatsApp tem 90% de taxa de abertura contra 20% do e-mail — a comunicação chega de fato ao cliente e reduz inadimplência.

🍕 Restaurantes e food service

Quando uma transação suspeita é detectada pelo sistema antifraude, a API do Chatys é chamada para enviar um OTP via WhatsApp e abrir uma conversa com o cliente em tempo real. A prevenção de fraude acontece no canal que o cliente mais usa, com resposta em segundos.

💼 Serviços, consultoria e SaaS

Um marketplace usa a API para abrir automaticamente uma conversa com o vendedor que recebeu uma avaliação negativa (1-2 estrelas), orientando sobre como resolver a situação. A recuperação proativa de reputação acontece antes que o problema se agrave — sem depender de o vendedor perceber a avaliação.

Melhores práticas:
  • Nunca exponha a API key no frontend: sempre use um backend como intermediário — chaves expostas no código do navegador são um risco de segurança crítico.
  • Implemente retry com backoff exponencial para lidar com rate limits de forma elegante, evitando falhas em cascata durante picos de uso.
  • Use webhooks para receber eventos do Chatys em vez de fazer polling da API a cada X segundos — o polling consome rate limit desnecessariamente e introduz latência.

Este artigo foi útil?