Quickstart
Siga estas etapas para criar sua conta, importar dívidas e lançar sua primeira campanha de cobrança autônoma.
ℹ️ Pré-requisitos:
- Email corporativo (Gmail, Hotmail, Yahoo e similares não são aceitos)
- CNPJ ativo da sua empresa
- Lista de dívidas em CSV ou JSON (nome, telefone, CPF, valor, vencimento)
Cadastre sua empresa na Dyvit. O signup cria automaticamente um trial gratuito de 14 dias no plano Growth.
POST/api/onboarding/signup
Request body
| Campo | Tipo | Obrig. | Descrição |
|---|
| name | string | Sim | Nome da empresa |
| email | string | Sim | Email corporativo (domínio próprio) |
| password | string | Sim | Senha (mín. 8 caracteres, 1 maiúscula, 1 número) |
| cnpj | string | Não | CNPJ da empresa (14 dígitos, com ou sem formatação) |
| segment | string | Não | Segmento: fintech, banco, saude, utilities, saas, outro |
curl -X POST https://dyvit-api-production.up.railway.app/api/onboarding/signup \
-H "Content-Type: application/json" \
-d '{
"name": "Acme Fintech Ltda",
"email": "financeiro@acmefintech.com.br",
"password": "Dyvit2026!",
"cnpj": "12.345.678/0001-90",
"segment": "fintech"
}'
201Created
{
"id": "cm1a2b3c4d5e6f7g8h9i0j",
"name": "Acme Fintech Ltda",
"email": "financeiro@acmefintech.com.br",
"plan": "GROWTH",
"status": "ONBOARDING",
"trialEndsAt": "2026-04-02T00:00:00.000Z",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
⚠️ Guarde o token retornado. Você vai usá-lo como Bearer token em todas as chamadas seguintes.
O id é o seu clientId, necessário para rotas autenticadas.
Se você já tem uma conta, obtenha um novo token via login.
POST/api/auth/login
Request body
| Campo | Tipo | Obrig. | Descrição |
|---|
| email | string | Sim | Email cadastrado |
| password | string | Sim | Senha da conta |
curl -X POST https://dyvit-api-production.up.railway.app/api/auth/login \
-H "Content-Type: application/json" \
-d '{
"email": "financeiro@acmefintech.com.br",
"password": "Dyvit2026!"
}'
const res = await fetch(
"https://dyvit-api-production.up.railway.app/api/auth/login",
{
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
email: "financeiro@acmefintech.com.br",
password: "Dyvit2026!",
}),
}
);
const { token, refreshToken, client } = await res.json();
console.log("Token:", token);
console.log("Client ID:", client.id);
200OK
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"refreshToken": "d4e5f6a7-b8c9-0d1e-2f3a-4b5c6d7e8f9a",
"client": {
"id": "cm1a2b3c4d5e6f7g8h9i0j",
"name": "Acme Fintech Ltda",
"email": "financeiro@acmefintech.com.br",
"plan": "GROWTH",
"status": "ACTIVE",
"trialEndsAt": "2026-04-02T00:00:00.000Z"
}
}
O token expira em 24 horas. Use o refreshToken para obter um novo par via POST /api/auth/refresh.
3. Criar campanha, importar dívidas e lançar
#
Com o token em mãos, crie uma campanha, importe as dívidas e lance a cobrança. São três chamadas em sequência.
3a. Criar campanha
POST/api/campaigns
# Substitua $TOKEN pelo JWT obtido no passo anterior
curl -X POST https://dyvit-api-production.up.railway.app/api/campaigns \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{ "name": "Março 2026 - Inadimplentes 30+" }'
const res = await fetch(
"https://dyvit-api-production.up.railway.app/api/campaigns",
{
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${token}`,
},
body: JSON.stringify({ name: "Março 2026 - Inadimplentes 30+" }),
}
);
const campaign = await res.json();
console.log("Campaign ID:", campaign.id);
201Created
{
"id": "cm9x8y7z6w5v4u3t2s1r0q",
"name": "Março 2026 - Inadimplentes 30+",
"status": "DRAFT",
"createdAt": "2026-03-19T14:30:00.000Z"
}
3b. Importar dívidas (JSON)
POST/api/import/json/:campaignId
Request body
| Campo | Tipo | Obrig. | Descrição |
|---|
| clientId | string | Sim | Seu client ID (retornado no signup/login) |
| debts | DebtInput[] | Sim | Array de dívidas (mín. 1 item) |
Campos de cada dívida (DebtInput)
| Campo | Tipo | Obrig. | Descrição |
|---|
| debtorName | string | Sim | Nome completo do devedor |
| debtorPhone | string | Sim | Telefone com DDD (com ou sem +55) |
| debtorCpf | string | Sim | CPF do devedor (11 dígitos) |
| originalAmount | number | Sim | Valor original da dívida em reais |
| dueDate | string | Sim | Data de vencimento (YYYY-MM-DD) |
| invoiceId | string | Não | ID da fatura no seu sistema (para reconciliação) |
CAMPAIGN_ID="cm9x8y7z6w5v4u3t2s1r0q"
CLIENT_ID="cm1a2b3c4d5e6f7g8h9i0j"
curl -X POST "https://dyvit-api-production.up.railway.app/api/import/json/$CAMPAIGN_ID" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
"clientId": "'$CLIENT_ID'",
"debts": [
{
"debtorName": "Maria Silva Santos",
"debtorPhone": "+5511987654321",
"debtorCpf": "123.456.789-00",
"originalAmount": 1500.00,
"dueDate": "2026-02-15",
"invoiceId": "INV-2026-0042"
},
{
"debtorName": "João Pedro Oliveira",
"debtorPhone": "21976543210",
"debtorCpf": "987.654.321-00",
"originalAmount": 3200.50,
"dueDate": "2026-01-20"
}
]
}'
200OK
{
"imported": 2,
"skipped": 0,
"errors": []
}
3c. Lançar campanha
POST/api/campaigns/:id/launch
⚠️ Ação irreversível. Ao lançar, o agente de IA inicia o scoring das dívidas e começa a enviar mensagens via WhatsApp.
Certifique-se de que os dados estão corretos antes de lançar.
Use sandbox=true para testes sem disparo real de mensagens.
CAMPAIGN_ID="cm9x8y7z6w5v4u3t2s1r0q"
curl -X POST "https://dyvit-api-production.up.railway.app/api/campaigns/$CAMPAIGN_ID/launch" \
-H "Authorization: Bearer $TOKEN"
const campaignId = "cm9x8y7z6w5v4u3t2s1r0q";
const res = await fetch(
`https://dyvit-api-production.up.railway.app/api/campaigns/${campaignId}/launch`,
{
method: "POST",
headers: { Authorization: `Bearer ${token}` },
}
);
const result = await res.json();
console.log(`Dívidas enfileiradas para cobrança: ${result.queued}`);
O campo queued indica quantas dívidas foram enfileiradas para processamento.
O agente de IA vai iniciar as conversas automaticamente, respeitando horário comercial e limites do CDC.
Sua campanha está rodando. A partir daqui, você pode:
- Autenticação: entenda JWT, refresh tokens e API Keys em detalhe.
- Campanhas: pause, arquive e consulte estatísticas de campanhas.
- Dashboard: métricas consolidadas de recuperação.
- Pagamentos: acompanhe confirmações de Pix em tempo real.
- Erros: códigos de erro e como tratá-los.