13 de junio de 2026
Error 10048 ARCA: "el Importe Total no coincide con la suma" (ImpTotal) en WSFEv1
El error 10048 de WSFEv1 salta cuando ImpTotal no es igual a la suma de sus componentes. El manual lo define: ImpTotal = neto no gravado (ImpTotConc) + exento (ImpOpEx) + neto gravado (ImpNeto) + IVA (ImpIVA) + tributos (ImpTrib). Hay un margen de tolerancia chico. Para Factura C se simplifica a ImpTotal = ImpNeto + ImpTrib.
Qué exige el 10048: la suma tiene que cerrar
El error 10048 es una validación excluyente sobre la composición del total. El manual define el campo ImpTotal así, textual:
«Importe total del comprobante. Debe ser igual a Importe neto no gravado + Importe exento + Importe neto gravado + todos los campos de IVA al XX% + Importe de tributos».
En campos del payload:
ImpTotal = ImpTotConc + ImpOpEx + ImpNeto + ImpIVA + ImpTribSi tu ImpTotal no es exactamente esa suma, FECAESolicitar devuelve Resultado="R" con el código 10048 y no autoriza el comprobante.
El margen de error: por qué te pega el redondeo
El 10048 no exige una igualdad binaria perfecta — tiene una tolerancia mínima. Textual del manual:
«Margen de error: Error relativo porcentual deberá ser <= 0.01% o el error absoluto <= 0.01».
Es decir: la diferencia entre tu ImpTotal y la suma calculada tiene que ser ≤ 0,01 (un centavo) en valor absoluto, o ≤ 0,01% relativo. Por eso el 10048 suele aparecer por drift de punto flotante: calculás el IVA con floats, arrastrás fracciones de centavo, y la suma se va más de un centavo. La solución es hacer la aritmética en centavos enteros (integer-cent) y redondear una sola vez, no acumular floats.
El mismo control de composición existe como observación NO excluyente bajo el código 724: cuando llega en el array Obs con Resultado="A", el comprobante se autoriza pero AFIP observa la diferencia. El 10048 es la versión excluyente que directamente rechaza.
Ejemplo y el caso Factura C
// La suma tiene que cerrar (acá Factura A, IVA 21%)
const ImpTotConc = 0; // neto no gravado
const ImpOpEx = 0; // exento
const ImpNeto = 10000; // neto gravado
const ImpIVA = 2100; // IVA 21%
const ImpTrib = 0; // tributos
const ImpTotal = ImpTotConc + ImpOpEx + ImpNeto + ImpIVA + ImpTrib; // 12100Para Factura C (Monotributo) los componentes ImpTotConc, ImpOpEx e ImpIVA van en 0, así que la fórmula se reduce a:
ImpTotal = ImpNeto + ImpTribUn caso aparte: para comprobantes tipo 49 (Bienes Usados) emitidos por Monotributistas, el 10048 usa otra fórmula — ImpTotal = ImpTotConc + ImpTrib.
Checklist:
ImpTotal === ImpTotConc + ImpOpEx + ImpNeto + ImpIVA + ImpTrib(± 0,01).- Aritmética en centavos enteros, redondeo único → evita el drift que dispara 10048.
- Factura C: ImpTotConc = ImpOpEx = ImpIVA = 0,
ImpTotal = ImpNeto + ImpTrib.