Authorization: Bearer — veja Autenticação e o Guia de API Key
para obter e configurar a chave. Base: https://api.nuvia.ai, prefixo /v1.
Cada caso indica os escopos de API Key necessários — conceda apenas esses na criação da chave.
Caso 1 — Enviar sua primeira mensagem
Escopos:inboxes:read, conversations:read, messages:read, messages:create.
1
Descubra seus canais (inboxes)
Liste as caixas de entrada conectadas à sua empresa.
2
Obtenha uma conversa
O envio de mensagem é feito dentro de uma conversa. Liste conversas para pegar um
conversationId (ou crie uma com POST /v1/conversations).cURL
3
Envie uma mensagem de texto
POST /v1/messages/send com o conversationId e o objeto message.message.contentType aceita TEXT, IMAGE, AUDIO, DOCUMENT ou VIDEO.4
Envie mídia (opcional)
Para mídia há endpoints dedicados. De forma análoga,
POST /v1/messages/send-image usa o mesmo formato, com
contentType: "IMAGE" e attachment (o ID de um anexo já enviado):POST /v1/messages/send-audio, /send-document e /send-video enviam os
demais tipos — veja os campos de cada um na Referência da API.5
Leia o histórico da conversa
GET /v1/messages/conversation/:id retorna as mensagens; anexos ficam em
GET /v1/messages/conversation/:id/attachments.cURL
Caso 2 — Receber eventos via webhooks
Registre uma URL sua para a Nuvia notificar em tempo real (mensagens, conversas, contatos). Escopos: para registrar e consultar,webhooks:create e webhooks:read; para gerenciar,
webhooks:update e webhooks:delete (+ messages:create se você responder automaticamente).
1
Registre um webhook
POST /v1/webhooks. Os eventos válidos são MESSAGE_SENT, MESSAGE_RECEIVED,
CONVERSATION_CREATED, CONVERSATION_UPDATED, FOLLOWUP_SENT, FIELD_UPDATED,
CONTACT_CREATED e CONTACT_UPDATED.custom_headers (para você validar a origem) e status (ACTIVE/INACTIVE).2
Receba os callbacks
Quando um evento ocorre, a Nuvia faz um
POST para a sua url. Seu servidor deve responder
rápido com 2xx para confirmar o recebimento.O formato exato do payload de saída ainda não está publicado nesta documentação. Trate o corpo
recebido de forma defensiva (valide os campos que usar) e, se precisar da estrutura garantida,
confirme com o time da Nuvia. Use
custom_headers para autenticar que a chamada veio da Nuvia.3
Reaja ao evento
A partir do callback, você pode agir via API — por exemplo, responder com
POST /v1/messages/send (Caso 1) ou baixar anexos com
GET /v1/messages/conversation/:id/attachments.4
Gerencie os webhooks
Consulte a configuração com
GET /v1/webhooks, atualize com PUT /v1/webhooks/:id e remova com
DELETE /v1/webhooks/:id.Caso 3 — Campanhas e disparo em massa
Escopos:campaigns:create, campaigns:read, campaigns:update, campaigns:delete
(+ messages:create para o atalho de template em massa).
1
Crie a campanha
POST /v1/campaigns. Campos obrigatórios: name, channel_type, trigger_type e
audience_config; opcionais incluem description, trigger_config, behavior_config e
sender_config. As estruturas internas desses objetos de configuração estão na
Referência da API — siga o schema de lá.A audiência é definida na própria criação, dentro de audience_config (por contact_ids,
lists ou filters). Não há um passo de matrícula (enrollment) separado a fazer via API — a
campanha já nasce com a audiência que você informar aqui.2
Confira antes de disparar
Use os previews (não criam nada):
POST /v1/campaigns/audience-preview conta os contatos da
audiência e POST /v1/campaigns/preview-message resolve as variáveis da mensagem.3
Ative e acompanhe
Ative com
POST /v1/campaigns/:id/activate (pause com /pause). Acompanhe com
GET /v1/campaigns/:id/analytics e GET /v1/campaigns/:id/step-analytics, e exporte os contatos
com GET /v1/campaigns/:id/enrollments/export.cURL
Atalho: para enviar um template de WhatsApp para vários contatos sem montar uma campanha, use
POST /v1/messages/send-bulk-template (escopo messages:create; multipart/form-data). Veja os
campos na Referência da API.Caso 4 — Sincronizar contatos
Mantenha seu CRM externo e a Nuvia em sincronia. Escopos:contacts:read, contacts:create, contacts:update, contacts:delete.
1
Cheque duplicidade por telefone
Antes de criar, resolva os telefones para ver quais já existem:
POST /v1/contacts/find-by-phones.2
Crie os contatos que faltam
POST /v1/contacts. Campos: firstname, lastname, phone, email, company e properties.3
Atualize e liste
Atualize um contato com
PUT /v1/contacts/:id (ou só o nome com PUT /v1/contacts/:id/name) e
liste/pagine com GET /v1/contacts. Para remover o vínculo de um contato com um CRM externo,
use DELETE /v1/contacts/:id/crm-link — isso apenas desfaz a vinculação; o contato continua
existindo na Nuvia (não é exclusão de contato).Outras superfícies públicas
Consumíveis por API Key e cobertas na Referência: Agentes, Tabelas e listas, Conversas e Base de conhecimento. Veja o mapa em Seções da API.Próximos passos
Guia de API Key
Escopos, criação e revogação de chaves.
Referência da API
Todos os endpoints, parâmetros e respostas.