IndFact - indicador de facturación por línea
Tabla verificada en el código del gateway: es la misma que devuelveGET /v1/taxes, así que se puede consultar en vivo en lugar de copiarla. La
columna de tasa es el valor que el gateway usa para calcular, no una lectura del
nombre.
Sólo dos indicadores generan IVA: el 2 y el 3. Todos los demás valen 0 en la
tabla del gateway, incluido el 4, “Otra tasa”, que por su nombre parece que
dependiera de algo y no depende: el gateway le calcula 0%.
Que la tasa sea 0 no significa que el indicador sea intercambiable.
IndFact
también le dice a DGI por qué esa línea no lleva IVA, y ese motivo es parte
del comprobante. Elegir el número por la tasa que produce, en vez de por lo que
la línea es, da un comprobante que cierra en pesos y miente en el motivo.
Para el caso común de una venta gravada a tasa básica (22%): IndFact: 3.
El gateway acumula los netos e IVA por tasa en los tags DGI correspondientes
(MntNetoIVATasaBasica / MntIVATasaBasica, etc.).
Ejemplo real (verificado en local)
BloqueTotales de un eFactura real del stack local: una línea gravada a tasa
básica, neto 2500 → IVA 550 → total 3050.
MntIVATasaBasica (550) = MntNetoIVATasaBasica (2500) × 22%. Confirma el
mapeo IndFact 3 → 22% con números reales.
Redondeo
Verificado en código. El gateway no re-redondea las líneas: los importes de línea viajan tal como los manda el integrador. El único redondeo que aplica es sobre los totales en UYU al enviar a DGI, a 2 decimales. Consecuencia práctica para el integrador:- Redondeá vos las líneas a 2 decimales antes de enviar; el gateway no lo hace por vos a nivel línea.
- Los totales se formatean a 2 decimales hacia DGI.
- El ejemplo real de arriba (neto 2500, IVA 550, total 3050) ya está en enteros y cierra exacto; con decimales, la coherencia línea-vs-total es responsabilidad del emisor.