Error CFDI40118 al timbrar: cuando el TipoCambio está fuera de los límites establecidos, debe existir el campo Confirmacion
El error CFDI40118 aparece cuando el TipoCambio de un comprobante en moneda extranjera queda fuera del porcentaje que el catálogo c_Moneda admite para esa moneda y no existe el atributo Confirmacion. Si facturas en dólares con un tipo de cambio de 17.1234 y el catálogo espera un valor cercano al vigente, el PAC pide una clave de ratificación. Aquí verás cómo revisar el tipo de cambio, cuándo conviene corregirlo y cuándo solicitar la clave.
Resumen rápido del error
- Código: CFDI40118
- Campo: TipoCambio
- Nodo del XML:
Comprobante - Regla del SAT (Anexo 20): Si el valor de este atributo está fuera del porcentaje aplicable a la moneda tomado del catálogo c_Moneda, el emisor debe obtener del PAC que vaya a timbrar el CFDI, de manera no automática, una clave de confirmación para ratificar que el valor es correcto e integrar dicha clave en el atributo Confirmacion.
- Mensaje de rechazo: Cuando el valor del campo TipoCambio se encuentre fuera de los límites establecidos, debe existir el campo Confirmacion.
- Cuándo aparece: al timbrar, antes de que se genere el UUID.
¿Qué significa el error CFDI40118?
Para monedas distintas de MXN, el catálogo c_Moneda define un porcentaje de variación aceptable respecto del tipo de cambio de referencia. Si el valor que envías queda fuera de ese margen, el comprobante exige la clave de confirmación del PAC antes de timbrarse.
En la práctica, la mayoría de los casos son errores del dato, no operaciones atípicas: un tipo de cambio de otra fecha, uno con decimales de más o la tasa de venta de un banco. Primero revisa el valor y la fecha, y solo si es correcto, solicita la clave.
Dónde se valida: el nodo Tipo de cambio fuera de rango
La validación se aplica al atributo TipoCambio del nodo cfdi:Comprobante, con apoyo de Moneda y del catálogo c_Moneda, y se resuelve con Confirmacion.
- CFDI40114: con
MXN, elTipoCambiopuede omitirse o debe ser1. - CFDI40115: el
TipoCambioes requerido con monedas distintas deMXNyXXX. - CFDI40116: no se registra con
XXX. - CFDI40117: el
TipoCambiodebe cumplir el patrón numérico. - CFDI40118: fuera del porcentaje, debe existir
Confirmacion(esta ficha).
Causas más comunes del error CFDI40118
- El tipo de cambio es de otra fecha. Se usó un valor viejo o de otro día.
- Se usó otra fuente. Un valor bancario distinto al de referencia.
- El valor tiene decimales de más. Se capturó otro número de decimales.
- La moneda es la equivocada. Se eligió una moneda que no corresponde al cliente.
- El valor está invertido. Se escribió el recíproco, por ejemplo
0.0584en vez de17.1234. - La operación realmente se pactó fuera de rango. Hay un tipo de cambio acordado que requiere ratificación.
Cómo corregir el error CFDI40118 paso a paso
- Confirma la moneda. Que sea la de la operación.
- Revisa la fecha y la fuente. Usa el tipo de cambio que aplica a tu operación.
- Corrige el valor si hay error. Escríbelo con el patrón de decimales correcto.
- Si es correcto, solicita la clave. Pídela al PAC, que la emite de manera no automática.
- Integra la clave. En el atributo
Confirmacion, para un solo comprobante. - Se vuelve a timbrar. Con los datos coherentes, el PAC pasa a las demás validaciones.
Ejemplo en el XML: incorrecto y correcto
Ejemplo de un comprobante en dólares con un tipo de cambio fuera de rango y sin clave, y del mismo con el valor corregido; los datos son ficticios:
Incorrecto:
<cfdi:Comprobante ... Moneda="USD" TipoCambio="0.0584" ... > <!-- valor invertido; falta Confirmacion -->
Correcto:
<cfdi:Comprobante ... Moneda="USD" TipoCambio="17.1234" ... > <!-- valor corregido, sin Confirmacion -->
Los valores son ficticios y no representan el tipo de cambio vigente. Si el valor es correcto pero atípico, se necesita la clave de confirmación.
Facturar en otra moneda sin sorpresas
Los comprobantes en moneda extranjera necesitan un proceso claro para el tipo de cambio: define qué fuente usas, en qué fecha lo tomas y cuántos decimales conservas. Si tu sistema lo trae de forma automática, revisa que no se quede con un valor de días anteriores. Prueba una factura con cada moneda que manejes y confirma que el tipo de cambio entra por el catálogo, no por captura manual. Si pactaste con tu cliente un tipo de cambio fuera de rango, solicita la clave con anticipación. Para repasar los datos del comprobante, consulta la guía de facturación electrónica CFDI 4.0.
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 CFDI40117 (TipoCambio): el tipo de cambio debe cumplir el patrón numérico.
- Error CFDI40116 (TipoCambio): el tipo de cambio no se registra con la moneda XXX.
- Error CFDI40127 (Confirmacion): el atributo no debe existir si Total y TipoCambio están dentro del rango.
- Error CFDI40128 (Confirmacion): el PAC verifica que el emisor haya solicitado la clave.
- Error CFDI40120 (Total): la misma clave, pero cuando el total supera el límite.
Consulta también el Centro de Soluciones con todos los errores del SAT.
Preguntas frecuentes
¿Qué significa el error 40118?
Que el tipo de cambio queda fuera del porcentaje del catálogo y falta la clave.
¿Qué moneda aplica?
Cualquiera distinta de MXN y XXX.
¿Cómo obtengo la clave?
La emite el PAC, de manera no automática.
¿Puedo usar la clave en varias facturas?
No. Es de un solo comprobante.
¿Primero corrijo el valor?
Sí, en la mayoría de los casos es un error del dato.
¿Se genera UUID con este error?
No. El comprobante se rechaza antes del timbrado.
¿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.