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.contentType: "TEXT" para mensagens de texto.4
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). Este caso mostra o fluxo ponta a ponta; o formato do payload, a lista completa de eventos e as garantias de entrega estão no guia de Webhooks. 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. São 10 eventos válidos: MESSAGE_SENT, MESSAGE_RECEIVED,
MESSAGE_DELIVERED, MESSAGE_READ, CONVERSATION_CREATED, CONVERSATION_UPDATED,
CONTACT_CREATED, CONTACT_UPDATED, FOLLOWUP_SENT e FIELD_UPDATED — o que cada um
entrega está na tabela de eventos.Sua empresa tem um webhook: se já houver um configurado, esta chamada devolve 409.
Atualize o existente em vez de criar outro.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, com o header
X-Webhook-Event e um corpo de três campos:data traz o recurso do evento — a mensagem, a conversa ou o contato, no mesmo formato dos
GET correspondentes. FIELD_UPDATED é a exceção e tem estrutura própria.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 a configuração
GET /v1/webhooks devolve um objeto com a configuração da empresa (ou null) — não é uma
lista. Use o id desse objeto para atualizar com PUT /v1/webhooks/:id ou remover com
DELETE /v1/webhooks/:id. Para pausar sem perder a configuração, prefira PUT com
status: "INACTIVE".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). O passo a passo, com os
parâmetros de template e os limites da Meta, está no guia
Template em massa no WhatsApp.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.