Autenticação
Todas as requisições devem incluir o cabeçalho Authorization com um Bearer token gerado na plataforma em Configurações → API → Gerar Token.
# Exemplo de cabeçalho HTTP
Authorization: Bearer seu-token-aqui
Base URL: https://api.oito.in/v1
Endpoints
POST
/api/messages/sendEnvia uma mensagem de texto para um número via WhatsApp.
| Parâmetro | Tipo | Descrição |
|---|---|---|
| number | string | Número no formato E.164 (ex: "5551999998888") |
| message | string | Conteúdo da mensagem de texto |
| connectionId | string | ID da conexão WhatsApp de origem |
POST
/api/messages/send-mediaEnvia imagem, documento, áudio ou vídeo para um número.
| Parâmetro | Tipo | Descrição |
|---|---|---|
| number | string | Número no formato E.164 |
| mediaUrl | string | URL pública do arquivo de mídia |
| mediaType | string | "image" | "document" | "audio" | "video" |
| caption | string? | Legenda opcional (apenas para imagens) |
POST
/api/contactsCria ou atualiza um contato no CRM.
| Parâmetro | Tipo | Descrição |
|---|---|---|
| name | string | Nome completo do contato |
| number | string | Número de telefone (WhatsApp) |
| string? | E-mail do contato (opcional) | |
| tags | string[]? | Lista de tags para segmentação |
GET
/api/contacts/:idRetorna os dados de um contato pelo ID.
| Parâmetro | Tipo | Descrição |
|---|---|---|
| id | string | ID do contato na plataforma |
POST
/api/ticketsAbre um novo ticket de atendimento.
| Parâmetro | Tipo | Descrição |
|---|---|---|
| contactId | string | ID do contato associado |
| queueId | string | ID da fila de destino |
| status | string | "open" | "pending" | "closed" |
Webhooks
Configure uma URL de webhook em Configurações → Webhooks para receber notificações em tempo real dos eventos da plataforma. O OitoIn fará um POST para sua URL com o payload JSON do evento.
message.receivedNova mensagem recebida de qualquer canalmessage.sentMensagem enviada pela plataformaticket.createdNovo ticket abertoticket.updatedStatus do ticket alteradoticket.closedTicket finalizadocontact.createdNovo contato cadastradocampaign.finishedCampanha em massa concluída# Exemplo de payload de webhook
{
"event": "message.received",
"timestamp": "2026-06-30T14:30:00Z",
"data": {
"ticketId": "tkt_abc123",
"contactId": "ctt_xyz789",
"message": "Olá, gostaria de saber mais sobre os planos",
"channel": "whatsapp",
"from": "5551999998888"
}
}Rate Limits
| Plano | Requisições/min | Mensagens/dia | Webhooks |
|---|---|---|---|
| Básico | 30 | 1.000 | 1 URL |
| Pro | 120 | 10.000 | 5 URLs |
| Enterprise | Ilimitado | Ilimitado | Ilimitado |

