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, estructura organizacional) nunca es accesible vía API — responde 403.

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
integrationslist manageintegraciones de la cuenta

Administración de la cuenta

Miembros, roles, claves de API, workspaces, auditoría y configuración de la cuenta componen la administración de la cuenta. Esos recursos existen en el catálogo para los roles del dashboard, pero ninguna ruta de administración de la cuenta se expone en la API: una clave, incluso con el preset Total, recibe 403 al intentar alcanzarlos. La cuenta y los permisos se gestionan solo por el dashboard.

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.
  • Revoca de inmediato cualquier clave expuesta — la revocación es instantánea.
  • HTTPS obligatorio en todas las llamadas.