Docs/Começar/Quickstart
DashboardGitHub

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)

1. Criar conta

#

Cadastre sua empresa na Dyvit. O signup cria automaticamente um trial gratuito de 14 dias no plano Growth.

POST/api/onboarding/signup
Request body
CampoTipoObrig.Descrição
namestringSimNome da empresa
emailstringSimEmail corporativo (domínio próprio)
passwordstringSimSenha (mín. 8 caracteres, 1 maiúscula, 1 número)
cnpjstringNãoCNPJ da empresa (14 dígitos, com ou sem formatação)
segmentstringNãoSegmento: 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.


2. Login e token

#

Se você já tem uma conta, obtenha um novo token via login.

POST/api/auth/login
Request body
CampoTipoObrig.Descrição
emailstringSimEmail cadastrado
passwordstringSimSenha 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
CampoTipoObrig.Descrição
clientIdstringSimSeu client ID (retornado no signup/login)
debtsDebtInput[]SimArray de dívidas (mín. 1 item)
Campos de cada dívida (DebtInput)
CampoTipoObrig.Descrição
debtorNamestringSimNome completo do devedor
debtorPhonestringSimTelefone com DDD (com ou sem +55)
debtorCpfstringSimCPF do devedor (11 dígitos)
originalAmountnumberSimValor original da dívida em reais
dueDatestringSimData de vencimento (YYYY-MM-DD)
invoiceIdstringNãoID 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}`);
200OK
{
  "queued": 2
}

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.


Próximos passos

#

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.