Crie a empresa
Empresas isolam projetos, API keys, instâncias, logs e uso.
Documentação / API v1
Entenda como empresas, projetos, canais, agentes e automações se conectam. Use a API para enviar mensagens, receber eventos e integrar seu sistema.
Quickstart
Crie uma empresa, um projeto e uma instância no painel. Depois copie a API key do tenant e chame o endpoint pelo seu backend.
Empresas isolam projetos, API keys, instâncias, logs e uso.
Escaneie o QR Code e mantenha um runtime ativo por número WhatsApp.
Envie mensagens, entregue contexto ao agente e observe eventos por webhook.
curl -X POST https://api.summuchat.com/v1/messages/send \
-H "x-summuchat-key: SUMMUCHAT_TENANT_API_KEY" \
-H "Idempotency-Key: docs-first-message-001" \
-H "Content-Type: application/json" \
-d '{
"instanceId": "your-instance-id",
"to": "+5511999999999",
"text": "Hello from SummuChat"
}'
Core concepts
The platform is organized around tenant isolation. Every resource belongs to a company and should be accessed through scoped credentials.
Authentication
Public documentation never exposes real keys. Generate, rotate and revoke credentials in the private dashboard.
x-summuchat-key: SUMMUCHAT_TENANT_API_KEY
Do not send tenant keys from browsers, mobile apps or public repositories.
Messages
Start with text messages. Media, templates and advanced payloads should follow the same tenant and instance boundaries.
/v1/messages/sendSend an outbound message through a connected instance.
WhatsApp oficial
O provedor oficial usa os ativos Meta da empresa: WABA ID, Phone Number ID, token de acesso, token de verificação e modelos aprovados. Salvar credenciais não troca a instância automaticamente; a ativação é uma ação separada com MFA.
/webhooks/meta/:instanceIdVerifica o webhook da Meta usando hub.verify_token.
/webhooks/meta/:instanceIdRecebe mensagens e status de entrega da instância.
/v1/messages/sendEnvia texto ou modelo conforme o provedor ativo.
{
"instanceId": "company-main",
"to": "5531999999999",
"type": "template",
"template": {
"name": "payment_reminder",
"language": "pt_BR",
"components": []
}
}
Tokens ficam criptografados no banco, mascarados no painel e não retornam ao navegador.
Sincronize os modelos aprovados da Meta antes de enviar mensagens fora da janela de conversa.
O provedor só muda para whatsapp_cloud após validação e ativação no painel.
Safe delivery
SummuChat separates company-declared consent from engagement signals detected automatically.
The company can grant, revoke or block a contact with source, scope and internal evidence.
Inbound messages, replies, likely opt-out and engagement score update contact health automatically.
Sensitive changes require MFA when enabled and write contact events plus audit logs.
Instances
Cada instância representa um runtime WhatsApp dentro de um projeto. Use o painel para conectar por QR Code e a API para consultar status, logs e disponibilidade.
Crie a instância dentro de um projeto antes de enviar mensagens ou acionar automações.
Mantenha uma sessão ativa por número e acompanhe ready, disconnected e QR pendente pelo painel.
Sempre valide que a API key pertence ao tenant e ao projeto da instância solicitada.
/v1/instancesList instances available for the authenticated tenant.
/v1/instances/:instanceId/statusConsulta status operacional da instância.
Agents API
Use agentes para atendimento, triagem, vendas ou pós-venda. Eles podem receber contexto, decidir a próxima ação e responder por um canal permitido.
A API pública de agentes depende de habilitação na sua instalação. Consulte a equipe antes de integrar esses endpoints.
Automations
Automações podem reagir a mensagens recebidas, status de entrega, decisões de agentes ou eventos externos do seu produto.
message.received
conversation.idle
tag.added
appointment.created
appointment.reminder.due
POST /v1/automation-executions
PATCH /v1/automation-executions/:sourceEventId
DELETE /v1/automation-executions/:sourceEventId
{
"projectId": "your-project-id",
"name": "Lembrete de atendimento",
"provider": "internal",
"triggerEvent": "appointment.created",
"config": {
"origin": "api",
"source": "crm",
"executionMode": "scheduled_relative",
"timezone": "America/Sao_Paulo",
"plannedRuns": 3,
"deliveryPlan": {
"referenceAt": "2030-07-05T18:00:00-03:00",
"sendNow": true,
"offsetsMinutesBefore": [60, 30]
}
}
}
PATCH /v1/automation-executions/:sourceEventId
{
"action": "pause",
"projectId": "your-project-id"
}
scheduled
paused
canceled
processing
sent
failed
Webhooks
Configure webhooks por projeto ou automação. Seu endpoint deve responder rápido, validar token e processar eventos de forma idempotente.
Use os headers de timestamp e assinatura, o corpo exato recebido e o token do destino. Responda com HTTP 2xx após aceitar o evento.
{
"event": "message",
"projectId": "project-id",
"instanceId": "instance-id",
"message": {
"id": "message-id",
"from": "5511999999999",
"text": "Olá",
"fromMe": false
}
}
Realtime
Realtime events are designed for private dashboards. Authenticate the user, validate company access on the server and subscribe only to allowed rooms.
new_message
message_updated
conversation_updated
instance_status_changed
qr_code_updated
agent_status_changed
automation_executed
webhook_received
Security
Tenant keys should never be exposed in client-side code.
Never trust companyId or projectId sent only by the frontend.
Protect message sends, webhooks and billing actions from duplicate processing.
Record who created keys, changed webhooks, connected instances or edited automations.
Errors
{
"ok": false,
"error": "instance not found"
}