Skip to content

Configuración

Configuración

Prefijo: /api/config
Requiere Auth:
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:
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:

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

Python:

import httpx
resp = 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:
Permiso requerido: configuracion, leer

Respuesta exitosa: 200 OK
Errores: 404 (no encontrada)

cURL:

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

Terminal window
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 httpx
resp = 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:
Permiso requerido: configuracion, actualizar

Respuesta exitosa: 200 OK
Errores: 404 (no encontrada)

cURL:

Terminal window
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:
Permiso requerido: configuracion, eliminar

Respuesta exitosa: 204 No Content
Errores: 404 (no encontrada)

cURL:

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

Terminal window
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:
Permiso requerido: configuracion, leer

Respuesta exitosa: 200 OK
Errores: 404 (no encontrada)

cURL:

Terminal window
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:
Permiso requerido: configuracion, leer

Respuesta exitosa: 200 OK
Errores: 404 (no encontrada)

cURL:

Terminal window
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:
Permiso requerido: configuracion, crear

Request:

{
"clave": "IMPUESTO_INC",
"valor": "8",
"descripcion": "Porcentaje de INC"
}

Respuesta exitosa: 201 Created

cURL:

Terminal window
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:
Permiso requerido: configuracion, actualizar

Respuesta exitosa: 200 OK
Errores: 404 (no encontrada)

cURL:

Terminal window
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:
Permiso requerido: configuracion, eliminar

Respuesta exitosa: 204 No Content
Errores: 404 (no encontrada)

cURL:

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

Terminal window
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:
Permiso requerido: configuracion, leer

Parámetros path:

ParámetroTipoDescripción
clavestringClave 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:

Terminal window
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:
Permiso requerido: configuracion, actualizar

Request:

{
"clave": "modo_venta",
"valor": "RAPIDO",
"descripcion": "Modo de venta del POS"
}

Respuesta exitosa: 200 OK

cURL:

Terminal window
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:
Permiso requerido: configuracion, actualizar

Request:

{
"valor": "19"
}

Respuesta exitosa: 200 OK
Errores: 404 (clave no encontrada), 400 (sin valor)

cURL:

Terminal window
curl -X PUT http://localhost/api/config/IVA_DEFECTO \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <token>" \
-d '{"valor":"19"}'