Alícuotas de IVA
Campo items[].taxType · en ARCA: Iva[].Id
| Código | Alícuota | Tratamiento | Va a |
|---|---|---|---|
| 1 | — | No gravado | ImpTotConc |
| 2 | — | Exento | ImpOpEx |
| 3 | 0% | Exento | ImpOpEx |
| 4 | 10,5% | Gravado | ImpNeto + IVA |
| 5 | 21% | Gravado | ImpNeto + IVA |
| 6 | 27% | Gravado | ImpNeto + IVA |
| 8 | 5% | Gravado | ImpNeto + IVA |
| 9 | 2,5% | Gravado | ImpNeto + IVA |
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 e incrementa ImpTotConc.
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 neto ya calculado (cantidad × precio − descuento):
- Gravado (
4,5,6,8,9) → el neto va aImpNetoy se calculaIVA = neto × alícuota. - Exento (
2,3) → el neto va aImpOpEx. No genera IVA. - No gravado (
1u otro) → el neto va aImpTotConc. No genera IVA.
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.