Pular para o conteúdo principal

Autenticação

Toda requisição leva uma chave de API. A API aceita dois headers equivalentes — use o que preferir:

Authorization: Bearer <sua-chave>
x-api-key: <sua-chave>

A chave nunca é armazenada em claro no nosso lado (apenas o hash SHA-256) e identifica a sua organização: todos os dados retornados são automaticamente escopados a ela.

Criando chaves​

Crie chaves no dashboard em Configurações → Segurança, com três níveis de acesso:

  • Total — toda a API.
  • Leitura e escrita — toda a operação de cobrança, sem administração da conta.
  • Somente leitura — apenas GET.

Os escopos seguem o catálogo dunning.dashboard.<recurso>.<ação>; chave sem escopos tem acesso total ao negócio. A chave é exibida uma única vez na criação — copie e guarde em local seguro.

Chaves podem ter expiração (30/90/365 dias) com aviso por e-mail antes do vencimento. Administração da conta (membros, roles, chaves, configurações) nunca é acessível via API — responde 403.

Chaves também podem ser rotacionadas: a rotação cria uma chave sucessora com os mesmos nome, escopos e política de validade (token exibido uma única vez, como na criação) e antecipa a expiração da antiga para o fim de uma janela de carência — 7 dias por padrão, configurável de 0 a 30 (com 0, a antiga é cortada na hora). Troque o secret nas suas integrações dentro dessa janela; depois dela, a chave antiga responde 401. O ciclo de vida das chaves (rotação, mudança de status, revogação) é publicado nos eventos de webhook api_key.*.

Escopos​

Cada escopo é dunning.dashboard.<recurso>.<ação>. Wildcards são aceitos: dunning.dashboard.charges.* (todas as ações de cobranças) ou dunning.dashboard.* (tudo).

Presets​

Ao criar a chave você escolhe um preset; os três derivam do mesmo catálogo:

PresetCobreUso típico
Somente leituraações list/show/view de todos os recursosespelhar dados, BI, dashboards — nunca altera nada
Leitura e escritatoda a operação de cobrança (todos os recursos, menos administração da conta)integrações ERP/CRM que criam e atualizam clientes, cobranças, acordos...
Totaldunning.dashboard.*tudo que uma chave pode alcançar

Uma chave criada sem escopos equivale a "Leitura e escrita" (acesso total ao negócio). Você também pode montar um conjunto sob medida escolhendo escopos individuais do catálogo abaixo.

Catálogo de recursos​

RecursoAçõesO que permite
dashboardviewler os indicadores do painel
peoplelist show create update deletecarteira de clientes/devedores
chargeslist show create update delete notifycobranças e disparo manual de notificação
collection_ruleslist show create update delete activateréguas de cobrança e sua ativação
classificationslist show create update deleteclassificações/tags da carteira
templateslist show create update delete duplicatemodelos de mensagem
notificationslist show create update resend deletenotificações e reenvio
taskslist show create update delete completetarefas da operação
interactionslist show create update deleteinterações/histórico de contato
agreementslist show create update cancelacordos de pagamento
disputeslist show create resolvedisputas e sua resolução
negativationslist show create approve cancelnegativação em bureau
protestslist show create approve cancelprotesto em cartório
portalgenerate_link revoke_linklinks do portal do devedor
webhookslist show create update deleteendpoints de webhook
email_layoutslist show create update deletelayouts de e-mail
importslist show createimportações em lote
exportscreateexportações de dados
companieslist manageempresas e filiais da conta (manage é vedado a chaves — ver abaixo)
integrationslist manageintegrações da conta (manage é vedado a chaves — ver abaixo)
auditlist showtrilha de auditoria (somente leitura)

Administração da conta​

Membros, papéis (roles), chaves de API e configurações da conta compõem a administração da conta: uma chave, mesmo com o preset Total, recebe 403 (API_KEY_FORBIDDEN) ao tentar alcançá-los. Conta e permissões se gerenciam apenas pelo dashboard. Empresas/filiais (companies) e integrações têm a leitura liberada para chaves, mas a ação de configuração (manage) é igualmente vedada. A trilha de auditoria (GET /api/v1/audit-logs) é somente leitura e acessível via API.

Requisição válida​

export DUNNING_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxx

curl -i \
-H "Authorization: Bearer $DUNNING_TOKEN" \
-H 'Content-Type: application/json' \
-H 'User-Agent: Minha Integração <dev@minhaempresa.com.br>' \
-X GET 'https://api.dunning.kobana.com.br/api/v1/charges?per_page=1'
HTTP/1.1 200 OK
Content-Type: application/json
X-RateLimit-Limit: 600
X-RateLimit-Remaining: 599

{
"data": [
{
"id": "cmd8k2p4x0001ab3f",
"status": "overdue",
"amount": "1500.00",
"dueDate": "2026-07-10T00:00:00.000Z",
...
}
],
"meta": { "total": 142, "page": 1, "limit": 1, "totalPages": 142 }
}

Requisição inválida​

Chave ausente, malformada, revogada ou expirada responde 401 com o envelope de erro padrão:

curl -i \
-H "Authorization: Bearer chave-invalida" \
-X GET 'https://api.dunning.kobana.com.br/api/v1/charges'
HTTP/1.1 401 Unauthorized
Content-Type: application/json

{
"message": "Não autorizado",
"code": "UNAUTHORIZED"
}

Chave válida sem o escopo necessário responde 403 com code: "FORBIDDEN" (ou API_KEY_FORBIDDEN) e o campo required indicando a permissão que faltou.

Boas práticas​

  • Nunca versione chaves em git. Use variáveis de ambiente ou cofres de segredo (Vault, AWS Secrets Manager...).
  • Use uma chave por integração (ERP, CRM, BI...) — revogar uma não derruba as outras, e a auditoria fica legível.
  • Prefira o menor nível de acesso que resolve: integrações de leitura não precisam de escrita.
  • Defina expiração sempre que possível; o aviso por e-mail chega antes do vencimento.
  • Rotacione periodicamente: a janela de carência da rotação permite trocar o secret sem downtime; assine os eventos api_key.* para acompanhar.
  • Revogue imediatamente qualquer chave exposta — a revogação é instantânea (sem carência).
  • HTTPS obrigatório em todas as chamadas.