Saltar al contenido principal

Autenticación

Toda request lleva una clave de API. La API acepta dos headers equivalentes — usa el que prefieras:

Authorization: Bearer <tu-clave>
x-api-key: <tu-clave>

La clave nunca se almacena en claro de nuestro lado (solo su hash SHA-256) e identifica tu organización: todos los datos devueltos quedan automáticamente acotados a ella.

Creando claves

Crea claves en el panel en Configuración → Seguridad, con tres niveles de acceso:

  • Total — toda la API.
  • Lectura y escritura — toda la operación de cobranza, sin administración de la cuenta.
  • Solo lectura — solo GET.

Los scopes siguen el catálogo dunning.dashboard.<recurso>.<acción>; una clave sin scopes tiene acceso total al negocio. La clave se muestra una única vez al crearla — cópiala y guárdala en un lugar seguro.

Las claves pueden tener expiración (30/90/365 días) con aviso por correo antes del vencimiento. La administración de la cuenta (miembros, roles, claves, configuración) nunca es accesible vía API — responde 403.

Las claves también pueden rotarse: la rotación crea una clave sucesora con el mismo nombre, scopes y política de validez (token mostrado una única vez, como al crearla) y adelanta la expiración de la antigua al final de una ventana de gracia — 7 días por defecto, configurable de 0 a 30 (con 0, la antigua se corta al instante). Cambia el secret en tus integraciones dentro de esa ventana; después, la clave antigua responde 401. El ciclo de vida de las claves (rotación, cambio de estado, revocación) se publica en los eventos de webhook api_key.*.

Scopes

Cada scope es dunning.dashboard.<recurso>.<acción>. Se aceptan wildcards: dunning.dashboard.charges.* (todas las acciones de cobros) o dunning.dashboard.* (todo).

Presets

Al crear la clave eliges un preset; los tres derivan del mismo catálogo:

PresetCubreUso típico
Solo lecturaacciones list/show/view de todos los recursosespejar datos, BI, dashboards — nunca altera nada
Lectura y escrituratoda la operación de cobranza (todos los recursos, menos administración de la cuenta)integraciones ERP/CRM que crean y actualizan clientes, cobros, acuerdos...
Totaldunning.dashboard.*todo lo que una clave puede alcanzar

Una clave creada sin scopes equivale a "Lectura y escritura" (acceso total al negocio). También puedes armar un conjunto a medida eligiendo scopes individuales del catálogo de abajo.

Catálogo de recursos

RecursoAccionesQué permite
dashboardviewleer los indicadores del panel
peoplelist show create update deletecartera de clientes/deudores
chargeslist show create update delete notifycobros y disparo manual de notificación
collection_ruleslist show create update delete activatereglas de cobranza y su activación
classificationslist show create update deleteclasificaciones/tags de la cartera
templateslist show create update delete duplicateplantillas de mensaje
notificationslist show create update resend deletenotificaciones y reenvío
taskslist show create update delete completetareas de la operación
interactionslist show create update deleteinteracciones/historial de contacto
agreementslist show create update cancelacuerdos de pago
disputeslist show create resolvedisputas y su resolución
negativationslist show create approve cancelnegativación en bureau
protestslist show create approve cancelprotesto en notaría
portalgenerate_link revoke_linklinks del portal del deudor
webhookslist show create update deleteendpoints de webhook
email_layoutslist show create update deletelayouts de correo
importslist show createimportaciones por lote
exportscreateexportaciones de datos
companieslist manageempresas y sucursales de la cuenta (manage está vedado a claves — ver abajo)
integrationslist manageintegraciones de la cuenta (manage está vedado a claves — mira abajo)
auditlist showhistorial de auditoría (solo lectura)

Administración de la cuenta

Miembros, roles, claves de API y configuración de la cuenta componen la administración de la cuenta: una clave, incluso con el preset Total, recibe 403 (API_KEY_FORBIDDEN) al intentar alcanzarlos. La cuenta y los permisos se gestionan solo por el dashboard. Empresas/sucursales (companies) e integraciones tienen la lectura habilitada para claves, pero la acción de configuración (manage) está igualmente vedada. El historial de auditoría (GET /api/v1/audit-logs) es de solo lectura y accesible vía API.

Request válida

export DUNNING_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxx

curl -i \
-H "Authorization: Bearer $DUNNING_TOKEN" \
-H 'Content-Type: application/json' \
-H 'User-Agent: Mi Integración <dev@miempresa.com>' \
-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 }
}

Request inválida

Una clave ausente, malformada, revocada o expirada responde 401 con el envelope de error estándar:

curl -i \
-H "Authorization: Bearer clave-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"
}

Una clave válida sin el scope necesario responde 403 con code: "FORBIDDEN" (o API_KEY_FORBIDDEN) y el campo required indicando el permiso que faltó.

Buenas prácticas

  • Nunca versiones claves en git. Usa variables de entorno o bóvedas de secretos (Vault, AWS Secrets Manager...).
  • Usa una clave por integración (ERP, CRM, BI...) — revocar una no tumba las demás, y la auditoría queda legible.
  • Prefiere el menor nivel de acceso que resuelva: las integraciones de lectura no necesitan escritura.
  • Define expiración siempre que sea posible; el aviso por correo llega antes del vencimiento.
  • Rota periódicamente: la ventana de gracia de la rotación permite cambiar el secret sin downtime; suscríbete a los eventos api_key.* para seguirlo.
  • Revoca de inmediato cualquier clave expuesta — la revocación es instantánea (sin ventana de gracia).
  • HTTPS obligatorio en todas las llamadas.