Alícuotas de IVA
Campo items[].taxType · en ARCA: Iva[].Id
| Código | Alícuota | Tratamiento | Suma a | En el desglose de IVA |
|---|---|---|---|---|
| 1 | — | No gravado | Importe no gravado | No |
| 2 | — | Exento | Importe exento | No |
| 3 | 0% | Gravado al 0% | Neto gravado | Sí, con IVA 0 |
| 4 | 10,5% | Gravado | Neto gravado | Sí |
| 5 | 21% | Gravado | Neto gravado | Sí |
| 6 | 27% | Gravado | Neto gravado | Sí |
| 8 | 5% | Gravado | Neto gravado | Sí |
| 9 | 2,5% | Gravado | Neto gravado | Sí |
El 21% (5) es la alícuota general y la que corresponde en la mayoría de los casos.
Cualquier código no listado se trata como no gravado.
items[].taxType es la alícuota de la línea. customer.taxType es la condición del receptor frente al IVA, y usa otra tabla con códigos que se solapan.
taxType: 5 en un ítem es 21%. taxType: 5 en el cliente es Consumidor Final. Son campos distintos: es el error más común al integrar, y el que las constantes del repositorio hacen imposible.
Qué mandar si sos monotributista
Nada: en los comprobantes C (11, 12, 13) los ítems no llevan taxType. Todas las líneas van al neto y no se informa IVA, así que no hay alícuota que declarar.
Si tu sistema lo manda igual —porque comparte el armado del ítem con las facturas A y B—, se acepta y se ignora.
Cómo se calcula
Por cada ítem, con el importe de la línea ya calculado (cantidad × precio − descuento):
- Gravado (
3,4,5,6,8,9) → la base suma al neto gravado y agrega su línea al desglose de IVA. Si el precio trae el IVA adentro (lo normal, verpriceIncludesVat), la base es el importe sin ese IVA; si no, es el importe tal cual. - Exento (
2) → el importe suma al importe exento. No genera IVA ni entra en el desglose. - No gravado (
1u otro) → el importe suma al importe no gravado. No genera IVA ni entra en el desglose.
El código 3 aporta base imponible al neto gravado y aparece en el desglose con un IVA de 0. El código 2 no: el importe exento es otro renglón del comprobante y otra línea de tu posición de IVA.
Las dos alícuotas dan cero de impuesto, pero no son intercambiables. Si tu operación está gravada a tasa cero, el código es 3.
Detalle completo: cálculo de totales.
En JavaScript, PHP y Python
ALICUOTA_IVA.VEINTIUNO // 5 → 21%
ALICUOTA_IVA.DIEZ_CINCO // 4 → 10,5%
ALICUOTA_IVA.CERO // 3 → 0%
ALICUOTA_IVA.EXENTO // 2 → exento
ALICUOTA_IVA.NO_GRAVADO // 1
Constantes para los tres lenguajes en el repositorio de ejemplos.