Documentación API

Multi-Tenant (Usuario-Clientes)

Gestión de la relación entre usuarios y clientes en un entorno multi-tenant. Permite a un usuario acceder a múltiples organizaciones.


GET /api/usuario_clientes/usuarios/{user_id}/clientes

Lista los clientes asociados a un usuario específico.

GET /api/usuario_clientes/usuarios/{user_id}/clientes

Headers

Authorization: Bearer JWT_TOKEN

Ejemplos

curl -X GET https://api-docmind.devol.es/api/usuario_clientes/usuarios/USER_ID/clientes \
  -H "Authorization: Bearer JWT_TOKEN"

Respuesta

{"clientes": [{"id": "client-uuid", "nombre": "Empresa A", "activo": true}]}

Lista de clientes a los que el usuario tiene acceso.

Errores

404Not Found

Usuario no encontrado.

{"error": "Usuario no encontrado"}

POST /api/usuario_clientes/usuarios/{user_id}/clientes

Asocia un usuario a un cliente adicional.

POST /api/usuario_clientes/usuarios/{user_id}/clientes

Headers

Content-Type: application/json
Authorization: Bearer JWT_TOKEN

Body (JSON)

{"cliente_id": "client-uuid"}
  • cliente_id: (obligatorio) ID del cliente a asociar.

Ejemplos

curl -X POST https://api-docmind.devol.es/api/usuario_clientes/usuarios/USER_ID/clientes \
  -H "Content-Type: application/json" -H "Authorization: Bearer JWT_TOKEN" \
  -d '{"cliente_id": "client-uuid"}'

Respuesta

{"message": "Cliente asociado exitosamente"}

El usuario ahora tiene acceso al cliente especificado.

Errores

404Not Found

Usuario o cliente no encontrado.

{"error": "Cliente no encontrado"}
409Conflict

Ya está asociado.

{"error": "El usuario ya está asociado a este cliente"}

PUT /api/usuario_clientes/usuarios/{user_id}/clientes

Actualiza la lista de clientes asociados a un usuario (reemplaza completamente).

PUT /api/usuario_clientes/usuarios/{user_id}/clientes

Headers

Content-Type: application/json
Authorization: Bearer JWT_TOKEN

Body (JSON)

{"clientes_ids": ["client-uuid-1", "client-uuid-2"]}
  • clientes_ids: (obligatorio) Lista de IDs de clientes.

Ejemplos

curl -X PUT https://api-docmind.devol.es/api/usuario_clientes/usuarios/USER_ID/clientes \
  -H "Content-Type: application/json" -H "Authorization: Bearer JWT_TOKEN" \
  -d '{"clientes_ids": ["uuid-1", "uuid-2"]}'

Respuesta

{"message": "Clientes actualizados exitosamente"}

La lista de clientes del usuario se reemplaza completamente.

Errores

400Bad Request

Lista vacía o IDs inválidos.

{"error": "Se requiere al menos un cliente"}

DELETE /api/usuario_clientes/usuarios/{user_id}/clientes/{cliente_id}

Desasocia un usuario de un cliente específico.

DELETE /api/usuario_clientes/usuarios/{user_id}/clientes/{cliente_id}

Headers

Authorization: Bearer JWT_TOKEN

Ejemplos

curl -X DELETE https://api-docmind.devol.es/api/usuario_clientes/usuarios/USER_ID/clientes/CLIENT_ID \
  -H "Authorization: Bearer JWT_TOKEN"

Respuesta

{"message": "Cliente desasociado exitosamente"}

El usuario pierde acceso al cliente especificado.

Errores

404Not Found

Asociación no encontrada.

{"error": "Asociación no encontrada"}

GET /api/usuario_clientes/mi-usuario/clientes

Lista los clientes del usuario autenticado.

GET /api/usuario_clientes/mi-usuario/clientes

Headers

Authorization: Bearer JWT_TOKEN

Ejemplos

curl -X GET https://api-docmind.devol.es/api/usuario_clientes/mi-usuario/clientes \
  -H "Authorization: Bearer JWT_TOKEN"

Respuesta

{"clientes": [{"id": "client-uuid", "nombre": "Mi Empresa", "activo": true}], "cliente_activo": "client-uuid"}

Lista de clientes accesibles y cuál es el activo actualmente.

Errores

401Unauthorized

Token inválido.

{"msg": "Token inválido"}

POST /api/usuario_clientes/mi-usuario/cliente-activo

Cambia el cliente activo del usuario autenticado. Genera un nuevo JWT.

POST /api/usuario_clientes/mi-usuario/cliente-activo

Headers

Content-Type: application/json
Authorization: Bearer JWT_TOKEN

Body (JSON)

{"cliente_id": "client-uuid-2"}
  • cliente_id: (obligatorio) ID del cliente al que cambiar.

Ejemplos

curl -X POST https://api-docmind.devol.es/api/usuario_clientes/mi-usuario/cliente-activo \
  -H "Content-Type: application/json" -H "Authorization: Bearer JWT_TOKEN" \
  -d '{"cliente_id": "client-uuid-2"}'

Respuesta

{"message": "Cliente activo cambiado", "access_token": "eyJ...(nuevo)", "cliente_nombre": "Empresa B"}

Se genera un nuevo JWT con el contexto del cliente seleccionado.

Errores

400Bad Request

Falta cliente_id.

{"error": "Se requiere cliente_id"}
403Forbidden

No tiene acceso al cliente.

{"error": "No tienes acceso a este cliente"}

© 2025 Devol. Todos los derechos reservados.