Error CFDI40183 al timbrar: el TipoFactor de la retención no pertenece al catálogo c_TipoFactor
El error CFDI40183 aparece cuando el atributo TipoFactor de un cfdi:Retencion dentro de un concepto trae un valor que no existe en el catálogo c_TipoFactor. Es el mismo catálogo de los traslados, pero en una retención se usan solo Tasa o Cuota. Esta ficha se enfoca en la captura de la retención: qué escribir, qué suele escribirse por error y cómo dejar el XML listo para volver a timbrar.
Resumen rápido del error
- Código: CFDI40183
- Campo: TipoFactor
- Nodo del XML:
cfdi:Comprobante/cfdi:Conceptos/cfdi:Concepto/cfdi:Impuestos/cfdi:Retenciones/cfdi:Retencion - Regla del SAT (Anexo 20): Este atributo, debe contener un valor del catálogo c_TipoFactor.
- Mensaje de rechazo: El campo TipoFactor, no contiene un valor del catálogo c_TipoFactor.
- Cuándo aparece: al timbrar, antes de que se genere el UUID.
¿Qué significa el error CFDI40183?
Una retención es un impuesto que quien factura retiene al cobrar, y por eso aparece en el nodo cfdi:Retenciones del concepto con su base, su impuesto, su factor, su tasa y su importe. En ese nodo el factor se expresa con una palabra del catálogo c_TipoFactor: lo normal es Tasa, porque casi todas las retenciones son porcentajes.
La regla CFDI40183 solo verifica que la palabra exista en el catálogo. Una regla distinta, CFDI40184, impide que en una retención el factor sea Exento, aunque Exento sí exista en el catálogo; esa diferencia se explica en su propia ficha.
Dónde se valida: el nodo Retención del concepto y TipoFactor
La regla se evalúa por cada cfdi:Retencion dentro de cfdi:Concepto/cfdi:Impuestos/cfdi:Retenciones. Si el concepto no lleva retenciones, no se evalúa. Un comprobante con varios conceptos retenidos revisa cada renglón.
- CFDI40183: el valor debe existir en el catálogo (esta ficha).
- CFDI40184: el valor no puede ser
Exentoen una retención. - CFDI40185: la tasa fija debe coincidir con el catálogo
c_TasaOCuota, el impuesto y el factor. - Para los traslados, la misma validación de catálogo está en CFDI40176.
Causas más comunes del error CFDI40183
- Se escribió la palabra “Retención”. El campo de factor se llenó con el nombre del nodo en lugar de
TasaoCuota. - Se capturó el porcentaje. Un valor como
10%o0.106667enTipoFactor, cuando la cifra va enTasaOCuota. - Se copió el valor de la clave del impuesto.
001oISRen el campo de factor, que no es el campoImpuesto. - La plantilla de retenciones trae un valor propio. Una integración con una lista interna de tipos de retención envía una etiqueta que no es del catálogo.
- Campo vacío. La retención se generó sin factor porque el producto no tenía configurada la retención completa.
Cómo corregir el error CFDI40183 paso a paso
- Localiza la retención con error. Revisa cada
cfdi:Retenciony anota elTipoFactor. - Decide el factor. Para una retención porcentual,
Tasa; para un monto fijo por unidad,Cuota. - Escríbelo con la mayúscula inicial.
Tasa, sin espacios, sin porcentajes y sin otra palabra. - Revisa los atributos hermanos. El porcentaje va en
TasaOCuotay el monto enImporte. - Corrige la configuración de tu producto o integración. Para que la retención se guarde con el factor correcto.
- Vuelve a timbrar. Con el factor válido el PAC continúa con las demás validaciones.
Ejemplo en el XML: incorrecto y correcto
Ejemplo de una retención de ISR en un concepto; las cifras son ilustrativas:
Incorrecto:
<cfdi:Retencion Base="1000.00" Impuesto="001" TipoFactor="Retención" TasaOCuota="0.100000" Importe="100.00"/>
Correcto:
<cfdi:Retencion Base="1000.00" Impuesto="001" TipoFactor="Tasa" TasaOCuota="0.100000" Importe="100.00"/>
En el ejemplo incorrecto, el factor lleva el nombre del nodo. Las cifras y la tasa son ilustrativas: la tasa de cada retención debe confirmarla tu contador.
Cómo preparar un catálogo de retenciones con el factor correcto
Si en tu operación hay retenciones frecuentes, define cada una una sola vez en tu sistema con sus datos: clave del impuesto retenido, factor, tasa y, si aplica, la regla para calcular el importe. Después úsala en los productos y servicios que la requieran. Así el factor siempre viaja como Tasa o Cuota y no depende de una captura manual. Es útil probar con un comprobante de ejemplo antes de lotes grandes y revisar que cada retención tenga base positiva, un factor válido y un importe coherente con la tasa. Para saber qué retenciones debes aplicar a cada tipo de operación, consulta con tu contador.
Cómo evitar este error con Soicont
Soicont es una plataforma de facturación electrónica CFDI 4.0 con PAC autorizado. Antes de enviar el comprobante a timbrar, valida los datos del receptor, los catálogos del SAT y los cálculos de impuestos, y si algo no cuadra te muestra el error con una explicación clara para que lo corrijas y vuelvas a emitir. Además, tus folios no caducan y puedes facturar para varias empresas (multi-RFC) desde una sola cuenta.
Conoce la facturación electrónica CFDI 4.0, la plataforma y los paquetes de folios.
Errores relacionados
- Error CFDI40184 (TipoFactor): el factor de una retención no puede ser Exento.
- Error CFDI40176 (TipoFactor): la misma validación de catálogo en los traslados.
- Error CFDI40185 (TasaOCuota): la tasa de la retención debe coincidir con el catálogo.
- Error CFDI40181 (Base): la base de la retención debe ser mayor que cero.
- Error CFDI40182 (Impuesto): la clave del impuesto retenido debe pertenecer al catálogo.
Consulta también el Centro de Soluciones con todos los errores del SAT.
Preguntas frecuentes
¿Qué valores acepta TipoFactor en una retención?
Existen Tasa, Cuota y Exento en el catálogo, pero en una retención se usan Tasa o Cuota; Exento se rechaza con otra regla.
¿Qué escribo si mi retención es un porcentaje?
Tasa en TipoFactor y el porcentaje, por ejemplo 0.100000, en TasaOCuota.
¿En qué se diferencia de CFDI40176?
CFDI40176 valida el factor en los traslados y CFDI40183 en las retenciones; son nodos distintos del concepto.
¿Y de CFDI40184?
CFDI40183 se dispara cuando el valor no existe en el catálogo; CFDI40184 cuando el valor existe pero es Exento.
¿Se genera UUID con CFDI40183?
No. El comprobante se rechaza antes del timbrado y se corrige antes de volver a emitir.
¿Todavía no se resuelve?
Si después de revisar estos puntos el error continúa, escríbenos desde la página de contacto con el código del error y el XML que intentaste timbrar (nunca envíes contraseñas ni la llave privada del CSD). Si aún no tienes cuenta, crea la tuya y empieza a facturar con validaciones previas.