Skip to Content
v1.5Documentación oficial de la API LX CloudPos · estable en producción
V1Referencia De EndpointsCatálogos de códigos

Catálogos de códigos

GET /api/v1/catalogos/{medios-pago | condiciones-venta | unidades-medida | actividades | puntos-venta | tipos-codigo | marcas}

Siete endpoints de solo lectura para armar un request de emisión sin copiar códigos de esta documentación —que se desactualiza— ni adivinar valores que son propios del tenant: actividades económicas, puntos de venta y marcas.

Cada uno expone un contrato propio y estable de la API, no la entidad interna, de modo que un cambio del lado de LX CloudPos no altera el contrato para el integrador.

Autenticación y permisos

Las siete rutas comparten la misma policy:

AtributoValor
EsquemaAPI key (X-Api-Key)
Scope requeridocatalogo:read (todas)
Rate limit120 req/min por API key

Headers

GET /api/v1/catalogos/medios-pago HTTP/1.1 Host: api.pos.lxsyscr.com X-Api-Key: lxs_live_a1b2c3d4_001122... Accept: application/json

GET /catalogos/medios-pago

El codigo de cada fila es lo que se envía como medioPago al emitir.

Importante: No es idMedioPago. Si ese nombre aparece en algún comentario antiguo, es incorrecto.

[ { "codigo": "01", "nombre": "Efectivo", "permiteDescuento": true }, { "codigo": "02", "nombre": "Tarjeta", "permiteDescuento": true }, { "codigo": "03", "nombre": "Cheque", "permiteDescuento": true }, { "codigo": "04", "nombre": "Transferencia – depósito bancario", "permiteDescuento": true }, { "codigo": "05", "nombre": "Recaudado por terceros", "permiteDescuento": true }, { "codigo": "06", "nombre": "SINPE Móvil", "permiteDescuento": true }, { "codigo": "07", "nombre": "Plataforma digital", "permiteDescuento": true }, { "codigo": "99", "nombre": "Otros (requiere descripción)", "permiteDescuento": true } ]

Un medio de pago con permiteDescuento: false no admite montoDescuento en las líneas cuando se paga con él. Ver Descuentos.

GET /catalogos/condiciones-venta

El codigo es lo que se envía como condicionVenta al emitir. Los códigos 02 y 04 implican crédito y piden plazoCredito.

[ { "codigo": "01", "nombre": "Contado" }, { "codigo": "02", "nombre": "Crédito" }, { "codigo": "03", "nombre": "Consignación" }, { "codigo": "04", "nombre": "Apartado" }, { "codigo": "99", "nombre": "Otros" } ]

El tenant puede tener más condiciones configuradas que estas cinco, típicamente hasta diez. El endpoint devuelve el catálogo completo y real del tenant; lo de arriba es solo un extracto ilustrativo.

GET /catalogos/unidades-medida

El codigo es lo que se envía como unidadMedida al crear un producto o en una línea de factura de compra.

[ { "codigo": "Unid", "nombre": "Unidad", "reduceInventario": true }, { "codigo": "Kg", "nombre": "Kilogramo", "reduceInventario": true }, { "codigo": "Sp", "nombre": "Servicios Profesionales", "reduceInventario": false } ]

Con reduceInventario: false, vender ese producto no descuenta stock — típico de las unidades de servicio.

GET /catalogos/actividades

Actividades económicas dadas de alta ante Hacienda para este tenant, no el catálogo genérico de Hacienda. El codigo es lo que se envía como codigoActividad al emitir, cuando se requiere forzar una distinta de la principal. Si el tenant no tiene actividades configuradas, devuelve [], no un error.

[ { "codigo": "6209.0", "descripcion": "Otras actividades de la tecnología de información y servicio informáticos", "principal": true } ]

principal: true marca la actividad que se usa por defecto cuando no se envía un codigoActividad explícito. Ver Actividades.

GET /catalogos/puntos-venta

El id es lo que se envía como idPuntoVenta al emitir, cuando la integración maneja varios puntos de venta. Incluye los inactivos (activo: false); deben filtrarse del lado del integrador si no se desean ofrecer.

[ { "id": 1, "nombre": "WAFFLE MONKEY TAMARINDO", "activo": true }, { "id": 2, "nombre": "WAFFLE MONKEY FLAMINGO", "activo": true } ]

GET /catalogos/tipos-codigo

El codigo es lo que se envía como tipoCodigo al crear un producto. Son los cinco valores fijos de Hacienda: indican quién asignó el código del producto. Si se omite tipoCodigo al crear, se usa "01".

[ { "codigo": "01", "descripcion": "Código del producto del vendedor" }, { "codigo": "02", "descripcion": "Código del producto del comprador" }, { "codigo": "03", "descripcion": "Código del producto asignado por la industria" }, { "codigo": "04", "descripcion": "Código uso interno" }, { "codigo": "99", "descripcion": "Otros" } ]

GET /catalogos/marcas

El id es lo que se envía como idMarca al crear un producto. Las marcas son datos propios del tenant, por lo que no existe una lista fija que pueda incorporarse de forma estática en el código. Devuelve solo las marcas activas — que son justamente a las que un producto puede apuntar; por eso no lleva un campo activo que siempre indicaría true.

Si la marca requerida no está registrada, debe crearse con POST /api/v1/marcas.

[ { "id": 2, "nombre": "Waffle Monkey" } ]

Errores

Las siete rutas comparten el mismo comportamiento que el resto de la API.

401 Unauthorized

{ "error": "API key ausente, inválida o revocada." }

403 Forbidden

{ "error": "La API key no tiene el scope requerido para esta operación." }

429 Too Many Requests / 500 Internal Server Error

Ver Rate limiting y Códigos HTTP.