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 aplica02— Definitiva, operación A1. Aquí el complemento de Comercio Exterior es obligatorio03— Temporal. Omites el complemento de Comercio Exterior04— 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:616UsoCFDI:S01DomicilioFiscalReceptor: el código postal del emisor, no el del cliente en el extranjeroResidenciaFiscal: la clave dec_Paiscuando llenasNumRegIdTribo cuando va el complemento de Comercio ExteriorNumRegIdTrib: 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:
- RFC
XAXX010101000en un cliente extranjero - Régimen distinto de
616o uso distinto deS01 DomicilioFiscalReceptorque no es el código postal del emisorNumRegIdTribvacío, o de más de 40 caracteres, cuando ya diste residenciaResidenciaFiscalausente cuando sí hayNumRegIdTribo complemento CE- Complemento de Comercio Exterior con
Exportacion01o03 Exportacion02sin 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:
- RFC del receptor =
XEXX010101000 - Régimen
616y usoS01 - Código postal del receptor = el de tu CSD / tu emisor
- País en
ResidenciaFiscaly tax ID enNumRegIdTrib(1 a 40 caracteres) Exportacionsegún la operación real; en servicios sin pedimento A1, el llenado habitual es01- Sin complemento CE si la clave es
01o03 - 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.