Saltar al contenido
VeloraBlog
← Todos los artículos

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 + ImpTrib

Si 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; // 12100

Para Factura C (Monotributo) los componentes ImpTotConc, ImpOpEx e ImpIVA van en 0, así que la fórmula se reduce a:

ImpTotal = ImpNeto + ImpTrib

Un caso aparte: para comprobantes tipo 49 (Bienes Usados) emitidos por Monotributistas, el 10048 usa otra fórmula — ImpTotal = ImpTotConc + ImpTrib.

Checklist:

  1. ImpTotal === ImpTotConc + ImpOpEx + ImpNeto + ImpIVA + ImpTrib (± 0,01).
  2. Aritmética en centavos enteros, redondeo único → evita el drift que dispara 10048.
  3. Factura C: ImpTotConc = ImpOpEx = ImpIVA = 0, ImpTotal = ImpNeto + ImpTrib.