Tenants
Tenants
Prefijo: /api/tenants
Requiere Auth: Sí (solo Superadmin rol=3)
Permiso requerido: tenants, *
Módulo de gestión multi-tenant. Estos endpoints son exclusivos para usuarios con rol Superadmin (rol=3) y permiten administrar todos los tenants del sistema.
GET /api/tenants
Descripción: Lista todos los tenants del sistema (solo Superadmin)
Requiere Auth: Sí (rol=3)
Permiso requerido: tenants, leer
Respuesta exitosa: 200 OK
Errores: 403 (no es Superadmin)
Response:
[ { "id": "uuid-tenant-1", "codigo": "TENANT001", "nombre": "Mi Empresa SAS", "razon_social": "Mi Empresa SAS", "nit": "900123456-7", "dv": "7", "telefono": "3001234567", "email": "info@miempresa.com", "direccion": "Calle 123 #45-67", "ciudad": "Bogotá", "estado": "ACTIVO", "plan": "BASICO", "limite_usuarios": 3, "fecha_expiracion": "2026-01-01", "fecha_creacion": "2025-01-01T00:00:00", "fecha_actualizacion": "2025-01-15T00:00:00" }]cURL:
curl http://localhost/api/tenants -H "Authorization: Bearer <token>"Python:
import httpxresp = httpx.get("http://localhost/api/tenants", headers={"Authorization": f"Bearer {token}"})tenants = resp.json()JavaScript:
const resp = await fetch('http://localhost/api/tenants', { headers: {'Authorization': `Bearer ${token}`}});const tenants = await resp.json();GET /api/tenants/{tenant_id}
Descripción: Obtiene un tenant por ID
Requiere Auth: Sí (rol=3)
Permiso requerido: tenants, leer
Respuesta exitosa: 200 OK
Errores: 404 (no encontrado)
cURL:
curl http://localhost/api/tenants/uuid-tenant-1 -H "Authorization: Bearer <token>"POST /api/tenants
Descripción: Crea un nuevo tenant
Requiere Auth: Sí (rol=3)
Permiso requerido: tenants, crear
Request:
{ "codigo": "NUEVOTENANT", "nombre": "Nueva Empresa SAS", "razon_social": "Nueva Empresa SAS", "nit": "900987654-3", "telefono": "3007654321", "email": "info@nuevaempresa.com", "direccion": "Carrera 50 #20-30", "ciudad": "Medellín", "plan": "BASICO", "limite_usuarios": 3}Respuesta exitosa: 201 Created
cURL:
curl -X POST http://localhost/api/tenants \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <token>" \ -d '{"codigo":"NUEVOTENANT","nombre":"Nueva Empresa SAS","nit":"900987654-3","plan":"BASICO","limite_usuarios":3}'Python:
import httpxresp = httpx.post("http://localhost/api/tenants", json={"codigo": "NUEVOTENANT", "nombre": "Nueva Empresa SAS", "nit": "900987654-3", "plan": "BASICO", "limite_usuarios": 3}, headers={"Authorization": f"Bearer {token}"})tenant = resp.json()JavaScript:
const resp = await fetch('http://localhost/api/tenants', { method: 'POST', headers: {'Content-Type': 'application/json', 'Authorization': `Bearer ${token}`}, body: JSON.stringify({codigo: 'NUEVOTENANT', nombre: 'Nueva Empresa SAS', nit: '900987654-3', plan: 'BASICO', limite_usuarios: 3})});PUT /api/tenants/{tenant_id}
Descripción: Actualiza un tenant
Requiere Auth: Sí (rol=3)
Permiso requerido: tenants, actualizar
Respuesta exitosa: 200 OK
Errores: 404 (no encontrado)
cURL:
curl -X PUT http://localhost/api/tenants/uuid-tenant-1 \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <token>" \ -d '{"nombre":"Mi Empresa SAS Actualizado","plan":"PREMIUM","limite_usuarios":10}'DELETE /api/tenants/{tenant_id}
Descripción: Elimina un tenant
Requiere Auth: Sí (rol=3)
Permiso requerido: tenants, eliminar
Respuesta exitosa: 200 OK
Response:
{ "mensaje": "Tenant eliminado exitosamente"}cURL:
curl -X DELETE http://localhost/api/tenants/uuid-tenant-1 -H "Authorization: Bearer <token>"