Guías

Factura servicios a clientes extranjeros sin rechazos SAT

Cómo facturar a clientes extranjeros en México: RFC XEXX010101000, Exportacion, ResidenciaFiscal, NumRegIdTrib y el IVA que marca la LIVA, no el XML.

Para facturar a clientes extranjeros en México no uses el RFC de público en general. El receptor sin RFC mexicano lleva el RFC genérico XEXX010101000. Completas Exportacion, ResidenciaFiscal y NumRegIdTrib. En el receptor pones régimen 616 y uso S01. El IVA 0% o 16% lo marca la Ley del IVA, no el campo Exportacion del XML. gigstack timbra CFDI 4.0 con esos datos. No decide la tasa.

¿Qué RFC pongo?

Si las leyes te exigen comprobante, ese comprobante es digital y se emite a través del SAT. Lo dice el artículo 29 del Código Fiscal de la Federación.

El cliente extranjero no tiene RFC mexicano. No le inventes uno. Tampoco le pongas el RFC de público en general nacional. Son dos claves distintas, y el SAT las trata distinto:

  • Extranjero sin RFC mexicano: XEXX010101000
  • Público en general nacional: XAXX010101000

Esa diferencia está en la guía de llenado del Anexo 20 y en la guía del complemento de Comercio Exterior. XAXX010101000 es el de la factura global. Si lo usas en una venta a un no residente, el PAC te la puede rechazar o el XML queda mal clasificado.

Pide el nombre o razón social del cliente, su país y su identificador fiscal extranjero. Ese identificador no sustituye al RFC genérico. Va en NumRegIdTrib.

¿Exportacion 01 o 02?

El campo Exportacion es obligatorio en CFDI 4.0. El catálogo tiene cuatro claves:

  • 01 — No aplica
  • 02 — Definitiva, operación A1. Aquí el complemento de Comercio Exterior es obligatorio
  • 03 — Temporal. Omites el complemento de Comercio Exterior
  • 04 — Otra

Eso es lógica de guía de llenado, no una frase del SAT que diga «servicios = 01». En una factura de servicios sin pedimento A1, el llenado habitual es 01. Si no hay exportación aduanera de mercancías, 02 no es el atajo.

Exportacion no es tu tasa de IVA. Puedes llevar 01 y todavía tener IVA 0% o 16%, según la LIVA. No mezcles los dos análisis.

¿Cuándo SÍ va el complemento de Comercio Exterior?

El complemento de Comercio Exterior va cuando Exportacion es 02. No lo pegues si la clave es 01 o 03. La guía del complemento es el instructivo de ese XML, no un módulo extra de producto.

Si facturas un servicio y no hay pedimento A1, no forces el complemento «por si acaso». Un complemento de más es tan rechazable como uno de menos.

Ese complemento no es la Carta Porte. Si mueves mercancías en territorio nacional, esa guía es otra: Carta Porte CFDI 2026.

¿IVA 0% o 16%?

Son dos preguntas. No las resuelve el mismo campo.

La tasa 0% en servicios exportados vive en el artículo 29 de la LIVA. Es independiente del atributo Exportacion del XML. El XML no «convierte» un servicio en exportación solo porque pusiste 01 o 02.

Si el servicio se aprovecha en México, el IVA de salida es 16% aunque quien pague sea extranjero. Lo marcan los artículos 1 y 14 de la LIVA. El pasaporte del cliente no baja la tasa.

No trates todas las facturas de software a Estados Unidos como IVA 0%. gigstack no elige 0% o 16% por ti. Tú (o tu contador) calificas el acto. El timbrado solo refleja la tasa que envías.

¿Qué campos lleva el receptor extranjero?

Con RFC XEXX010101000 el Anexo 20 pide un juego fijo:

  • RegimenFiscalReceptor: 616
  • UsoCFDI: S01
  • DomicilioFiscalReceptor: el código postal del emisor, no el del cliente en el extranjero
  • ResidenciaFiscal: la clave de c_Pais cuando llenas NumRegIdTrib o cuando va el complemento de Comercio Exterior
  • NumRegIdTrib: el identificador fiscal extranjero, de 1 a 40 caracteres

Si omites ResidenciaFiscal y sí mandas NumRegIdTrib, el PAC corta. Si pones el código postal del cliente en Dallas o Madrid, también. El domicilio fiscal del receptor, en este patrón, es el tuyo.

No uses D01 ni un uso de persona física mexicana. El extranjero genérico no deduce honorarios en México con esa factura.

¿Qué errores rechaza el PAC?

Estos rompen el timbrado con más frecuencia que un typo en la descripción:

  1. RFC XAXX010101000 en un cliente extranjero
  2. Régimen distinto de 616 o uso distinto de S01
  3. DomicilioFiscalReceptor que no es el código postal del emisor
  4. NumRegIdTrib vacío, o de más de 40 caracteres, cuando ya diste residencia
  5. ResidenciaFiscal ausente cuando sí hay NumRegIdTrib o complemento CE
  6. Complemento de Comercio Exterior con Exportacion 01 o 03
  7. Exportacion 02 sin complemento de Comercio Exterior

El patrón es el mismo que en errores comunes de rechazo CFDI 4.0: el SAT valida coherencia entre campos, no «intención». Si el PAC ya rechazó, sigue factura rechazada: qué hacer. Corrige y vuelve a timbrar. No reenvíes el mismo XML.

¿Cómo lo emites en gigstack?

gigstack timbra CFDI 4.0. El XML puede llevar XEXX010101000, Exportacion, ResidenciaFiscal, NumRegIdTrib, régimen 616 y uso S01. No hay un «módulo de exportación» aparte. No hay una pantalla que decida IVA 0% contra 16%.

Antes de mandar a timbrar, revisa esta lista:

  1. RFC del receptor = XEXX010101000
  2. Régimen 616 y uso S01
  3. Código postal del receptor = el de tu CSD / tu emisor
  4. País en ResidenciaFiscal y tax ID en NumRegIdTrib (1 a 40 caracteres)
  5. Exportacion según la operación real; en servicios sin pedimento A1, el llenado habitual es 01
  6. Sin complemento CE si la clave es 01 o 03
  7. Tasa de IVA según LIVA, no según el país del pagador

Si emites por API, el primer timbrado se documenta en api gigstack: primera factura. Mapea esos siete campos en el request. No dejes que un default de público en general (XAXX010101000) se cuele en un checkout extranjero.

El resumen: RFC genérico de extranjero, receptor 616 + S01, Exportacion coherente con la guía de llenado, y la tasa de IVA leída en la LIVA. Eso es facturar a clientes extranjeros en México sin pelearte con el PAC.