O que são Webhooks?
Webhooks são chamadas HTTP que o Orbit Pulse faz para a URL do seu sistema sempre que um evento ocorre — sem precisar ficar consultando a API.
Eventos Disponíveis
| Evento | Quando Dispara |
|---|---|
| message.received | Nova mensagem de qualquer canal |
| message.sent | Mensagem enviada com sucesso |
| conversation.created | Nova conversa iniciada |
| conversation.resolved | Conversa marcada como resolvida |
| contact.created | Novo contato adicionado |
| gent.handover | ORBI passou para humano |
| payment.confirmed | Pagamento PIX/Boleto confirmado (Asaas) |
Configuração
Configurações → Webhooks → Novo Webhook → URL de Destino: https://seusite.com/webhook/orbit → Eventos: [selecionar quais escutar] → Secret Header: [chave para validar autenticidade] → Salvar → Testar Webhook
Payload de Exemplo (message.received)
json { "event": "message.received", "timestamp": "2026-09-11T03:00:00-03:00", "tenant_id": "suaagencia", "data": { "conversation_id": "conv_abc123", "contact": { "id": "c_xyz789", "phone": "5511987654321", "name": "Maria Silva" }, "message": { "type": "text", "content": "Quero saber o preço!", "channel": "whatsapp" } } }
Validação de Segurança
Sempre valide o header X-Orbit-Signature antes de processar o payload:
javascript const signature = req.headers['x-orbit-signature']; const expected = crypto.createHmac('sha256', YOUR_SECRET) .update(JSON.stringify(req.body)).digest('hex'); if (signature !== expected) return res.status(401).send('Unauthorized');
”@ | Set-Content “C:\Users\Jean\Documents\PROJETOS-IDEAR-DIGITAL\STARTUP\04-HELP-CENTER\orbit-pulse-hub\src\content\docs\06-gestao-api\04-webhooks.md” -Encoding UTF8
@”
title: “Chaves de API & Autenticação Bearer” description: “Documentação das rotas REST do Orbit Pulse para integração direta por desenvolvedores.” section: “Gestão, API & White-Label” order: 5
Autenticação
Todas as requisições à API do Orbit Pulse usam Bearer Token:
http Authorization: Bearer op_live_xxxxxxxxxxxxxxxxxxxxxxxx
Gerando sua Chave de API
Configurações → API → Chaves de API → Nova Chave → Nome: "Integração n8n" → Permissões: Leitura / Escrita / Admin → Gerar → Copiar chave (mostrada UMA VEZ)
Endpoints Principais
Contatos
http GET /api/v1/contacts # Listar contatos POST /api/v1/contacts # Criar contato GET /api/v1/contacts/{id} # Buscar contato PUT /api/v1/contacts/{id} # Atualizar contato DELETE /api/v1/contacts/{id} # Excluir contato (LGPD)
Mensagens
`http POST /api/v1/messages Content-Type: application/json
{ “instance”: “vendas-principal”, “phone”: “5511987654321”, “message”: “Olá! Aqui é o ORBI. 😊”, “type”: “text” } `
Conversas
http GET /api/v1/conversations # Listar todas GET /api/v1/conversations/{id} # Detalhes POST /api/v1/conversations/{id}/resolve # Resolver POST /api/v1/conversations/{id}/assign # Atribuir agente
Rate Limits
| Plano | Requisições/minuto |
|---|---|
| Starter | 60 |
| Pro | 300 |
| Enterprise | 1.000 |
Headers de resposta incluem: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.