Cadastro e gerenciamento de canais (instâncias) que alimentam o Inbox da Plataforma Keeptor. V1 cobre WhatsApp.
Conexões Omnichannel
Endpoints para cadastrar e gerenciar canais que alimentam o Inbox da Plataforma Keeptor. V1 cobre WhatsApp (canal único). A arquitetura foi desenhada para incluir Email, Instagram e Telegram no futuro sem mudar essa API.
Autenticação
Todas as rotas exigem Authorization: Bearer <access_token> (obtido via Login). Você só acessa conexões da sua própria organização.
Convenção de URL
Todas as URLs são prefixadas por:
- Produção:
https://api.keeptor.com/prd/v1/omni/connections - Homologação:
https://api.keeptor.com/tst/v1/omni/connections
Endpoints by-id usam query string ?id=N em vez de path param /{id}:
GET /v1/omni/connections/by-id?id=42GET /v1/omni/connections/qr?id=42GET /v1/omni/connections/status?id=42POST /v1/omni/connections/disconnect?id=42DELETE /v1/omni/connections/by-id?id=42
Esta é uma decisão arquitetural deliberada do Gateway Keeptor para garantir consistência entre todos os endpoints by-id da Plataforma. O contrato é estável e suportado long-term.
Estados (status_code)
status_code)status_code | Significado | Cor sugerida na UI |
|---|---|---|
creating | Provisionando o canal | cinza neutro |
awaiting_qr | QR pronto para scan | âmbar pulsante |
qr_expired | QR expirou — chamar "Regerar QR" | âmbar com badge "Expirado" |
connected | Conectado e operacional | verde |
disconnected | Desconectado | cinza com unlink |
banned | Canal banido | vermelho |
error | Erro de comunicação | vermelho alerta |
Erros
Padrão Keeptor: toda resposta de erro segue o schema ErrorResponse:
{
"success": false,
"error": { "type": "UNAUTHORIZED", "message": "Sessão inválida" }
}Codes possíveis nos endpoints de Conexões:
| HTTP | error.type | Significado |
|---|---|---|
| 401 | UNAUTHORIZED | Header Authorization ausente |
| 401 | INVALID_TOKEN | Token mal-formado ou inválido |
| 401 | SESSION_NOT_FOUND | Sessão foi encerrada |
| 401 | SESSION_EXPIRED | Sessão expirou |
| 400 | VALIDATION_ERROR | Body da chamada inválido |
| 404 | NOT_FOUND | id não existe ou não pertence à sua organização |
| 500 | ADAPTER_ERROR | Falha temporária na comunicação com o canal |
| 500 | DB_ERROR | Falha interna ao gravar/ler dados |
Lista canônica completa de codes está no schema ErrorResponse.error.type do OpenAPI.
Eventos em tempo real
Mudanças nos canais (status da conexão, novo QR Code) são capturadas pelos webhooks internos da Plataforma e propagadas em tempo real.