Integrações
API — referência de endpoints
Mensagens, mensagens interativas, templates, contatos, tickets, agendamentos e anotações.
Todos os caminhos abaixo são acrescentados à sua URL_BASE e exigem o cabeçalho Authorization: Bearer SEU_TOKEN. Veja Introdução e autenticação.
Mensagens#
| Método | Caminho | Envia |
|---|---|---|
| POST | / |
Texto: number (ou ticketId), body, externalKey |
| POST | / (multipart) |
Arquivo: media (arquivo), body, number (ou ticketId), externalKey. Com sticker: "true", envia figurinha |
| POST | / |
Arquivo em Base64: mediaMessage com mediaType, fileName e media |
| POST | / |
Arquivo por URL: mediaUrl |
| POST | /location |
Localização: number, contents com latitude, longitude, name, address |
| POST | /sendcontact |
Contato: number, contents com displayName e telephone |
| GET | /params |
Texto via parâmetros na URL (body, number, externalKey, bearertoken). Evite: o token fica exposto em logs |
Mensagens interativas (API Oficial)#
Todas em POST /apioficial, com number e um objeto contents no padrão da Meta:
| Tipo | contents.type |
|---|---|
| Botões de resposta | button |
| Lista | list |
| Botão com link | cta_url |
| Pedido de localização | location_request_message |
Exemplo de botões:
{
"number": "5511999999999",
"contents": {
"type": "button",
"body": { "text": "Podemos confirmar sua visita amanhã às 14h?" },
"action": {
"buttons": [
{ "type": "reply", "reply": { "id": "sim", "title": "Confirmar" } },
{ "type": "reply", "reply": { "id": "nao", "title": "Remarcar" } }
]
}
}
}
Templates (API Oficial)#
POST /apioficial com number e contents contendo name (nome do template), language.code (ex.: pt_BR) e components (parâmetros do cabeçalho, corpo e botões).
{
"number": "5511999999999",
"contents": {
"name": "confirmacao_pedido",
"language": { "code": "pt_BR" },
"components": [
{ "type": "body", "parameters": [
{ "type": "text", "text": "Maria" },
{ "type": "text", "text": "#1234" }
]}
]
}
}
Contatos#
| Método | Caminho | Função |
|---|---|---|
| POST | /createcontact |
Cria contato: name, number, email, extraInfo (lista de name/value), wallets, disableBot, disableCampaign, kanbanPrice e outros |
| POST | /contact |
Busca por number ou contactId |
| POST | /updatecontact |
Edita (mesmos campos de criação) |
| POST | /updatetag |
Define as etiquetas (tags: lista de IDs). Substitui as atuais; lista vazia remove todas |
| POST | /updatecrm |
Move no Kanban compartilhado (crm: ID da etapa; 0 remove) |
| POST | /updatefollowup |
Coloca em um follow-up (followup: ID; 0 remove) |
| POST | /valid-whatsapp-number |
Verifica se o number tem WhatsApp |
| GET | /contacts/tag/{tagId} |
Lista contatos de uma etiqueta |
| GET | /contacts/crm/{crmId} |
Lista contatos de uma etapa do Kanban |
| GET | /contacts/wallet/{walletId} |
Lista contatos de uma carteira |
Nos endpoints de atualização, identifique o contato por number, contactId ou ticketId.
Atendimentos (tickets)#
| Método | Caminho | Função |
|---|---|---|
| POST | /createticket |
Cria: number, status, queueId, userId |
| POST | /showticket |
Último atendimento do number neste canal |
| POST | /showallticket |
Todos os atendimentos do number neste canal |
| POST | /showticketchatbot |
Atendimento em chatbot do number |
| POST | /updateticketinfo |
Altera status, userId, queueId de um ticketId |
| POST | /updatequeue |
Muda a fila (ticketId, queueId) |
| POST | /updatechatbot |
Coloca o atendimento em um chatbot (ticketId, chatbotId) |
| GET | /ticket/{ticketId} |
Lista as mensagens do atendimento |
Mensagens agendadas#
| Método | Caminho | Função |
|---|---|---|
| POST | /schedule |
Agenda uma mensagem |
| GET | /schedules |
Lista (40 por página, filtros number, status, scheduledFrom, scheduledTo, page) |
| GET | /schedule/{id} |
Consulta um agendamento |
| DELETE | /schedule/{id} |
Cancela (só se ainda estiver pendente) |
Campos de POST /schedule:
numberebody(obrigatórios para texto);scheduledAtcom fuso horário, pelo menos 5 minutos no futuro;messageType:text(padrão),templateoubuttons(até 3 opções);openTicket+queueId: abre um atendimento na fila ao enviar;media: arquivo por upload multipart;- cabeçalho opcional
Idempotency-Keypara evitar duplicidade em repetições.
Status possíveis: PENDENTE, ENVIADA, CANCELADO.
Anotações internas#
| Método | Caminho | Função |
|---|---|---|
| POST | /ticketnote |
Cria anotação: note (mín. 3 caracteres), ticketId ou number, e opcionalmente userIdNotification / equipeIdNotification para mencionar |
| GET | /ticketnote/{id} |
Consulta |
| DELETE | /ticketnote/{id} |
Apaga |
| GET | /ticketnote/ticket/{id} |
Lista as anotações de um atendimento |
| GET | /ticketnote/contact/{id} |
Lista as anotações de um contato (ou ?number=) |
Canal#
| Método | Caminho | Função |
|---|---|---|
| GET | /statuschannel |
Situação da conexão do canal |
| POST | /qrcode |
Solicita o QR Code do canal |
Ainda com dúvida sobre este assunto?Falar com o suporte