Skip to Content
v1.5Documentación oficial de la API LX CloudPos · estable en producción
V1Modelo De DatosFacturaApiLineaDto

FacturaApiLineaDto

Representa una línea de detalle del comprobante. Cada request debe incluir al menos una línea.

Campos

CampoTipoRequeridoDescripción
idProductonumberUno de los dosID del producto o servicio en el catálogo del tenant.
codigoProductostringUno de los dosCódigo (SKU) del producto en el catálogo del tenant. Se utiliza cuando el sistema del integrador conoce su propio código y no los identificadores internos de LX CloudPos.
cantidadnumberCantidad mayor que 0. Soporta hasta 3 decimales.
precioUnitarionumberOpcionalPrecio unitario en la moneda del documento. Si se omite, se usa el del producto.
montoDescuentonumberOpcionalMonto de descuento en la moneda del documento. Default 0.
naturalezaDescuentostringOpcionalTexto descriptivo del descuento (aparece en el PDF).
montoExoneracionnumberOpcionalMonto exonerado, si el cliente tiene exoneración aplicada.
interface FacturaApiLineaDto { /** ID del producto/servicio en el catálogo del tenant. Alternativa: codigoProducto. Debe venir uno de los dos. */ idProducto?: number; /** Código (SKU) del producto en el catálogo del tenant. Se usa cuando no mandás idProducto: tu sistema conoce su propio código, no nuestros ids. */ codigoProducto?: string | null; /** OBLIGATORIO. Cantidad > 0. Soporta hasta 3 decimales. */ cantidad: number; /** Opcional. Precio unitario en moneda del documento. Si se omite, usa el del producto. */ precioUnitario?: number | null; /** Monto de descuento en moneda del documento. Default 0. */ montoDescuento: number; /** Texto descriptivo del descuento (visible en PDF). */ naturalezaDescuento?: string | null; /** Monto exonerado (si el cliente tiene exoneración aplicada). */ montoExoneracion?: number | null; }

Reglas

  • Cada línea debe traer idProducto o codigoProducto. Si no viene ninguno, 400.
  • El producto debe existir en el catálogo del tenant. En caso contrario se devuelve 400 Producto X no encontrado (o 400 Producto con código 'X' no encontrado). Todavía no es posible facturar una línea libre que no esté en el catálogo — la funcionalidad se encuentra en el roadmap.
  • El IVA se aplica automáticamente según la configuración del producto.
  • montoDescuento se resta del subtotal de la línea (cantidad × precioUnitario).
  • montoExoneracion solo aplica si el cliente tiene una exoneración registrada en el POS.

Ejemplos

Línea simple

{ "idProducto": 100, "cantidad": 2 }

Utiliza el precio del producto registrado en el catálogo, sin descuento y sin exoneración.

{ "codigoProducto": "WM-0001", "cantidad": 2 }

Equivalente a la anterior, resolviendo el producto por su SKU en vez de por el id interno.

Línea con precio override

{ "idProducto": 100, "cantidad": 2, "precioUnitario": 1500.00 }

Fuerza un precio unitario de 1500 (útil cuando el producto tiene precio variable, como los servicios profesionales).

Línea con descuento

{ "idProducto": 100, "cantidad": 5, "montoDescuento": 1000.00, "naturalezaDescuento": "Descuento por volumen >= 5 unidades" }