Skip to content

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:

Terminal window
curl http://localhost/api/tenants -H "Authorization: Bearer <token>"

Python:

import httpx
resp = 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:

Terminal window
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:

Terminal window
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 httpx
resp = 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:

Terminal window
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:

Terminal window
curl -X DELETE http://localhost/api/tenants/uuid-tenant-1 -H "Authorization: Bearer <token>"