COMERCIO EXTERIOR 1.1 E - Publicado SAT: 01.07.2022

Validaciones adicionales a realizar por el Proveedor

Las siguientes validaciones aplican en comprobante base CFDI

Elemento: cfdi:Comprobante

Atributos:

TipoDeComprobante
Validar

Este atributo puede tener los valores "I", "E" o "T".

Si el valor es "T", se debe registrar el atributo MotivoTraslado y, si el MotivoTraslado tiene la clave "05", se debe registrar el nodo Propietario, en otro caso, el atributo MotivoTraslado y el nodo Propietario no deben existir.

Exportación
Validar El complemento de Comercio Exterior será requerido cuando en el atributo “cfdi:Comprobante:Exportacion” contenga el valor “02” de acuerdo al catálogo catCFDI:c_Exportacion.
Elemento: cfdi: InformacionGlobal
Validar Este elemento no debe existir.

Elemento: cfdi:Comprobante

Nodo: Emisor

Atributos

FacAtrAdquirente
Validar Este nodo no debe existir.

Elemento: cfdi:Comprobante

Nodo: Receptor
Rfc
Validar

Si el atributo TipoDeComprobante tiene el valor "T" y el atributo cce11:MotivoTraslado tiene el valor "02", entonces este atributo puede tener un RFC registrado en la lista de RFC inscritos no cancelados del SAT l_RFC o el valor "XEXX010101000", en otro caso, debe tener el valor "XEXX010101000".

Si el atributo TipoDeComprobante tiene el valor "T" y se incorpora el complemento Carta Porte, entonces este atributo debe tener el mismo valor del atributo Rfc del Emisor.

Elemento: Comprobante

Nodo:Conceptos

Nodo: Concepto

Nodo ObjetoImp

Validar

Si este atributo contiene el valor “02” debe tener al menos un elemento “cfdi:Concepto:Impuestos”.

Si el atributo TipoDeComprobante tiene el valor “T” este atributo debe tener el valor “01”

Elemento: Comprobante

Nodo: Conceptos

Nodo: Concepto

Nodo: ACuentaTerceros

Validar Este nodo no debe existir

Elemento: Comprobante

Nodo: Conceptos

Nodo: Concepto

Nodo: CuentaPredial

Validar Este nodo no debe existir
Las siguientes validaciones aplican para el complemento.
Elemento: cce11:ComercioExterior
Validar

El nodo ComercioExterior se debe registrar como un nodo hijo del nodo Complemento en el CFDI.

En el CFDI solo debe existir un nodo de ComercioExterior.

Este complemento puede coexistir con los siguientes complementos: Timbre Fiscal Digital, otros derechos e impuestos, leyendas fiscales, CFDI registro fiscal y Carta Porte

Si el atributo TipoDeComprobante es distinto de "I", "E" o "T", este complemento no debe existir

Elemento: cce11:ComercioExterior

Atributos

MotivoTraslado
Validar

Si este atributo tiene el valor "01", debe existir el atributo cfdi:Relacionados:TipoRelacion y debe contener el UUID de la factura donde previamente se realizó la enajenación.

Si este atributo tiene el valor "05", debe existir al menos un nodo Propietario, en otro caso, no deben existir nodos Propietario.

TipoOperacion
Validar Si la clave registrada en este atributo es "2", deben existir los siguientes atributos: ClaveDePedimento, CertificadoOrigen, Incoterm, Subdivision, TipoCambioUSD, TotalUSD y Mercancias
CertificadoOrigen
Validar Si el valor de este atributo es cero no debe registrarse el atributo NumCertificadoOrigen.
NumExportadorConfiable
Validar Si la clave de país del receptor o del destinatario no corresponde a un país del catálogo catCFDI:c_Pais donde la columna Agrupación tenga el valor Unión Europea, este atributo no debe existir.
TipoCambioUSD
Validar El valor de este atributo debe corresponder con el número de pesos mexicanos que equivalen a un dólar de Estados Unidos, de acuerdo al artículo 20 del Código Fiscal de la Federación.
TotalUSD
Validar El valor de este atributo debe ser la suma de los valores del atributo ValorDolares de las mercancías. El valor se debe registrar con dos decimales.

Elemento: cce11:ComercioExterior

Nodo: Emisor

Atributos

Curp
Validar Si el atributo Rfc del nodo cfdi:Comprobante:Emisor es de longitud 12, entonces este campo no debe existir, si es de longitud 13, entonces este atributo debe existir.
Domicilio
Validar

En el atributo Pais, debe contener la clave "MEX"

  • El atributo de Estado debe contener una clave del catálogo de catCFDI:c_Estado, donde la columna c_Pais tiene el valor "MEX".
  • El atributo de Municipio debe contener una clave del catálogo de catCFDI:c_Municipio, donde la columna clave de c_Estado debe ser igual a la clave registrada en el atributo Estado.
  • Si se registra el atributo de Localidad debe contener una clave del catálogo de catCFDI:c_Localidad, donde la columna clave de c_Estado debe ser igual a la clave registrada en el atributo Estado.
  • El atributo colonia debe contener una clave del catálogo de catCFDI:c_Colonia, donde la columna c_CodigoPostal debe ser igual a la clave registrada en el atributo CodigoPostal. Si el atributo no tiene una clave numérica de cuatro posiciones, no se valida el contenido.
  • El atributo de codigoPostal debe contener una clave del catálogo de catCFDI:c_CodigoPostal, donde la columna clave de c_Estado debe ser igual a la clave registrada en el atributo Estado, la columna clave de c_Municipio debe ser igual a la clave registrada en el atributo Municipio, y si existe el atributo de Localidad, la columna clave de c_Localidad debe ser igual a la clave registrada en el atributo Localidad.

Elemento: cce11:ComercioExterior

Nodo: Propietario

Atributos

NumRegIdTrib
Validar

Identificar el país de residencia para efectos fiscales del Receptor usando el atributo cce11:Propietario:ResidenciaFiscal

Si la clave del país corresponde a un país del catálogo catCFDI:c_Pais donde la columna "Formato de registro de identidad tributaria" tiene un valor:

  • Si tiene mecanismo de verificación en línea (hay valor en la columna "validación del registro de identidad tributaria"), debe existir en el registro del país.
  • Si no tiene mecanismo de verificación (no hay valor en la columna "validación del registro de identidad tributaria"), debe cumplir con el patrón que se publique en la columna "Formato de registro de identidad tributaria"
  • Ejemplo de mecanismo: Validar contra archivo de NumRegIdTrib validados del país que publique el SAT.

    Ejemplo de patrón para el NumRegIdTrib de USA: ([0-9]{9}).

Elemento: cce11:ComercioExterior

Nodo: Receptor

Atributos

NumRegIdTrib
Validar

Si el atributo Rfc registrado en el nodo Receptor del elemento Comprobante, contiene el valor “XEXX010101000” entonces, este atributo debe contener un valor, en caso contrario, no debe existir

Si este atrbibuto existe, se debe validar:

  •  Identificar el país de residencia para efectos fiscales del Receptor usando la clave del país del domicilio cce11:Receptor:Domicilio.
  • Si la clave del país corresponde a un país del catálogo donde la columna "Formato de registro de identidad tributaria" tiene un valor:
  • Si tiene mecanismo de verificación en línea (hay valor en la columna "validación del registro de identidad tributaria"), debe existir en el registro del país.
  • Si no tiene mecanismo de verificación (no hay valor en la columna "validación del registro de identidad tributaria"), debe cumplir con el patrón que se publique en la columna "Formato de registro de identidad tributaria"
  • Ejemplo de mecanismo: Validar contra archivo de NumRegIdTrib validados del país que publique el SAT.
  • Ejemplo de patrón para el NumRegIdTrib de USA: ([0-9]{9}).

Elemento: cce11:ComercioExterior

Nodo: Receptor

Nodo: Domicilio

Atributos

Colonia
Validar

Si la clave de país es diferente de "MEX", se debe registrar texto libremente.

Si la clave de país es "MEX" y si este atributo contiene una cadena numérica de cuatro posiciones, debe contener una clave del catálogo de colonias, donde la columna código postal sea igual a la clave registrada en el atributo CodigoPostal. Si el atributo no tiene una clave numérica de cuatro posiciones, no se valida el contenido.

Localidad
Validar

Si la clave de país es diferente de "MEX", se debe registrar texto libremente.

Si la clave de país es "MEX" debe contener una clave del catálogo de localidades (catCFDI:c_Localidad), donde la columna c_Estado sea igual a la clave registrada en el atributo Estado.

Municipio
Validar

Si la clave de país es diferente de "MEX", se debe registrar texto libremente

En otro caso, debe contener una clave del catálogo de municipios (catCFDI:c_Municipio), donde la columna c_Estado sea igual a la clave registrada en el atributo Estado.

Estado
Validar

Si la clave de país es "ZZZ" o la clave del país no existe en la columna c_Pais del catálogo catCFDI:c_Estado, se debe registrar texto libremente.

En otro caso, debe contener una clave del catálogo de estados catCFDI:c_Estado, donde la columna c_Pais sea igual a la clave de país registrada en el atributo Pais.

CodigoPostal
Validar

Cuando la clave de país sea distinta de "MEX", si en el catálogo de países publicado en el portal del SAT en internet se especifica un patrón para el formato del código postal en ese país, el contenido de este atributo debe cumplir con dicho patrón.

Si la clave de país es "MEX" se debe verificar el valor en el catálogo de códigos postales catCFDI:c_CodigoPostal, donde la columna c_Estado sea igual a la clave registrada en el atributo Estado, la columna c_Municipio sea igual a la clave registrada en el atributo Municipio y la columna c_Localidad sea igual a la clave registrada en el atributo Localidad. En caso de no existir clave registrada en Localidad, solo se debe verificar el valor de las columnas c_Estado y c_Municipio.

Elemento: cce11:ComercioExterior

Nodo: Destinatario

Validar Si el cfdi:TipoDeComprobante tiene el valor "T", solo se puede registrar un destinatario.

Elemento: cce11:ComercioExterior

Nodo: Destinatario

Atributos

NumRegIdTrib
Validar

Validar Si este atributo contiene un valor, se debe identificar el país de residencia para efectos fiscales del destinatario usando la clave de país del atributo Pais.

Si la clave del país corresponde a un país del catálogo donde la columna "Formato de registro de identidad tributaria" tiene un valor:

  • Si tiene mecanismo de verificación en línea (hay valor en la columna "validación del registro de identidad tributaria"), debe existir en el registro del país
  • Si no tiene mecanismo de verificación (no hay valor en la columna "validación del registro de identidad tributaria"), debe cumplir con el patrón que se publique en la columna "Formato de registro de identidad tributaria"
  • Si no hay patrón en la columna "Formato de Registro de Identidad Tributaria", no se valida el contenido.
  • Ejemplo de mecanismo: Validar contra archivo de NumRegIdTrib validados del país que publique el SAT.

    Ejemplo de patrón para el NumRegIdTrib de USA: ([0-9]{9}).

Elemento: cce11:ComercioExterior

Nodo: Destinatario

Nodo: Domicilio

Colonia
Validar

Si la clave de país es diferente de "MEX", se debe registrar texto libremente

Si la clave de país es "MEX" y si este atributo contiene una cadena numérica de cuatro posiciones, debe contener una clave del catálogo de colonias, donde la columna código postal sea igual a la clave registrada en el atributo CodigoPostal. Si el atributo no tiene una clave numérica de cuatro posiciones, no se valida el contenido.

Localidad
Validar

Si la clave de país es diferente de "MEX", se debe registrar texto libremente.

Si la clave de país es "MEX" debe contener una clave del catálogo de localidades (catCFDI:c_Localidad), donde la columna c_Estado sea igual a la clave registrada en el atributo Estado.

Municipio
Validar

Si la clave de país es diferente de "MEX", se debe registrar texto libremente

En otro caso, debe contener una clave del catálogo de municipios (catCFDI:c_Municipio), donde la columna c_Estado sea igual a la clave registrada en el atributo Estado.

Estado
Validar

Si la clave de país es "ZZZ" o la clave del país no existe en la columna c_Pais del catálogo catCFDI:c_Estado, se debe registrar texto libremente.

En otro caso, debe contener una clave del catálogo de estados catCFDI:c_Estado, donde la columna c_Pais sea igual a la clave de país registrada en el atributo Pais.

CodigoPostal

Cuando la clave de país sea distinta de “MEX”, si en el catálogo de países publicado en el portal del SAT se especifica un patrón para el formato del código postal en ese país, el contenido de este atributo debe cumplir con dicho patrón

Si la clave de país es "MEX" se debe verificar el valor en el catálogo de códigos postales catCFDI:c_CodigoPostal, donde la columna c_Estado sea igual a la clave registrada en el atributo Estado, la columna c_Municipio sea igual a la clave registrada en el atributo Municipio y la columna c_Localidad sea igual a la clave registrada en el atributo Localidad. En caso de no existir clave registrada en Localidad, solo se debe verificar el valor de las columnas c_Estado y c_Municipio.

Elemento: cce11:ComercioExterior

Nodo: Mercancias

Nodo: Mercancia

Validar

Cada concepto registrado en el elemento cfdi:Comprobante:Conceptos, debe tener registrado el atributo cfdi:Comprobante:Conceptos:Concepto:NoIdentificacion y el NoIdentificacion se puede repetir.

Al menos uno de los elementos registrados en cfdi:Comprobante:Conceptos, debe tener un registro relacionado en el nodo mercancías, donde el atributo cce11:ComercioExterior:Mercancias:Mercancia:NoIdentificacion sea igual al atributo cfdi:Comprobante:Conceptos:Concepto:NoIdentificacion.

Por cada Mercancía registrada en el elemento cce11:ComercioExterior:Mercancias, debe existir al menos un Concepto registrado en cfdi:Comprobante:Conceptos donde el atributo cce11:ComercioExterior:Mercancias:Mercancia:NoIdentificacion sea igual al atributo cfdi:Comprobante:Conceptos:Concepto:NoIdentificacion.

En el elemento cce11:ComercioExterior:Mercancias, no se debe repetir elementos Mercancia donde el NoIdentificacion y la FraccionArancelaria sean iguales.

Para un comprobante de tipo “T” si no existe el atributo cce11:ComercioExterior:Mercancias:Mercancia:CantidadAduana, entonces:

  • El atributo cfdi:Comprobante:Conceptos:Concepto:Cantidad debe tener como valor mínimo incluyente "0.001" y debe cumplir con el patrón [0-9]{1,14}(.([0-9]{1,3}))?
  • El atributo cfdi:Comprobante:Conceptos:Concepto:Unidad debe tener un valor del catálogo catCFDI:c_UnidadAduana
  • El atributo cfdi:Comprobante:Conceptos:Concepto:ValorUnitari o debe tener como valor mínimo incluyente "0.0000", debe cumplir con el patrón [0-9]{1,16}(.([0-9]{1,4}))?, no se permiten valores negativos.

Para obtener el valor del cfdi:Comprobante:Conceptos:Concepto:importe de cada concepto registrado, se debe realizar lo siguiente:

    Calcular el límite inferior como:

  • (Cantidad - (10-NumDecimalesCantidad)/2) * (valorUnitario - (10-NumDecimalesValorUnitario)/2) y este resultado truncado con la cantidad de decimales que soporte la moneda.
  • Calcular el límite superior como:

  • (Cantidad + (10-NumDecimalesCantidad)/2 - 10-12) * (valorUnitario + (10-NumDecimalesValorUnitario)/2 - 10-12) y este resultado redondearlo hacia arriba con la cantidad de decimales que soporte la moneda.
  • El valor de este atributo debe ser mayor o igual que el límite inferior y menor o igual que el límite superior.

Elemento: ComercioExterior

Nodo: Mercancias

Nodo: Mercancia

Atributos

NoIdentificacion
Validar

Validar Para los valores de cce11:ComercioExterior:Mercancias:Mercancia:NoIdentificacion donde no existen atributos ValorDolares con el valor cero o uno:

  • Se debe obtener la suma de los campos cfdi:Comprobante:Conceptos:Concepto:importe donde los conceptos tengan el mismo cfdi:Comprobante:Conceptos:Concepto:NoIdentificacion sea igual al de la mercancía,
  • Cuanto el tipo comprobante sea “I” o “E”, esta suma se debe convertir a la moneda en la que se expresa el comprobante y obtener valores mínimo y máximo realizando lo siguiente:
    • Valor mínimo: (importe - (10-NumDecimalesImporte)/2) * (TipoCambio - (10-NumDecimalesTipoCambio)/2) / (TipoCambioUSD + (10-NumDecimalesTipoCambio)/2 - 10-12) y este resultado truncado a centésimas.
    • Valor máximo: (importe + (10-NumDecimalesImporte)/2 - 10-12) * (TipoCambio + (10-NumDecimalesTipoCambio)/2 - 10-12) /(TipoCambioUSD - (10-NumDecimalesTipoCambio)/2) y este resultado redondeado hacia arriba a centésimas.
  • Cuando el tipo comprobante sea “I” o “E” se debe obtener la suma de los campos cce11:ComercioExterior:Mercancias:Mercancia:ValorDolares de todas las mercancías que tengan el mismo NoIdentificacion y este sea igual al NoIdentificacion del concepto
  • El importe del punto previo debe ser mayor o igual al importe mínimo y menor o igual al importe máximo obtenido en el primer punto.
FraccionArancelaria
Validar

Si el atributo cce11:ComercioExterior:Mercancias:Mercancia:UnidadAduana tiene el valor “99” o el atributo cfdi:Comprobante:Conceptos:Concepto:Unidad tienen el valor "E48" que corresponde a los servicios, entonces no debe existir este atributo cce11:ComercioExterior:Mercancias:Mercancia:FraccionArancelaria, en otro caso, debe existir la FraccionArancelaria.

Si existe la FraccionArancelaria debe tener un valor vigente del catálogo catCFDI:c_FraccionArancelaria (la fecha del CFDI debe estar entre la fecha de inicio de vigencia y fin de vigencia en el catálogo) y

  • Si existe el atributo UnidadAduana, ésta debe tener el valor especificado en el catálogo catCFDI:c_FraccionArancelaria columna "UMT"
  • Si no existe el atributo UnidadAduana, el atributo Unidad del concepto relacionado (donde el NoIdentificacion es igual al de la Mercancia) debe tener el valor especificado en el catálogo catCFDI:c_FraccionArancelaria columna "UMT"

Si existe el valor "9801000100" (Importaciones o exportaciones de muestras y muestrarios) en alguno de los elementos Mercancía, entonces:

  • Se debe obtener la suma de los valores del atributo cfdi:Comprobante:Conceptos:Concepto:Descuento donde el NoIdentificacion es el mismo, esta suma se debe convertir a la moneda en la que se expresa el comprobante.
  • Se debe obtener la suma de los valores del atributo cce11:ComercioExterior:Mercancias:Mercancia:ValorDolares donde el NoIdentificacion es igual y la FraccionArancelaria es "9801000100" y el NoIdentificacion sea igual al NoIdentificacion del concepto.
  • La suma del primer punto debe ser mayor o igual al importe obtenido en el punto previo.

CantidadAduana

UnidadAduana

ValorUnitarioAduana

Validar

Si se registra alguno de estos atributos o existe más de un registro concepto con el mismo NoIdentificacion o existe más de un registro mercancía con el mismo NoIdentificacion entonces deben existir los tres atributos en los registros involucrados.

Si un elemento cce11:ComercioExterior:Mercancias:Mercancia tiene estos atributos, entonces todos los elementos mercancía del comprobante deben tener los tres atributos.

Si existe un valor registrado en el atributo cce11:ComercioExterior:Mercancias:Mercancia:UnidadAduana se debe verificar que el valor se encuentre en el catálogo de fracciones arancelarias catCFDI:c_FraccionArancelaria columna "UMT", y que la columna c_FraccionArancelaria sea igual a la clave registrada en el atributo cce11:ComercioExterior:Mercancias:Mercancia:FraccionArancelaria.

Si el valor del atributo cce11:ComercioExterior:Mercancias:Mercancia:UnidadAduana es distinto de "99" que corresponde a los servicios, entonces el cce11:ComercioExterior:Mercancias:Mercancia:ValorUnitarioAduana debe ser mayor que cero.

Si el valor del atributo cce11:ComercioExterior:Mercancias:Mercancia:UnidadAduana es igual a "99" que corresponde a los servicios, entonces el atributo cce11:ComercioExterior:Mercancias:Mercancia:FraccionArancelaria no debe existir.

ValorDolares
Validar Si existe el atributo cce11:ComercioExterior:Mercancias:Mercancia:CantidadAduana, para obtener el valor del atributo cce11:ComercioExterior:Mercancias:Mercancia:ValorDol ares de cada mercancía registrada, se debe realizar lo siguiente:
  • Calcular el límite inferior como: (CantidadAduana - (10-NumDecimalesCantidad)/2) * (ValorUnitarioAduana - (10-NumDecimalesValorUnitario)/2) y este resultado truncado a centésimas.
  • Calcular el límite superior como: (CantidadAduana + (10-NumDecimalesCantidad)/2 - 10- 12) * (valorUnitarioAduana + (10-NumDecimalesValorUnitario)/2 - 10-12) y este resultado redondearlo hacia arriba a centésimas.
    • Cuando el atributo ValorDolares sea “0” o “1” no se deben aplicar las validaciones de los limites superiores o inferiores del atributo NumIdentificación
    • El valor de este atributo debe ser mayor o igual que el límite inferior y menor o igual que el límite superior, o
    • Uno, cuando la normatividad lo permita.
  • En otro caso, este atributo debe ser igual a:
    • El producto del valor del atributo cfdi:Comprobante:Conceptos:Concepto:Importe por el valor del atributo cfdi:Comprobante:TipoCambio y dividido entre valor del atributo cce11:ComercioExterior:TipoDeCambioUSD, registrando la cantidad con centésimas (usar la regla del atributo NoIdentificacion para obtener los valores mínimo y máximo, el valor debe estar en este rango), donde el atributo cfdi:Comprobante:Conceptos:Concepto:NoIdentificacion es igual al atributo cce11:ComercioExterior:Mercancias:Mercancia:NoIdentificacion y el NoIdentificación no se repite en conceptos ni en mercancías, o
    • Cero, cuando el atributo cce11:ComercioExterior:Mercancias:Mercancia:UnidadAduana o el atributo cfdi:Comprobante:Conceptos:Concepto:Unidad tienen el valor "99" que corresponde a los servicios y el servicio no forma parte del valor en aduana, o
    • Uno, cuando la normatividad lo permita.

Ver también:


Complementos Listado de complementos
Conoce los complementos que puedes incorporar a tu factura
Anexo 20 versión 4.0 Anexo 20 versión 4.0
Conoce los complementos que puedes incorporar a tu factura

Software


GNcys Factura Electrónica GNcys Factura Electrónica
CFDI

Enlaces externos


SAT - Servicio de Administración Tributaria Portal de trámites y servicios (SAT)
Servicio de Administración Tributaria