Error CFDI40115: falta TipoCambio con moneda extranjera
Folios sin caducidad · Multi-empresa · Timbrado CFDI 4.0 · Ver paquetes
Error / Problema Actualizado 28/10/2026

Error CFDI40115 al timbrar: con moneda extranjera el atributo TipoCambio es requerido

El error CFDI40115 aparece cuando el comprobante declara una moneda distinta de MXN y de XXX, por ejemplo USD, y no incluye el atributo TipoCambio. En una factura en moneda extranjera el SAT necesita saber a cuántos pesos equivale cada unidad. Esta guía se centra en el caso contrario al de pesos: qué tipo de cambio escribir, de dónde tomarlo y cómo evitar que se pierda al guardar la factura.

Resumen rápido del error

  • Código: CFDI40115
  • Campo: TipoCambio
  • Nodo del XML: cfdi:Comprobante
  • Regla del SAT (Anexo 20): Este atributo es requerido cuando el atributo Moneda tenga un valor distinto de MXN y XXX.
  • Mensaje de rechazo: El campo TipoCambio se debe registrar cuando el campo Moneda tiene un valor distinto de MXN y XXX.
  • Cuándo aparece: al timbrar, antes de que se genere el UUID.

¿Qué significa el error CFDI40115?

Cuando facturas en dólares u otra moneda extranjera, el TipoCambio expresa cuántos pesos mexicanos equivalen a una unidad de esa moneda. Es el dato que permite al SAT convertir los importes del comprobante. La regla CFDI40115 lo vuelve obligatorio siempre que la moneda no sea el peso (MXN) ni el código para operaciones sin moneda (XXX).

La regla tiene dos hermanas: CFDI40114, que acepta omitirlo o registrar 1 con pesos, y CFDI40116, que lo prohíbe con XXX. Si el tipo de cambio existe pero es demasiado distinto del habitual para la moneda, la regla CFDI40118 puede pedir una clave de confirmación.

Dónde se valida: el nodo Comprobante y TipoCambio

La validación se aplica al nodo cfdi:Comprobante y se evalúa cuando Moneda no es MXN ni XXX. El atributo debe existir, y su formato se revisa con otra regla.

  • CFDI40114: con MXN, el TipoCambio se omite o vale 1.
  • CFDI40115: con una moneda distinta de MXN y XXX, el TipoCambio es requerido (esta ficha).
  • CFDI40116: con XXX, el TipoCambio no se registra.
  • CFDI40117: el valor debe cumplir el patrón: hasta 18 enteros y 6 decimales.
  • CFDI40118: fuera del rango aplicable a la moneda, se requiere confirmación.

Causas más comunes del error CFDI40115

  • La plantilla solo agrega el tipo de cambio si lo captura el usuario. El campo quedó vacío y el sistema no consultó la cotización.
  • Se cambió la moneda a dólares sin completar el tipo de cambio. Se pasó de MXN a USD y el comprobante no tenía dónde guardar la cotización.
  • La integración omite el campo. El sistema externo envía la moneda pero no el tipo de cambio.
  • Se capturó en otro campo. El valor quedó en observaciones o en un campo interno que no se exporta al XML.
  • Se borró al guardar. Una validación del sistema eliminó el valor por considerarlo igual a cero.
  • Se confundió con el importe en pesos. Se capturó el equivalente en pesos pero no la tasa de conversión.

Cómo corregir el error CFDI40115 paso a paso

  1. Confirma la moneda. Si la factura es en una moneda extranjera, necesitas el tipo de cambio.
  2. Consulta la cotización. Obtén el tipo de cambio que corresponde a la fecha de la operación.
  3. Regístralo en el encabezado. Escríbelo en TipoCambio, con hasta seis decimales.
  4. Revisa el formato. Que cumpla el patrón de CFDI40117, sin comas ni símbolos.
  5. Revisa el rango. Si se aleja mucho de la cotización habitual, puede requerirse confirmación (CFDI40118).
  6. Vuelve a timbrar. Con el tipo de cambio, el PAC pasa a las demás validaciones.

Ejemplo en el XML: incorrecto y correcto

Ejemplo del encabezado de una factura en dólares sin tipo de cambio; los importes y la cotización son ficticios:

Incorrecto:

<cfdi:Comprobante Moneda="USD" SubTotal="100.00" Total="116.00" ... >

Correcto:

<cfdi:Comprobante Moneda="USD" TipoCambio="17.250000" SubTotal="100.00" Total="116.00" ... >

Los importes y la cotización son ficticios. El tipo de cambio real debe tomarse de la fuente que indique tu contador y respetar el patrón de seis decimales como máximo.

Cómo evitar que se pierda el tipo de cambio

Para que el atributo no se olvide, conviene que el sistema lo pida en cuanto el usuario elige una moneda extranjera y que no permita emitir mientras esté vacío. Algunas empresas fijan el tipo de cambio al momento de la venta; otras lo actualizan a diario. Decidas lo que decidas, anótalo en tus procedimientos para que todos usen el mismo criterio. Si facturas en varias monedas, guarda también la moneda predeterminada de cada cliente, de modo que el comprobante se cree con ambos datos juntos. Para ver la estructura general 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

Consulta también el Centro de Soluciones con todos los errores del SAT.

Preguntas frecuentes

¿Qué significa el error 40115?

Que la moneda es extranjera y falta el TipoCambio.

¿Qué valor debo escribir?

Los pesos que equivalen a una unidad de la moneda, con hasta seis decimales.

¿De dónde tomo la cotización?

De la fuente que indique tu contador, a la fecha de la operación.

¿Es lo mismo que el 40114?

No. El 40114 es del caso MXN; el 40115, de monedas extranjeras.

¿Y con la moneda XXX?

No se registra el tipo de cambio; ve la regla 40116.

¿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.

Regístrate