Configuración
Configuración
Prefijo: /api/config
Requiere Auth: Sí
Permiso requerido: configuracion, *
Módulo de configuración del sistema. Se divide en dos subsecciones: datos de la empresa y configuraciones clave-valor generales.
Empresa
GET /api/config/empresa [NUEVO]
Descripción: Obtiene la configuración de la empresa del tenant actual. Si no existe, retorna 404.
Requiere Auth: Sí
Permiso requerido: configuracion, leer
Respuesta exitosa: 200 OK
Response:
{ "id": 1, "nombre": "Mi Empresa SAS", "ruc": "900123456-7", "telefono": "3001234567", "direccion": "Calle 123 #45-67", "razon": "Mi Empresa SAS", "tenant_id": "uuid-tenant"}cURL:
curl http://localhost/api/config/empresa -H "Authorization: Bearer <token>"Python:
import httpxresp = httpx.get("http://localhost/api/config/empresa", headers={"Authorization": f"Bearer :token"})empresa = resp.json()JavaScript:
const resp = await fetch('http://localhost/api/config/empresa', { headers: {'Authorization': `Bearer $:token`}});const empresa = await resp.json();GET /api/config/empresa/:config_id
Descripción: Obtiene configuración de empresa por ID
Requiere Auth: Sí
Permiso requerido: configuracion, leer
Respuesta exitosa: 200 OK
Errores: 404 (no encontrada)
cURL:
curl http://localhost/api/config/empresa/1 -H "Authorization: Bearer <token>"POST /api/config/empresa
Descripción: Crea la configuración de empresa
Requiere Auth: Sí
Permiso requerido: configuracion, crear
Request:
{ "nombre": "Mi Empresa SAS", "ruc": "900123456-7", "telefono": "3001234567", "direccion": "Calle 123 #45-67", "razon": "Mi Empresa SAS"}Respuesta exitosa: 201 Created
cURL:
curl -X POST http://localhost/api/config/empresa \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <token>" \ -d '{"nombre":"Mi Empresa SAS","ruc":"900123456-7","telefono":"3001234567","direccion":"Calle 123 #45-67","razon":"Mi Empresa SAS"}'Python:
import httpxresp = httpx.post("http://localhost/api/config/empresa", json={"nombre": "Mi Empresa SAS", "ruc": "900123456-7", "telefono": "3001234567", "direccion": "Calle 123 #45-67", "razon": "Mi Empresa SAS"}, headers={"Authorization": f"Bearer :token"})empresa = resp.json()JavaScript:
const resp = await fetch('http://localhost/api/config/empresa', { method: 'POST', headers: {'Content-Type': 'application/json', 'Authorization': `Bearer $:token`}, body: JSON.stringify({nombre: 'Mi Empresa SAS', ruc: '900123456-7', telefono: '3001234567', direccion: 'Calle 123 #45-67', razon: 'Mi Empresa SAS'})});PUT /api/config/empresa
Descripción: Actualiza la configuración de empresa
Requiere Auth: Sí
Permiso requerido: configuracion, actualizar
Respuesta exitosa: 200 OK
Errores: 404 (no encontrada)
cURL:
curl -X PUT http://localhost/api/config/empresa \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <token>" \ -d '{"nombre":"Mi Empresa SAS Actualizado","telefono":"3009998877"}'DELETE /api/config/empresa/:config_id
Descripción: Elimina configuración de empresa
Requiere Auth: Sí
Permiso requerido: configuracion, eliminar
Respuesta exitosa: 204 No Content
Errores: 404 (no encontrada)
cURL:
curl -X DELETE http://localhost/api/config/empresa/1 -H "Authorization: Bearer <token>"Configuraciones Clave-Valor
GET /api/config/configuraciones
Descripción: Lista las configuraciones clave-valor
Requiere Auth: Sí
Permiso requerido: configuracion, leer
Respuesta exitosa: 200 OK
Response:
[ { "id": 1, "clave": "IVA_DEFECTO", "valor": "19", "descripcion": "Porcentaje de IVA por defecto", "tenant_id": "uuid-tenant", "fecha_update": "2025-01-01T00:00:00" }]cURL:
curl http://localhost/api/config/configuraciones -H "Authorization: Bearer <token>"GET /api/config/configuraciones/:config_id
Descripción: Obtiene una configuración por ID
Requiere Auth: Sí
Permiso requerido: configuracion, leer
Respuesta exitosa: 200 OK
Errores: 404 (no encontrada)
cURL:
curl http://localhost/api/config/configuraciones/1 -H "Authorization: Bearer <token>"GET /api/config/configuraciones/clave/:clave
Descripción: Obtiene una configuración por clave
Requiere Auth: Sí
Permiso requerido: configuracion, leer
Respuesta exitosa: 200 OK
Errores: 404 (no encontrada)
cURL:
curl http://localhost/api/config/configuraciones/clave/IVA_DEFECTO -H "Authorization: Bearer <token>"POST /api/config/configuraciones
Descripción: Crea una nueva configuración clave-valor
Requiere Auth: Sí
Permiso requerido: configuracion, crear
Request:
{ "clave": "IMPUESTO_INC", "valor": "8", "descripcion": "Porcentaje de INC"}Respuesta exitosa: 201 Created
cURL:
curl -X POST http://localhost/api/config/configuraciones \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <token>" \ -d '{"clave":"IMPUESTO_INC","valor":"8","descripcion":"Porcentaje de INC"}'PUT /api/config/configuraciones/:config_id
Descripción: Actualiza una configuración
Requiere Auth: Sí
Permiso requerido: configuracion, actualizar
Respuesta exitosa: 200 OK
Errores: 404 (no encontrada)
cURL:
curl -X PUT http://localhost/api/config/configuraciones/1 \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <token>" \ -d '{"valor":"16","descripcion":"Nuevo porcentaje IVA"}'DELETE /api/config/configuraciones/:config_id
Descripción: Elimina una configuración
Requiere Auth: Sí
Permiso requerido: configuracion, eliminar
Respuesta exitosa: 204 No Content
Errores: 404 (no encontrada)
cURL:
curl -X DELETE http://localhost/api/config/configuraciones/1 -H "Authorization: Bearer <token>"GET /api/config/modo_venta [NUEVO]
Descripción: Retorna la configuración modo_venta usada por el POS para determinar el flujo de venta.
Requiere Auth: Sí
Permiso requerido: configuracion, leer
Respuesta exitosa: 200 OK
Response:
{ "id": 1, "clave": "modo_venta", "valor": "MESA", "descripcion": "Modo de venta del POS", "tenant_id": "uuid-tenant", "fecha_update": "2026-07-24T00:00:00"}cURL:
curl http://localhost/api/config/modo_venta -H "Authorization: Bearer <token>"GET /api/config/:clave [NUEVO]
Descripción: Retorna una configuración por su clave. El cliente POS usa esta ruta para leer cualquier configuración (modo_venta, empresa, etc.).
Requiere Auth: Sí
Permiso requerido: configuracion, leer
Parámetros path:
| Parámetro | Tipo | Descripción |
|---|---|---|
clave | string | Clave de la configuración (ej. modo_venta) |
Respuesta exitosa: 200 OK
Response:
{ "id": 1, "clave": "modo_venta", "valor": "RAPIDO", "descripcion": "Modo de venta del POS", "tenant_id": "uuid-tenant", "fecha_update": "2026-07-24T00:00:00"}Errores: 404 (clave no encontrada)
cURL:
curl http://localhost/api/config/modo_venta -H "Authorization: Bearer <token>"POST /api/config/ [NUEVO]
Descripción: Upsert de configuración clave-valor. Si la clave existe, actualiza el valor; si no, crea un nuevo registro.
Requiere Auth: Sí
Permiso requerido: configuracion, actualizar
Request:
{ "clave": "modo_venta", "valor": "RAPIDO", "descripcion": "Modo de venta del POS"}Respuesta exitosa: 200 OK
cURL:
curl -X POST http://localhost/api/config/ \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <token>" \ -d '{"clave":"modo_venta","valor":"RAPIDO","descripcion":"Modo de venta del POS"}'PUT /api/config/:clave
Descripción: Actualiza el valor de una configuración por su clave.
Requiere Auth: Sí
Permiso requerido: configuracion, actualizar
Request:
{ "valor": "19"}Respuesta exitosa: 200 OK
Errores: 404 (clave no encontrada), 400 (sin valor)
cURL:
curl -X PUT http://localhost/api/config/IVA_DEFECTO \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <token>" \ -d '{"valor":"19"}'