Admin - Clientes
Requiere rol global_admin. Gestión completa de clientes/organizaciones incluyendo licencias, configuración y estadísticas.
GET /admin/clients
Lista todos los clientes del sistema con información básica.
/admin/clientsHeaders
Authorization: Bearer JWT_TOKEN Ejemplos
curl -X GET https://api-docmind.devol.es/admin/clients \
-H "Authorization: Bearer JWT_TOKEN" Respuesta
{"clients": [{"id": "uuid", "nombre": "Empresa A", "status": "activo", "plan": "profesional", "users_count": 15}]}Lista de clientes con estado y plan.
Errores
403ForbiddenRequiere global_admin.
{"msg": "Acceso denegado"}GET /admin/clients/{client_id}
Obtiene los datos completos de un cliente incluyendo configuración y licencia.
/admin/clients/{client_id}Headers
Authorization: Bearer JWT_TOKEN Ejemplos
curl -X GET https://api-docmind.devol.es/admin/clients/CLIENT_ID \
-H "Authorization: Bearer JWT_TOKEN" Respuesta
{
"client": {
"id": "uuid", "nombre": "Empresa A", "status": "activo",
"licencia": {"plan": "profesional", "extracciones_limite": 10000, "fecha_expiracion": "..."},
"config": {"logo_url": "...", "primary_color": "#FF6600"},
"stats": {"users": 15, "habilidades": 8, "extracciones_totales": 5000}
}
}Información completa del cliente con licencia, configuración y estadísticas.
Errores
404Not FoundCliente no encontrado.
{"error": "Cliente no encontrado"}POST /admin/clients
Crea un nuevo cliente/organización en el sistema.
/admin/clientsHeaders
Content-Type: application/json
Authorization: Bearer JWT_TOKEN Body (JSON)
{
"nombre": "Nueva Empresa",
"plan": "profesional",
"extracciones_limite": 5000,
"usuarios_limite": 10,
"admin_email": "admin@nuevaempresa.com",
"admin_nombre": "Admin",
"admin_password": "password123"
} nombre: (obligatorio) Nombre del cliente.plan: (obligatorio) Plan de licencia.extracciones_limite: (obligatorio) Límite de extracciones.usuarios_limite: (obligatorio) Límite de usuarios.admin_email: (obligatorio) Email del primer usuario admin.admin_nombre: (obligatorio) Nombre del admin.admin_password: (obligatorio) Contraseña del admin.
Ejemplos
curl -X POST https://api-docmind.devol.es/admin/clients \
-H "Content-Type: application/json" -H "Authorization: Bearer JWT_TOKEN" \
-d '{"nombre": "Nueva Empresa", "plan": "profesional", "extracciones_limite": 5000, "usuarios_limite": 10, "admin_email": "admin@ej.com", "admin_nombre": "Admin", "admin_password": "pass123"}' Respuesta
{"message": "Cliente creado exitosamente", "client": {"id": "new-uuid", "nombre": "Nueva Empresa"}, "admin_user": {"id": "admin-uuid"}}Cliente creado con su esquema de base de datos y usuario administrador inicial.
Errores
400Bad RequestDatos faltantes o inválidos.
{"error": "El nombre es obligatorio"}409ConflictEmail admin ya existe.
{"error": "El email ya está registrado"}PUT /admin/clients/{client_id}
Actualiza los datos de un cliente.
/admin/clients/{client_id}Headers
Content-Type: application/json
Authorization: Bearer JWT_TOKEN Body (JSON)
{"nombre": "Empresa Actualizada", "status": "activo"} nombre: (opcional) Nuevo nombre.status: (opcional) Nuevo estado: activo, inactivo.
Ejemplos
curl -X PUT https://api-docmind.devol.es/admin/clients/CLIENT_ID \
-H "Content-Type: application/json" -H "Authorization: Bearer JWT_TOKEN" \
-d '{"nombre": "Empresa Actualizada"}' Respuesta
{"message": "Cliente actualizado exitosamente"}Confirmación.
Errores
404Not FoundCliente no encontrado.
{"error": "Cliente no encontrado"}DELETE /admin/clients/{client_id}
Elimina un cliente y todos sus datos (usuarios, extracciones, habilidades, etc.).
/admin/clients/{client_id}Headers
Authorization: Bearer JWT_TOKEN Ejemplos
curl -X DELETE https://api-docmind.devol.es/admin/clients/CLIENT_ID \
-H "Authorization: Bearer JWT_TOKEN" Respuesta
{"message": "Cliente y todos sus datos eliminados exitosamente"}Operación destructiva e irreversible. Se eliminan todos los datos del cliente.
Errores
404Not FoundCliente no encontrado.
{"error": "Cliente no encontrado"}PUT /admin/clients/{client_id}/licencia
Actualiza la licencia de un cliente (plan, límites, fechas).
/admin/clients/{client_id}/licenciaHeaders
Content-Type: application/json
Authorization: Bearer JWT_TOKEN Body (JSON)
{
"plan": "enterprise",
"extracciones_limite": 50000,
"usuarios_limite": 100,
"fecha_expiracion": "2026-12-31"
} plan: (opcional) Nuevo plan.extracciones_limite: (opcional) Nuevo límite de extracciones.usuarios_limite: (opcional) Nuevo límite de usuarios.fecha_expiracion: (opcional) Nueva fecha de expiración YYYY-MM-DD.
Ejemplos
curl -X PUT https://api-docmind.devol.es/admin/clients/CLIENT_ID/licencia \
-H "Content-Type: application/json" -H "Authorization: Bearer JWT_TOKEN" \
-d '{"plan": "enterprise", "extracciones_limite": 50000}' Respuesta
{"message": "Licencia actualizada exitosamente", "licencia": {"plan": "enterprise", "extracciones_limite": 50000}}Licencia actualizada con los nuevos valores.
Errores
404Not FoundCliente no encontrado.
{"error": "Cliente no encontrado"}GET /admin/clients/{client_id}/config
Obtiene la configuración personalizada del cliente (logo, colores, etc.).
/admin/clients/{client_id}/configHeaders
Authorization: Bearer JWT_TOKEN Ejemplos
curl -X GET https://api-docmind.devol.es/admin/clients/CLIENT_ID/config \
-H "Authorization: Bearer JWT_TOKEN" Respuesta
{"config": {"logo_url": "https://...", "primary_color": "#FF6600", "secondary_color": "#333"}}Configuración visual del cliente.
Errores
404Not FoundCliente no encontrado.
{"error": "Cliente no encontrado"}PUT /admin/clients/{client_id}/config
Actualiza la configuración personalizada del cliente.
/admin/clients/{client_id}/configHeaders
Content-Type: application/json
Authorization: Bearer JWT_TOKEN Body (JSON)
{"logo_url": "https://nueva-url/logo.png", "primary_color": "#0066FF"} logo_url: (opcional) URL del logo.primary_color: (opcional) Color primario (hex).secondary_color: (opcional) Color secundario (hex).
Ejemplos
curl -X PUT https://api-docmind.devol.es/admin/clients/CLIENT_ID/config \
-H "Content-Type: application/json" -H "Authorization: Bearer JWT_TOKEN" \
-d '{"primary_color": "#0066FF"}' Respuesta
{"message": "Configuración actualizada exitosamente"}Confirmación.
Errores
404Not FoundCliente no encontrado.
{"error": "Cliente no encontrado"}GET /admin/clients/{client_id}/stats
Obtiene estadísticas detalladas de un cliente.
/admin/clients/{client_id}/statsHeaders
Authorization: Bearer JWT_TOKEN Ejemplos
curl -X GET https://api-docmind.devol.es/admin/clients/CLIENT_ID/stats \
-H "Authorization: Bearer JWT_TOKEN" Respuesta
{
"stats": {
"extracciones": {"total": 5000, "este_mes": 450, "completadas": 4800},
"usuarios": {"total": 15, "activos_este_mes": 12},
"habilidades": {"total": 8},
"storage_mb": 2500
}
}Estadísticas operativas del cliente.
Errores
404Not FoundCliente no encontrado.
{"error": "Cliente no encontrado"}POST /admin/clients/{client_id}/reset-usage
Resetea el conteo de uso de extracciones del cliente.
/admin/clients/{client_id}/reset-usageHeaders
Authorization: Bearer JWT_TOKEN Ejemplos
curl -X POST https://api-docmind.devol.es/admin/clients/CLIENT_ID/reset-usage \
-H "Authorization: Bearer JWT_TOKEN" Respuesta
{"message": "Contadores de uso reseteados exitosamente"}Los contadores de extracción vuelven a 0.
Errores
404Not FoundCliente no encontrado.
{"error": "Cliente no encontrado"}