Ítems e IVA
Cómo estructurar los ítems de un documento — descripción, cantidad, precio, afectación tributaria y tasas de IVA en Paraguay.
Cada documento electrónico tiene un arreglo de ítems: los productos o servicios que se están facturando. Sifende calcula los totales, el IVA por tasa y los subtotales a partir de los ítems que envíes.
Anatomía de un ítem
{
"codigo": "PROD-001",
"descripcion": "Café molido tostado 500g",
"unidadMedida": "UNI",
"cantidad": 2,
"precioUnitario": 25000,
"afectacionTributaria": "GRAVADO",
"tasaIVA": 10
}| Campo | Descripción |
|---|---|
codigo | Código interno del producto (libre, para tu sistema) |
descripcion | Nombre legible del producto/servicio que aparece en el KuDE |
unidadMedida | Unidad — UNI, KG, LITRO, HORA, etc. (ver Enumeraciones) |
cantidad | Cantidad numérica (acepta decimales) |
precioUnitario | Precio por unidad con IVA incluido (en PYG, entero) |
afectacionTributaria | Cómo aplica el IVA (ver abajo) |
tasaIVA | Tasa de IVA — 10, 5 o 0 |
Tasas de IVA en Paraguay
El sistema tributario paraguayo tiene tres tasas de IVA:
| Tasa | Aplica a |
|---|---|
| 10% (general) | La mayoría de productos y servicios: ropa, electrónicos, software, servicios profesionales, combustibles |
| 5% (reducida) | Alimentos de la canasta básica, productos farmacéuticos, productos agropecuarios, libros |
| 0% (exento) | Exportaciones, servicios financieros, alquiler de inmuebles para vivienda, salud, educación |
Afectación tributaria
El campo afectacionTributaria indica cómo se trata fiscalmente cada ítem. Combinalo con tasaIVA para indicar la tasa aplicable:
| Valor | tasaIVA | Descripción |
|---|---|---|
GRAVADO | 10 o 5 | Operación gravada con IVA. La tasa se indica en tasaIVA |
EXENTO | 0 | Operación exenta (sin IVA) |
EXONERADO | 0 | Operación exonerada por ley específica |
GRAVADO_PARCIAL | 10 o 5 | Solo una porción de la operación está gravada. La porción se indica en propIVA |
En GRAVADO_PARCIAL el campo propIVA es obligatorio y va entre 0 y 100 sin incluirlos: propIVA: 30 grava el 30% del ítem y deja el 70% como exento. Las demás afectaciones no lo necesitan — Sifende deriva la proporción de afectacionTributaria.
Un solo documento puede mezclar ítems con afectaciones distintas. Por ejemplo, una farmacia que vende medicamentos (GRAVADO con tasaIVA: 5) y cosméticos (GRAVADO con tasaIVA: 10) en la misma factura.
Cálculo de IVA
En Paraguay, el precioUnitario siempre incluye el IVA. No se agrega IVA encima del precio: el IVA ya está adentro. El cálculo del componente de IVA dentro de un precio total es:
IVA = precio × tasa / (100 + tasa)
Base = precio × 100 / (100 + tasa)Ejemplo — IVA al 10%
Producto a 25000 PYG con IVA al 10% (afectacionTributaria: "GRAVADO", tasaIVA: 10):
IVA = 25000 × 10 / 110 = 2272.73 → 2273 PYG
Base = 25000 × 100 / 110 = 22727.27 → 22727 PYG
Verificación: 22727 + 2273 = 25000 ✓Ejemplo — IVA al 5%
Producto a 21000 PYG con IVA al 5% (afectacionTributaria: "GRAVADO", tasaIVA: 5):
IVA = 21000 × 5 / 105 = 1000 PYG
Base = 21000 × 100 / 105 = 20000 PYG
Verificación: 20000 + 1000 = 21000 ✓No tenés que hacer estos cálculos a mano. Sifende los aplica solo a partir de precioUnitario, cantidad, afectacionTributaria y tasaIVA. La fórmula está acá para que entiendas el modelo.
Reglas de redondeo en PYG
El guaraní no tiene decimales. Los totales se redondean a entero usando "half-up" (medio hacia arriba):
| Valor calculado | Valor en factura |
|---|---|
2272.73 | 2273 |
2272.49 | 2272 |
2272.50 | 2273 |
Si tu sistema interno trabaja con decimales (por ejemplo, tu ERP guarda precio = 22727.27), redondeá antes de enviar a Sifende. Mandar precioUnitario: 22727.27 con monedaOperacion: "PYG" te va a dar error de validación.
Cálculo de totales
Sifende deriva estos totales del arreglo de ítems:
subtotal_item = cantidad × precioUnitario
total_documento = Σ subtotal_item (todos los ítems)
total_iva_10 = Σ iva calculado de ítems con afectacionTributaria=GRAVADO y tasaIVA=10
total_iva_5 = Σ iva calculado de ítems con afectacionTributaria=GRAVADO y tasaIVA=5
total_iva = total_iva_10 + total_iva_5
total_gravado_10 = Σ base de ítems con afectacionTributaria=GRAVADO y tasaIVA=10
total_gravado_5 = Σ base de ítems con afectacionTributaria=GRAVADO y tasaIVA=5
total_exento = Σ subtotales de ítems con afectacionTributaria=EXENTO o EXONERADOEstos totales aparecen en el bloque F (Totales) del DE y se imprimen en el KuDE.
Descuentos
Cada ítem puede informar descuentoParticular como importe por unidad. El documento puede informar una sola vez descuentoGlobalPorcentaje; Sifende aplica ese porcentaje al precio unitario de todos los ítems, aunque también tengan descuento particular. No envíes el importe global calculado por ítem: Sifende deriva los campos técnicos del XML y multiplica ambos descuentos unitarios por la cantidad para obtener los totales.
La suma de ambos descuentos no puede superar el precio unitario. En PYG, el importe global derivado se redondea a entero con half-up; en moneda extranjera se calcula con hasta 8 decimales.
{
"descuentoGlobalPorcentaje": 10,
"items": [
{
"codigo": "A",
"cantidad": 2,
"precioUnitario": 48000,
"descuentoParticular": 6000
},
{
"codigo": "B",
"cantidad": 1,
"precioUnitario": 20000
}
]
}En este ejemplo el descuento particular total es G. 12.000, el global total es G. 11.600 y el neto de ambos ítems es G. 92.400. Los demás campos obligatorios del documento se omitieron para enfocar el cálculo.
En el KuDE, la columna «Desc.» de cada fila muestra la suma de ambos descuentos multiplicada por la cantidad, y la columna «Total» es el neto del ítem: P. Unitario x Cantidad - Desc.. El bloque de totales agrega una fila «Descuento global (X%)» cuando se informó descuentoGlobalPorcentaje y otra «Total descuentos» con la suma de los dos conceptos. Sin descuentos, ninguna de esas filas se imprime.
Próximos pasos
- Modelo: Item: schema completo.
- Enumeraciones: unidades de medida y afectaciones.
- Convenciones — Moneda PYG: reglas de redondeo.