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 | Sí | ID del producto o servicio en el catálogo del tenant. |
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 {
/** OBLIGATORIO. ID del producto/servicio en el catálogo del tenant. */
idProducto: number;
/** 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
- El producto debe existir en el catálogo del tenant. Si no, recibís
400 Producto X no encontrado. - 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 }Usa precio del producto del catálogo, sin descuento, sin exoneración.
Línea con precio override
{ "idProducto": 100, "cantidad": 2, "precioUnitario": 1500.00 }Forzá un precio unitario de 1500 (útil cuando el producto tiene precio variable, como servicios profesionales).
Línea con descuento
{
"idProducto": 100,
"cantidad": 5,
"montoDescuento": 1000.00,
"naturalezaDescuento": "Descuento por volumen >= 5 unidades"
}