FacturaApiLineaDto
Representa una línea de detalle del comprobante. Cada request debe incluir al menos una línea.
Campos
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
idProducto | number | Uno de los dos | ID del producto o servicio en el catálogo del tenant. |
codigoProducto | string | Uno de los dos | Có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. |
cantidad | number | Sí | Cantidad mayor que 0. Soporta hasta 3 decimales. |
precioUnitario | number | Opcional | Precio unitario en la moneda del documento. Si se omite, se usa el del producto. |
montoDescuento | number | Opcional | Monto de descuento en la moneda del documento. Default 0. |
naturalezaDescuento | string | Opcional | Texto descriptivo del descuento (aparece en el PDF). |
montoExoneracion | number | Opcional | Monto 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
idProductoocodigoProducto. 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(o400 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.
montoDescuentose resta del subtotal de la línea (cantidad × precioUnitario).montoExoneracionsolo 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.
Línea por código de catálogo
{ "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"
}