ANEXOS 20, 25-Bis, 26, 27, 29, 30, 31 y 32 de la Resolución Miscelánea Fiscal para 2022, publicada en la edición vespertina del 27 de diciembre de 2021

Jueves 13 de Enero de 2022

Al margen un sello con el Escudo Nacional, que dice: Estados Unidos Mexicanos.- HACIENDA.- Secretaría de Hacienda y Crédito Público.- Servicio de Administración Tributaria.

Anexo 20 de la Resolución Miscelánea Fiscal para 2022

Contenido

Medios electrónicos

I.        Del Comprobante fiscal digital por Internet:

A.      Estándar de comprobante fiscal digital por Internet.

B.      Generación de sellos digitales para comprobantes fiscales digitales por Internet.

C.      Estándar del servicio de cancelación.

D.      Especificación técnica del código de barras bidimensional a incorporar en la representación impresa.

E.      Secuencia de formación para generar la cadena original para comprobantes fiscales digitales por Internet.

F.      Validaciones adicionales a realizar por el proveedor.

II.       Del Comprobante fiscal digital por Internet que ampara retenciones e información de pagos.

A.      Estándar de comprobante fiscal digital por Internet que ampara retenciones e información de pagos.

B.      Generación de sellos digitales para comprobantes fiscales digitales por Internet que amparan retenciones e información de pagos.

C.      Estándar del servicio de cancelación de retenciones e información de pagos.

D.      Especificación técnica del código de barras bidimensional a incorporar en la representación impresa del comprobante fiscal digital por Internet que ampara retenciones e información de pagos.

E.      Validaciones adicionales a realizar por el proveedor.

III.      De los distintos medios de comprobación digital:

A.      Estándares y especificaciones técnicas que deben cumplir las aplicaciones informáticas para la generación de claves de criptografía asimétrica a utilizar para Firma Electrónica Avanzada.

B.      Estándar y uso del complemento obligatorio: Timbre Fiscal Digital del SAT versión 1.1

a.      Estándar del complemento obligatorio timbre fiscal digital del SAT.

b.      Secuencia de formación para generar la cadena original del complemento obligatorio timbre fiscal digital del SAT.

c.      Uso del complemento obligatorio timbre fiscal digital del SAT.

C.      Uso de la facilidad de nodos opcionales <Complemento> y <ComplementoConcepto>.

D.      Uso de la facilidad de ensobretado <Addenda>.

IV.     Generalidades.

A.      De los distintos tipos de datos y catálogos.

V.      Glosario.

 

I.        Del Comprobante fiscal digital por Internet:

A.      Estándar de Comprobante fiscal digital por Internet.

El contribuyente que emita comprobantes fiscales digitales por Internet debe generarlos bajo el siguiente estándar XSD base y los XSD complementarios que requiera, validando su forma y sintaxis en un archivo con extensión XML, siendo éste el único formato para poder representar y almacenar comprobantes de manera electrónica o digital.

Para poder ser validado, el comprobante fiscal digital por Internet debe estar referenciado al namespace del comprobante fiscal digital por Internet y referenciar la validación del mismo a la ruta publicada por el SAT en donde se encuentra el esquema XSD objeto de la presente sección (http://www.sat.gob.mx/sitio_internet/cfd/4/cfdv40.xsd) de la siguiente manera:

<cfdi:Comprobante

xmlns:cfdi="http://www.sat.gob.mx/cfd/4"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="

http://www.sat.gob.mx/cfd/4

http://www.sat.gob.mx/sitio_internet/cfd/4/cfdv40.xsd"

……………..

</cfdi:Comprobante>

 

Es obligatorio el uso de la declaración: xmlns:cfdi="http://www.sat.gob.mx/cfd/4"

Para que un comprobante sea válido debe cumplir con:

·         Los lineamientos técnicos de forma y sintaxis para la generación de archivos XML especificados por el consorcio W3C, establecidos en www.w3.org.

·         Las reglas de validación adicionales establecidas en este Anexo.

·         Las reglas de validación adicionales establecidas en cada complemento que se integre en el archivo XML.

·         Las reglas de validación particulares publicadas en la Resolución Miscelánea Fiscal vigente.

Las reglas se aplican en el orden anterior. Si una regla tiene una redefinición en una regla subsecuente, debe cumplirse sólo la última regla.

Adicionalmente, el contribuyente debe sujetarse a las disposiciones fiscales vigentes y aplicar lo establecido en la Guía de llenado de los comprobantes fiscales digitales por Internet que el Servicio de Administración Tributaria publique en su Portal.

El documento XML debe expresarse bajo el estándar de codificación UTF-8 y en particular se deben usar secuencias de escape cuando en los valores especificados dentro de los atributos del archivo exista alguno de los siguientes casos especiales.

ÿ      En el caso del & se debe usar la secuencia &amp;

ÿ      En el caso del “ se debe usar la secuencia &quot;

ÿ      En el caso del < se debe usar la secuencia &lt;

ÿ      En el caso del > se debe usar la secuencia &gt;

ÿ      En el caso del ‘ se debe usar la secuencia &apos;

Ejemplo:

Para representar nombre=“Juan & José & “Niño”” se usa nombre=”Juan &amp; José &amp; &quot;Niño&quot;”

 

Estructura

Elementos

 

Elemento: Comprobante

 

Diagrama

 

 

 

 

 

Descripción

 

 

Estándar de Comprobante Fiscal Digital por Internet.

 

Atributos

 

 

Version

 

Descripción

Atributo requerido con valor prefijado a 4.0 que indica la versión del estándar bajo el que se encuentra expresado el comprobante.

 

Uso

requerido

 

Valor Prefijado

4.0

 

Tipo Base

xs:string

 

Espacio en Blanco

Colapsar

 

Serie

 

Descripción

Atributo opcional para precisar la serie para control interno del contribuyente. Este atributo acepta una cadena de caracteres.

 

Uso

opcional

 

Tipo Base

xs:string

 

Longitud Mínima

1

 

Longitud Máxima

25

 

Espacio en Blanco

Colapsar

 

Patrón

[^|]{1,25}

 

Folio

 

Descripción

Atributo opcional para control interno del contribuyente que expresa el folio del comprobante, acepta una cadena de caracteres.

 

Uso

opcional

 

Tipo Base

xs:string

 

Longitud Mínima

1

 

Longitud Máxima

40

 

Espacio en Blanco

Colapsar

 

Patrón

[^|]{1,40}

 

Fecha

 

Descripción

Atributo requerido para la expresión de la fecha y hora de expedición del Comprobante Fiscal Digital por Internet. Se expresa en la forma AAAA-MM-DDThh:mm:ss y debe corresponder con la hora local donde se expide el comprobante.

 

Uso

requerido

 

Tipo Especial

tdCFDI:t_FechaH

 

 

Sello

 

Descripción

Atributo requerido para contener el sello digital del comprobante fiscal, al que hacen referencia las reglas de resolución miscelánea vigente. El sello debe ser expresado como una cadena de texto en formato Base 64.

 

Uso

requerido

 

Tipo Base

xs:string

 

Espacio en Blanco

Colapsar

 

FormaPago

 

Descripción

Atributo condicional para expresar la clave de la forma de pago de los bienes o servicios amparados por el comprobante.

 

Uso

opcional

 

Tipo Especial

catCFDI:c_FormaPago

 

NoCertificado

 

Descripción

Atributo requerido para expresar el número de serie del certificado de sello digital que ampara al comprobante, de acuerdo con el acuse correspondiente a 20 posiciones otorgado por el sistema del SAT.

 

Uso

requerido

 

Tipo Base

xs:string

 

Longitud

20

 

Espacio en Blanco

Colapsar

 

Patrón

[0-9]{20}

 

Certificado

 

Descripción

Atributo requerido que sirve para incorporar el certificado de sello digital que ampara al comprobante, como texto en formato base 64.

 

Uso

requerido

 

Tipo Base

xs:string

 

Espacio en Blanco

Colapsar

 

CondicionesDePago

 

Descripción

Atributo condicional para expresar las condiciones comerciales aplicables para el pago del comprobante fiscal digital por Internet. Este atributo puede ser condicionado mediante atributos o complementos.

 

Uso

opcional

 

Tipo Base

xs:string

 

Longitud Mínima

1

 

Longitud Máxima

1000

 

Espacio en Blanco

Colapsar

 

Patrón

[^|]{1,1000}

 

 

SubTotal

 

Descripción

Atributo requerido para representar la suma de los importes de los conceptos antes de descuentos e impuesto. No se permiten valores negativos.

 

Uso

requerido

 

Tipo Especial

tdCFDI:t_Importe

 

Descuento

 

Descripción

Atributo condicional para representar el importe total de los descuentos aplicables antes de impuestos. No se permiten valores negativos. Se debe registrar cuando existan conceptos con descuento.

 

Uso

opcional

 

Tipo Especial

tdCFDI:t_Importe

 

Moneda

 

Descripción

Atributo requerido para identificar la clave de la moneda utilizada para expresar los montos, cuando se usa moneda nacional se registra MXN. Conforme con la especificación ISO 4217.

 

Uso

requerido

 

Tipo Especial

catCFDI:c_Moneda

 

 

TipoCambio

 

Descripción

Atributo condicional para representar el tipo de cambio FIX conforme con la moneda usada. Es requerido cuando la clave de moneda es distinta de MXN y de XXX. El valor debe reflejar el número de pesos mexicanos que equivalen a una unidad de la divisa señalada en el atributo moneda. Si el valor 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.

 

Uso

opcional

 

Tipo Base

xs:decimal

 

Valor Mínimo Incluyente

0.000001

 

Posiciones Decimales

6

 

Espacio en Blanco

Colapsar

 

Total

 

Descripción

Atributo requerido para representar la suma del subtotal, menos los descuentos aplicables, más las contribuciones recibidas (impuestos trasladados - federales y/o locales, derechos, productos, aprovechamientos, aportaciones de seguridad social, contribuciones de mejoras) menos los impuestos retenidos federales y/o locales. Si el valor es superior al límite que establezca el SAT en la Resolución Miscelánea Fiscal vigente, 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. No se permiten valores negativos.

 

Uso

requerido

 

Tipo Especial

tdCFDI:t_Importe

 

 

TipoDeComprobante

 

Descripción

Atributo requerido para expresar la clave del efecto del comprobante fiscal para el contribuyente emisor.

 

Uso

requerido

 

Tipo Especial

catCFDI:c_TipoDeComprobante

 

Exportacion

 

Descripción

Atributo requerido para expresar si el comprobante ampara una operación de exportación.

 

Uso

requerido

 

Tipo Especial

catCFDI:c_Exportacion

 

MetodoPago

 

Descripción

Atributo condicional para precisar la clave del método de pago que aplica para este comprobante fiscal digital por Internet, conforme al Artículo 29-A fracción VII incisos a y b del CFF.

 

Uso

opcional

 

Tipo Especial

catCFDI:c_MetodoPago

 

LugarExpedicion

 

Descripción

Atributo requerido para incorporar el código postal del lugar de expedición del comprobante (domicilio de la matriz o de la sucursal).

 

Uso

requerido

 

Tipo Especial

catCFDI:c_CodigoPostal

 

Confirmacion

 

Descripción

Atributo condicional para registrar la clave de confirmación que entregue el PAC para expedir el comprobante con importes grandes, con un tipo de cambio fuera del rango establecido o con ambos casos. Es requerido cuando se registra un tipo de cambio o un total fuera del rango establecido.

 

Uso

opcional

 

Tipo Base

xs:string

 

Longitud

5

 

Espacio en Blanco

Colapsar

 

Patrón

[0-9a-zA-Z]{5}

 

 

Elementos Hijo (min,max)

 

 

Secuencia (1, 1)

InformacionGlobal (0, 1)

CfdiRelacionados (0, Ilimitado)

Emisor (1, 1)

Receptor (1, 1)

Conceptos (1, 1)

Impuestos (0, 1)

Complemento (0, 1)

Addenda (0, 1)

 

Elemento: InformacionGlobal

 

Diagrama

 

 

Descripción

 

 

Nodo condicional para precisar la información relacionada con el comprobante global.

 

Atributos

 

 

Periodicidad

 

Descripción

Atributo requerido para expresar el período al que corresponde la información del comprobante global.

 

Uso

requerido

 

Tipo Especial

catCFDI:c_Periodicidad

 

Meses

 

Descripción

Atributo requerido para expresar el mes o los meses al que corresponde la información del comprobante global.

 

Uso

requerido

 

Tipo Especial

catCFDI:c_Meses

 

Año

 

Descripción

Atributo requerido para expresar el año al que corresponde la información del comprobante global.

 

Uso

requerido

 

Tipo Base

xs:short

 

Valor Mínimo Incluyente

2021

 

Espacio en Blanco

Colapsar

 

 

Elemento: CfdiRelacionados

 

Diagrama

 

 

Descripción

 

 

Nodo opcional para precisar la información de los comprobantes relacionados.

 

Atributos

 

 

TipoRelacion

 

Descripción

Atributo requerido para indicar la clave de la relación que existe entre éste que se está generando y el o los CFDI previos.

 

Uso

requerido

 

Tipo Especial

catCFDI:c_TipoRelacion

 

 

Elementos Hijo (min,max)

 

 

Secuencia (1, 1)

CfdiRelacionado (1, Ilimitado)

 

 

Elemento: CfdiRelacionado

 

Diagrama

 

 

Descripción

 

 

Nodo requerido para precisar la información de los comprobantes relacionados.

 

 

Atributos

 

 

UUID

 

Descripción

Atributo requerido para registrar el folio fiscal (UUID) de un CFDI relacionado con el presente comprobante, por ejemplo: Si el CFDI relacionado es un comprobante de traslado que sirve para registrar el movimiento de la mercancía. Si este comprobante se usa como nota de crédito o nota de débito del comprobante relacionado. Si este comprobante es una devolución sobre el comprobante relacionado. Si éste sustituye a una factura cancelada.

 

Uso

requerido

 

Tipo Base

xs:string

 

Longitud

36

 

Espacio en Blanco

Colapsar

 

Patrón

[a-f0-9A-F]{8}-[a-f0-9A-F]{4}-[a-f0-9A-F]{4}-[a-f0-9A-F]{4}-[a-f0-9A-F]{12}

 

 

Elemento: Emisor

 

Diagrama

 

 

Descripción

 

 

Nodo requerido para expresar la información del contribuyente emisor del comprobante.

 

 

Atributos

 

 

Rfc

 

Descripción

Atributo requerido para registrar la Clave del Registro Federal de Contribuyentes correspondiente al contribuyente emisor del comprobante.

 

Uso

requerido

 

Tipo Especial

tdCFDI:t_RFC

 

Nombre

 

Descripción

Atributo requerido para registrar el nombre, denominación o razón social del contribuyente inscrito en el RFC, del emisor del comprobante.

 

Uso

requerido

 

Tipo Base

xs:string

 

Longitud Mínima

1

 

Longitud Máxima

254

 

Espacio en Blanco

Colapsar

 

Patrón

[^|]{1,254}

 

RegimenFiscal

 

Descripción

Atributo requerido para incorporar la clave del régimen del contribuyente emisor al que aplicará el efecto fiscal de este comprobante.

 

Uso

requerido

 

Tipo Especial

catCFDI:c_RegimenFiscal

 

FacAtrAdquirente

 

Descripción

Atributo condicional para expresar el número de operación proporcionado por el SAT cuando se trate de un comprobante a través de un PCECFDI o un PCGCFDISP.

 

Uso

opcional

 

Tipo Base

xs:string

 

Longitud

10

 

Espacio en Blanco

Colapsar

 

Patrón

[0-9]{10}

 

 

Elemento: Receptor

 

Diagrama

 

 

 

Descripción

 

 

Nodo requerido para precisar la información del contribuyente receptor del comprobante.

 

Atributos

 

 

Rfc

 

Descripción

Atributo requerido para registrar la Clave del Registro Federal de Contribuyentes correspondiente al contribuyente receptor del comprobante.

 

Uso

requerido

 

Tipo Especial

tdCFDI:t_RFC

 

Nombre

 

Descripción

Atributo requerido para registrar el nombre(s), primer apellido, segundo apellido, según corresponda, denominación o razón social del contribuyente, inscrito en el RFC, del receptor del comprobante.

 

Uso

requerido

 

Tipo Base

xs:string

 

Longitud Mínima

1

 

Longitud Máxima

254

 

Espacio en Blanco

Colapsar

 

Patrón

[^|]{1,254}

 

 

DomicilioFiscalReceptor

 

Descripción

Atributo requerido para registrar el código postal del domicilio fiscal del receptor del comprobante.

 

Uso

requerido

 

Tipo Base

xs:string

 

Longitud

5

 

Espacio en Blanco

Colapsar

 

Patrón

[0-9]{5}

 

ResidenciaFiscal

 

Descripción

Atributo condicional para registrar la clave del país de residencia para efectos fiscales del receptor del comprobante, cuando se trate de un extranjero, y que es conforme con la especificación ISO 3166-1 alpha-3. Es requerido cuando se incluya el complemento de comercio exterior o se registre el atributo NumRegIdTrib.

 

Uso

opcional

 

Tipo Especial

catCFDI:c_Pais

 

NumRegIdTrib

 

Descripción

Atributo condicional para expresar el número de registro de identidad fiscal del receptor cuando sea residente en el extranjero. Es requerido cuando se incluya el complemento de comercio exterior.

 

Uso

opcional

 

Tipo Base

xs:string

 

Longitud Mínima

1

 

Longitud Máxima

40

 

Espacio en Blanco

Colapsar

 

RegimenFiscalReceptor

 

Descripción

Atributo requerido para incorporar la clave del régimen fiscal del contribuyente receptor al que aplicará el efecto fiscal de este comprobante.

 

Uso

requerido

 

Tipo Especial

catCFDI:c_RegimenFiscal

 

UsoCFDI

 

Descripción

Atributo requerido para expresar la clave del uso que dará a esta factura el receptor del CFDI.

 

Uso

requerido

 

Tipo Especial

catCFDI:c_UsoCFDI

 

 

Elemento: Conceptos

 

Diagrama

 

 

Descripción

 

 

Nodo requerido para listar los conceptos cubiertos por el comprobante.

 

Elementos Hijo (min,max)

 

 

Secuencia (1, 1)

Concepto (1, Ilimitado)

 

Elemento: Concepto

 

Diagrama

 

 

 

Descripción

 

 

Nodo requerido para registrar la información detallada de un bien o servicio amparado en el comprobante.

 

 

Atributos

 

 

ClaveProdServ

 

Descripción

Atributo requerido para expresar la clave del producto o del servicio amparado por el presente concepto. Es requerido y deben utilizar las claves del catálogo de productos y servicios, cuando los conceptos que registren por sus actividades correspondan con dichos conceptos.

 

Uso

requerido

 

Tipo Especial

catCFDI:c_ClaveProdServ

 

NoIdentificacion

 

Descripción

Atributo opcional para expresar el número de parte, identificador del producto o del servicio, la clave de producto o servicio, SKU o equivalente, propia de la operación del emisor, amparado por el presente concepto. Opcionalmente se puede utilizar claves del estándar GTIN.

 

Uso

opcional

 

Tipo Base

xs:string

 

Longitud Mínima

1

 

Longitud Máxima

100

 

Espacio en Blanco

Colapsar

 

Patrón

[^|]{1,100}

 

Cantidad

 

Descripción

Atributo requerido para precisar la cantidad de bienes o servicios del tipo particular definido por el presente concepto.

 

Uso

requerido

 

Tipo Base

xs:decimal

 

Valor Mínimo Incluyente

0.000001

 

Posiciones Decimales

6

 

Espacio en Blanco

Colapsar

 

 

ClaveUnidad

 

Descripción

Atributo requerido para precisar la clave de unidad de medida estandarizada aplicable para la cantidad expresada en el concepto. La unidad debe corresponder con la descripción del concepto.

 

Uso

requerido

 

Tipo Especial

catCFDI:c_ClaveUnidad

 

Unidad

 

Descripción

Atributo opcional para precisar la unidad de medida propia de la operación del emisor, aplicable para la cantidad expresada en el concepto. La unidad debe corresponder con la descripción del concepto.

 

Uso

opcional

 

Tipo Base

xs:string

 

Longitud Mínima

1

 

Longitud Máxima

20

 

Espacio en Blanco

Colapsar

 

Patrón

[^|]{1,20}

 

 

Descripcion

 

Descripción

Atributo requerido para precisar la descripción del bien o servicio cubierto por el presente concepto.

 

Uso

requerido

 

Tipo Base

xs:string

 

Longitud Mínima

1

 

Longitud Máxima

1000

 

Espacio en Blanco

Colapsar

 

Patrón

[^|]{1,1000}

 

ValorUnitario

 

Descripción

Atributo requerido para precisar el valor o precio unitario del bien o servicio cubierto por el presente concepto.

 

Uso

requerido

 

Tipo Especial

tdCFDI:t_Importe

 

Importe

 

Descripción

Atributo requerido para precisar el importe total de los bienes o servicios del presente concepto. Debe ser equivalente al resultado de multiplicar la cantidad por el valor unitario expresado en el concepto. No se permiten valores negativos.

 

Uso

requerido

 

Tipo Especial

tdCFDI:t_Importe

 

Descuento

 

Descripción

Atributo opcional para representar el importe de los descuentos aplicables al concepto. No se permiten valores negativos.

 

Uso

opcional

 

Tipo Especial

tdCFDI:t_Importe

 

ObjetoImp

 

Descripción

Atributo requerido para expresar si la operación comercial es objeto o no de impuesto.

 

Uso

requerido

 

Tipo Especial

catCFDI:c_ObjetoImp

 

 

 

Elementos Hijo (min,max)

 

 

Secuencia (1, 1)

Impuestos (0, 1)

ACuentaTerceros (0, 1)

InformacionAduanera (0, Ilimitado)

CuentaPredial (0, Ilimitado)

ComplementoConcepto (0, 1)

Parte (0, Ilimitado)

 

Elemento: Impuestos

 

Diagrama

 

 

Descripción

 

 

Nodo condicional para capturar los impuestos aplicables al presente concepto.

 

Elementos Hijo (min,max)

 

 

Secuencia (1, 1)

Traslados (0, 1)

Retenciones (0, 1)

 

Elemento: Traslados

 

Diagrama

 

 

Descripción

 

 

Nodo opcional para asentar los impuestos trasladados aplicables al presente concepto.

 

Elementos Hijo (min,max)

 

 

Secuencia (1, 1)

Traslado (1, Ilimitado)

 

Elemento: Traslado

 

Diagrama

 

 

Descripción

 

 

Nodo requerido para asentar la información detallada de un traslado de impuestos aplicable al presente concepto.

 

 

Atributos

 

 

Base

 

Descripción

Atributo requerido para señalar la base para el cálculo del impuesto, la determinación de la base se realiza de acuerdo con las disposiciones fiscales vigentes. No se permiten valores negativos.

 

Uso

requerido

 

Tipo Base

xs:decimal

 

Valor Mínimo Incluyente

0.000001

 

Posiciones Decimales

6

 

Espacio en Blanco

Colapsar

 

Impuesto

 

Descripción

Atributo requerido para señalar la clave del tipo de impuesto trasladado aplicable al concepto.

 

Uso

requerido

 

Tipo Especial

catCFDI:c_Impuesto

 

TipoFactor

 

Descripción

Atributo requerido para señalar la clave del tipo de factor que se aplica a la base del impuesto.

 

Uso

requerido

 

Tipo Especial

catCFDI:c_TipoFactor

 

TasaOCuota

 

Descripción

Atributo condicional para señalar el valor de la tasa o cuota del impuesto que se traslada para el presente concepto. Es requerido cuando el atributo TipoFactor tenga una clave que corresponda a Tasa o Cuota.

 

Uso

opcional

 

Tipo Base

xs:decimal

 

Valor Mínimo Incluyente

0.000000

 

Posiciones Decimales

6

 

Espacio en Blanco

Colapsar

 

Importe

 

Descripción

Atributo condicional para señalar el importe del impuesto trasladado que aplica al concepto. No se permiten valores negativos. Es requerido cuando TipoFactor sea Tasa o Cuota.

 

Uso

opcional

 

Tipo Especial

tdCFDI:t_Importe

 

 

Elemento: Retenciones

 

Diagrama

 

 

Descripción

 

 

Nodo opcional para asentar los impuestos retenidos aplicables al presente concepto.

 

Elementos Hijo (min,max)

 

 

Secuencia (1, 1)

Retencion (1, Ilimitado)

 

Elemento: Retencion

 

Diagrama

 

 

Descripción

 

 

Nodo requerido para asentar la información detallada de una retención de impuestos aplicable al presente concepto.

 

Atributos

 

 

 

Base

 

Descripción

Atributo requerido para señalar la base para el cálculo de la retención, la determinación de la base se realiza de acuerdo con las disposiciones fiscales vigentes. No se permiten valores negativos.

 

Uso

requerido

 

Tipo Base

xs:decimal

 

Valor Mínimo Incluyente

0.000001

 

Posiciones Decimales

6

 

Espacio en Blanco

Colapsar

 

Impuesto

 

Descripción

Atributo requerido para señalar la clave del tipo de impuesto retenido aplicable al concepto.

 

Uso

requerido

 

Tipo Especial

catCFDI:c_Impuesto

 

TipoFactor

 

Descripción

Atributo requerido para señalar la clave del tipo de factor que se aplica a la base del impuesto.

 

Uso

requerido

 

Tipo Especial

catCFDI:c_TipoFactor

 

TasaOCuota

 

Descripción

Atributo requerido para señalar la tasa o cuota del impuesto que se retiene para el presente concepto.

 

Uso

requerido

 

Tipo Base

xs:decimal

 

Valor Mínimo Incluyente

0.000000

 

Posiciones Decimales

6

 

Espacio en Blanco

Colapsar

 

Importe

 

Descripción

Atributo requerido para señalar el importe del impuesto retenido que aplica al concepto. No se permiten valores negativos.

 

Uso

requerido

 

Tipo Especial

tdCFDI:t_Importe

 

 

Elemento: ACuentaTerceros

 

Diagrama

 

 

Descripción

 

 

Nodo opcional para registrar información del contribuyente Tercero, a cuenta del que se realiza la operación.

 

 

Atributos

 

 

RfcACuentaTerceros

 

Descripción

Atributo requerido para registrar la Clave del Registro Federal de Contribuyentes del contribuyente Tercero, a cuenta del que se realiza la operación.

 

Uso

requerido

 

Tipo Especial

tdCFDI:t_RFC

 

NombreACuentaTerceros

 

Descripción

Atributo requerido para registrar el nombre, denominación o razón social del contribuyente Tercero correspondiente con el Rfc, a cuenta del que se realiza la operación.

 

Uso

requerido

 

Tipo Base

xs:string

 

Longitud Mínima

1

 

Longitud Máxima

254

 

Espacio en Blanco

Colapsar

 

Patrón

[^|]{1,254}

 

RegimenFiscalACuentaTerceros

 

Descripción

Atributo requerido para incorporar la clave del régimen del contribuyente Tercero, a cuenta del que se realiza la operación.

 

Uso

requerido

 

Tipo Especial

catCFDI:c_RegimenFiscal

 

DomicilioFiscalACuentaTerceros

 

Descripción

Atributo requerido para incorporar el código postal del domicilio fiscal del Tercero, a cuenta del que se realiza la operación.

 

Uso

requerido

 

Tipo Base

xs:string

 

Longitud

5

 

Espacio en Blanco

Colapsar

 

Patrón

[0-9]{5}

 

 

Elemento: InformacionAduanera

 

Diagrama

 

 

Descripción

 

 

Nodo opcional para introducir la información aduanera aplicable cuando se trate de ventas de primera mano de mercancías importadas o se trate de operaciones de comercio exterior con bienes o servicios.

 

Atributos

 

 

NumeroPedimento

 

Descripción

Atributo requerido para expresar el número del pedimento que ampara la importación del bien que se expresa en el siguiente formato: últimos 2 dígitos del año de validación seguidos por dos espacios, 2 dígitos de la aduana de despacho seguidos por dos espacios, 4 dígitos del número de la patente seguidos por dos espacios, 1 dígito que corresponde al último dígito del año en curso, salvo que se trate de un pedimento consolidado iniciado en el año inmediato anterior o del pedimento original de una rectificación, seguido de 6 dígitos de la numeración progresiva por aduana.

 

Uso

requerido

 

Tipo Base

xs:string

 

Longitud

21

 

Patrón

[0-9]{2} [0-9]{2} [0-9]{4} [0-9]{7}

 

 

Elemento: CuentaPredial

 

Diagrama

 

 

Descripción

 

 

Nodo opcional para asentar el número de cuenta predial con el que fue registrado el inmueble, en el sistema catastral de la entidad federativa de que trate, o bien para incorporar los datos de identificación del certificado de participación inmobiliaria no amortizable.

 

Atributos

 

 

Numero

 

Descripción

Atributo requerido para precisar el número de la cuenta predial del inmueble cubierto por el presente concepto, o bien para incorporar los datos de identificación del certificado de participación inmobiliaria no amortizable, tratándose de arrendamiento.

 

Uso

requerido

 

Tipo Base

xs:string

 

Longitud Mínima

1

 

Longitud Máxima

150

 

Espacio en Blanco

Colapsar

 

Patrón

[0-9a-zA-Z]{1,150}

 

 

Elemento: ComplementoConcepto

 

Diagrama

 

 

Descripción

 

 

Nodo opcional donde se incluyen los nodos complementarios de extensión al concepto definidos por el SAT, de acuerdo con las disposiciones particulares para un sector o actividad específica.

 

Elementos Hijo (min,max)

 

 

Secuencia (1, 1)

 

 

Elemento: Parte

 

Diagrama

 

 

Descripción

 

 

Nodo opcional para expresar las partes o componentes que integran la totalidad del concepto expresado en el comprobante fiscal digital por Internet.

 

Atributos

 

 

 

ClaveProdServ

 

Descripción

Atributo requerido para expresar la clave del producto o del servicio amparado por la presente parte. Es requerido y deben utilizar las claves del catálogo de productos y servicios, cuando los conceptos que registren por sus actividades correspondan con dichos conceptos.

 

Uso

requerido

 

Tipo Especial

catCFDI:c_ClaveProdServ

 

NoIdentificacion

 

Descripción

Atributo opcional para expresar el número de serie, número de parte del bien o identificador del producto o del servicio amparado por la presente parte. Opcionalmente se puede utilizar claves del estándar GTIN.

 

Uso

opcional

 

Tipo Base

xs:string

 

Longitud Mínima

1

 

Longitud Máxima

100

 

Espacio en Blanco

Colapsar

 

Patrón

[^|]{1,100}

 

Cantidad

 

Descripción

Atributo requerido para precisar la cantidad de bienes o servicios del tipo particular definido por la presente parte.

 

Uso

requerido

 

Tipo Base

xs:decimal

 

Valor Mínimo Incluyente

0.000001

 

Posiciones Decimales

6

 

Espacio en Blanco

Colapsar

 

Unidad

 

Descripción

Atributo opcional para precisar la unidad de medida propia de la operación del emisor, aplicable para la cantidad expresada en la parte. La unidad debe corresponder con la descripción de la parte.

 

Uso

opcional

 

Tipo Base

xs:string

 

Longitud Mínima

1

 

Longitud Máxima

20

 

Espacio en Blanco

Colapsar

 

Patrón

[^|]{1,20}

 

Descripcion

 

Descripción

Atributo requerido para precisar la descripción del bien o servicio cubierto por la presente parte.

 

Uso

requerido

 

Tipo Base

xs:string

 

Longitud Mínima

1

 

Longitud Máxima

1000

 

Espacio en Blanco

Colapsar

 

Patrón

[^|]{1,1000}

 

ValorUnitario

 

Descripción

Atributo opcional para precisar el valor o precio unitario del bien o servicio cubierto por la presente parte. No se permiten valores negativos.

 

Uso

opcional

 

Tipo Especial

tdCFDI:t_Importe

 

Importe

 

Descripción

Atributo opcional para precisar el importe total de los bienes o servicios de la presente parte. Debe ser equivalente al resultado de multiplicar la cantidad por el valor unitario expresado en la parte. No se permiten valores negativos.

 

Uso

opcional

 

Tipo Especial

tdCFDI:t_Importe

 

 

Elementos Hijo (min,max)

 

 

Secuencia (1, 1)

InformacionAduanera (0, Ilimitado)

 

Elemento: InformacionAduanera

 

Diagrama

 

 

Descripción

 

 

Nodo opcional para introducir la información aduanera aplicable cuando se trate de ventas de primera mano de mercancías importadas o se trate de operaciones de comercio exterior con bienes o servicios.

 

Atributos

 

 

NumeroPedimento

 

Descripción

Atributo requerido para expresar el número del pedimento que ampara la importación del bien que se expresa en el siguiente formato: últimos 2 dígitos del año de validación seguidos por dos espacios, 2 dígitos de la aduana de despacho seguidos por dos espacios, 4 dígitos del número de la patente seguidos por dos espacios, 1 dígito que corresponde al último dígito del año en curso, salvo que se trate de un pedimento consolidado iniciado en el año inmediato anterior o del pedimento original de una rectificación, seguido de 6 dígitos de la numeración progresiva por aduana.

 

Uso

requerido

 

Tipo Base

xs:string

 

Longitud

21

 

Patrón

[0-9]{2} [0-9]{2} [0-9]{4} [0-9]{7}

 

 

Elemento: Impuestos

 

Diagrama

 

 

Descripción

 

 

Nodo condicional para expresar el resumen de los impuestos aplicables.

 

Atributos

 

 

TotalImpuestosRetenidos

 

Descripción

Atributo condicional para expresar el total de los impuestos retenidos que se desprenden de los conceptos expresados en el comprobante fiscal digital por Internet. No se permiten valores negativos. Es requerido cuando en los conceptos se registren impuestos retenidos.

 

Uso

opcional

 

Tipo Especial

tdCFDI:t_Importe

 

TotalImpuestosTrasladados

 

Descripción

Atributo condicional para expresar el total de los impuestos trasladados que se desprenden de los conceptos expresados en el comprobante fiscal digital por Internet. No se permiten valores negativos. Es requerido cuando en los conceptos se registren impuestos trasladados.

 

Uso

opcional

 

Tipo Especial

tdCFDI:t_Importe

 

 

Elementos Hijo (min,max)

 

 

Secuencia (1, 1)

Retenciones (0, 1)

Traslados (0, 1)

 

Elemento: Retenciones

 

Diagrama

 

 

Descripción

 

 

Nodo condicional para capturar los impuestos retenidos aplicables. Es requerido cuando en los conceptos se registre algún impuesto retenido.

 

Elementos Hijo (min,max)

 

 

Secuencia (1, 1)

Retencion (1, Ilimitado)

 

Elemento: Retencion

 

Diagrama

 

 

Descripción

 

 

Nodo requerido para la información detallada de una retención de impuesto específico.

 

Atributos

 

 

Impuesto

 

Descripción

Atributo requerido para señalar la clave del tipo de impuesto retenido.

 

Uso

requerido

 

Tipo Especial

catCFDI:c_Impuesto

 

Importe

 

Descripción

Atributo requerido para señalar el monto del impuesto retenido. No se permiten valores negativos.

 

Uso

requerido

 

Tipo Especial

tdCFDI:t_Importe

 

 

Elemento: Traslados

 

Diagrama

 

 

Descripción

 

 

Nodo condicional para capturar los impuestos trasladados aplicables. Es requerido cuando en los conceptos se registre un impuesto trasladado.

 

Elementos Hijo (min,max)

 

 

Secuencia (1, 1)

Traslado (1, Ilimitado)

 

Elemento: Traslado

 

Diagrama

 

 

Descripción

 

 

Nodo requerido para la información detallada de un traslado de impuesto específico.

 

 

Atributos

 

 

Base

 

Descripción

Atributo requerido para señalar la suma de los atributos Base de los conceptos del impuesto trasladado. No se permiten valores negativos.

 

Uso

requerido

 

Tipo Especial

tdCFDI:t_Importe

 

Impuesto

 

Descripción

Atributo requerido para señalar la clave del tipo de impuesto trasladado.

 

Uso

requerido

 

Tipo Especial

catCFDI:c_Impuesto

 

TipoFactor

 

Descripción

Atributo requerido para señalar la clave del tipo de factor que se aplica a la base del impuesto.

 

Uso

requerido

 

Tipo Especial

catCFDI:c_TipoFactor

 

TasaOCuota

 

Descripción

Atributo condicional para señalar el valor de la tasa o cuota del impuesto que se traslada por los conceptos amparados en el comprobante.

 

Uso

opcional

 

Tipo Base

xs:decimal

 

Valor Mínimo Incluyente

0.000000

 

Posiciones Decimales

6

 

Espacio en Blanco

Colapsar

 

Importe

 

Descripción

Atributo condicional para señalar la suma del importe del impuesto trasladado, agrupado por impuesto, TipoFactor y TasaOCuota. No se permiten valores negativos.

 

Uso

opcional

 

Tipo Especial

tdCFDI:t_Importe

 

 

Elemento: Complemento

 

Diagrama

 

 

Descripción

 

 

Nodo opcional donde se incluye el complemento Timbre Fiscal Digital de manera obligatoria y los nodos complementarios determinados por el SAT, de acuerdo con las disposiciones particulares para un sector o actividad específica.

 

Elementos Hijo (min,max)

 

 

Secuencia (1, 1)

 

 

Elemento: Addenda

 

Diagrama

 

 

Descripción

 

 

Nodo opcional para recibir las extensiones al presente formato que sean de utilidad al contribuyente. Para las reglas de uso del mismo, referirse al formato origen.

 

Elementos Hijo (min,max)

 

 

Secuencia (1, 1)

 

 

 

Código Fuente

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:cfdi="http://www.sat.gob.mx/cfd/4" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:catCFDI="http://www.sat.gob.mx/sitio_internet/cfd/catalogos" xmlns:tdCFDI="http://www.sat.gob.mx/sitio_internet/cfd/tipoDatos/tdCFDI" targetNamespace="http://www.sat.gob.mx/cfd/4" elementFormDefault="qualified" attributeFormDefault="unqualified">

   <xs:import namespace="http://www.sat.gob.mx/sitio_internet/cfd/catalogos" schemaLocation="http://www.sat.gob.mx/sitio_internet/cfd/catalogos/catCFDI.xsd"/>

   <xs:import namespace="http://www.sat.gob.mx/sitio_internet/cfd/tipoDatos/tdCFDI" schemaLocation="http://www.sat.gob.mx/sitio_internet/cfd/tipoDatos/tdCFDI/tdCFDI.xsd"/>

   <xs:element name="Comprobante">

      <xs:annotation>

         <xs:documentation>Estándar de Comprobante Fiscal Digital por Internet.</xs:documentation>

      </xs:annotation>

      <xs:complexType>

         <xs:sequence>

 

            <xs:element name="InformacionGlobal" minOccurs="0">

               <xs:annotation>

                  <xs:documentation>Nodo condicional para precisar la información relacionada con el comprobante global.</xs:documentation>

               </xs:annotation>

               <xs:complexType>

                  <xs:attribute name="Periodicidad" type="catCFDI:c_Periodicidad" use="required">

                     <xs:annotation>

                        <xs:documentation>Atributo requerido para expresar el período al que corresponde la información del comprobante global.</xs:documentation>

                     </xs:annotation>

                  </xs:attribute>

                  <xs:attribute name="Meses" type="catCFDI:c_Meses" use="required">

                     <xs:annotation>

                        <xs:documentation>Atributo requerido para expresar el mes o los meses al que corresponde la información del comprobante global.</xs:documentation>

                     </xs:annotation>

                  </xs:attribute>

                  <xs:attribute name="Año" use="required">

                     <xs:annotation>

                        <xs:documentation>Atributo requerido para expresar el año al que corresponde la información del comprobante global.</xs:documentation>

                     </xs:annotation>

                     <xs:simpleType>

                        <xs:restriction base="xs:short">

                           <xs:minInclusive value="2021"/>

                           <xs:whiteSpace value="collapse"/>

                        </xs:restriction>

                     </xs:simpleType>

                  </xs:attribute>

               </xs:complexType>

            </xs:element>

            <xs:element name="CfdiRelacionados" minOccurs="0" maxOccurs="unbounded">

               <xs:annotation>

                  <xs:documentation>Nodo opcional para precisar la información de los comprobantes relacionados.</xs:documentation>

               </xs:annotation>

               <xs:complexType>

 

<xs:sequence>

                     <xs:element name="CfdiRelacionado" maxOccurs="unbounded">

                        <xs:annotation>

                           <xs:documentation>Nodo requerido para precisar la información de los comprobantes relacionados.</xs:documentation>

                        </xs:annotation>

                        <xs:complexType>

                           <xs:attribute name="UUID" use="required">

                              <xs:annotation>

                                 <xs:documentation>Atributo requerido para registrar el folio fiscal (UUID) de un CFDI  relacionado con el presente comprobante, por ejemplo: Si el CFDI relacionado es un comprobante de  traslado que sirve para registrar el movimiento de la mercancía. Si este comprobante se usa como nota de  crédito o nota de débito del comprobante relacionado. Si este comprobante es una devolución sobre el  comprobante relacionado. Si éste sustituye a una factura cancelada.</xs:documentation>

 

                              </xs:annotation>

                              <xs:simpleType>

                                 <xs:restriction base="xs:string">

                                    <xs:length value="36"/>

                                    <xs:whiteSpace value="collapse"/>

                                    <xs:pattern value="[a-f0-9A-F]{8}-[a-f0-9A-F]{4}-[a-f0-9A-F]{4}-[a-f0-9A-F]{4}-[a-f0-9A-F]{12}"/>

                                 </xs:restriction>

                              </xs:simpleType>

                           </xs:attribute>

                        </xs:complexType>

                     </xs:element>

                  </xs:sequence>

                  <xs:attribute name="TipoRelacion" type="catCFDI:c_TipoRelacion" use="required">

                     <xs:annotation>

                        <xs:documentation>Atributo requerido para indicar la clave de la relación que existe entre éste que se está generando y el o los CFDI previos.</xs:documentation>

                     </xs:annotation>

                  </xs:attribute>

               </xs:complexType>

            </xs:element>

            <xs:element name="Emisor">

               <xs:annotation>

                  <xs:documentation>Nodo requerido para expresar la información del contribuyente emisor del comprobante.</xs:documentation>

               </xs:annotation>

               <xs:complexType>

                  <xs:attribute name="Rfc" type="tdCFDI:t_RFC" use="required">

                     <xs:annotation>

                        <xs:documentation>Atributo requerido para registrar la Clave del Registro Federal de Contribuyentes correspondiente al contribuyente emisor del comprobante.</xs:documentation>

                     </xs:annotation>

                  </xs:attribute>

                  <xs:attribute name="Nombre" use="required">

                     <xs:annotation>

                        <xs:documentation>Atributo requerido para registrar el nombre, denominación o razón social del contribuyente inscrito en el RFC, del emisor del comprobante.</xs:documentation>

                     </xs:annotation>

                     <xs:simpleType>

                        <xs:restriction base="xs:string">

                           <xs:minLength value="1"/>

                           <xs:maxLength value="254"/>

                           <xs:whiteSpace value="collapse"/>

                           <xs:pattern value="[^|]{1,254}"/>

                        </xs:restriction>

                     </xs:simpleType>

                  </xs:attribute>

                  <xs:attribute name="RegimenFiscal" type="catCFDI:c_RegimenFiscal" use="required">

                     <xs:annotation>

 

                        <xs:documentation>Atributo requerido para incorporar la clave del régimen del contribuyente  emisor al que aplicará el efecto fiscal de este comprobante.</xs:documentation>

                     </xs:annotation>

                  </xs:attribute>

                  <xs:attribute name="FacAtrAdquirente" use="optional">

                     <xs:annotation>

                        <xs:documentation>Atributo condicional para expresar el número de operación proporcionado  por el SAT cuando se trate de un comprobante a través de un PCECFDI o un PCGCFDISP.</xs:documentation>

                     </xs:annotation>

                     <xs:simpleType>

                        <xs:restriction base="xs:string">

                           <xs:whiteSpace value="collapse"/>

                           <xs:length value="10"/>

                           <xs:pattern value="[0-9]{10}"/>

                        </xs:restriction>

                     </xs:simpleType>

                  </xs:attribute>

               </xs:complexType>

            </xs:element>

            <xs:element name="Receptor">

               <xs:annotation>

                  <xs:documentation>Nodo requerido para precisar la información del contribuyente receptor del comprobante.</xs:documentation>

               </xs:annotation>

               <xs:complexType>

                  <xs:attribute name="Rfc" type="tdCFDI:t_RFC" use="required">

                     <xs:annotation>

                        <xs:documentation>Atributo requerido para registrar la Clave del Registro Federal de Contribuyentes correspondiente al contribuyente receptor del comprobante.</xs:documentation>

                     </xs:annotation>

                  </xs:attribute>

                  <xs:attribute name="Nombre" use="required">

                     <xs:annotation>

                        <xs:documentation>Atributo requerido para registrar el nombre(s), primer apellido, segundo apellido, según corresponda, denominación o razón social del contribuyente, inscrito en el RFC, del receptor del comprobante.</xs:documentation>

                     </xs:annotation>

                     <xs:simpleType>

                        <xs:restriction base="xs:string">

                           <xs:minLength value="1"/>

 

                           <xs:maxLength value="254"/>

                           <xs:whiteSpace value="collapse"/>

                           <xs:pattern value="[^|]{1,254}"/>

                        </xs:restriction>

                     </xs:simpleType>

                  </xs:attribute>

                  <xs:attribute name="DomicilioFiscalReceptor" use="required">

                     <xs:annotation>

                        <xs:documentation>Atributo requerido para registrar el código postal del domicilio fiscal del receptor del comprobante.</xs:documentation>

                     </xs:annotation>

                     <xs:simpleType>

                        <xs:restriction base="xs:string">

                           <xs:length value="5"/>

                           <xs:whiteSpace value="collapse"/>

                           <xs:pattern value="[0-9]{5}"/>

                        </xs:restriction>

                     </xs:simpleType>

                  </xs:attribute>

                  <xs:attribute name="ResidenciaFiscal" type="catCFDI:c_Pais" use="optional">

                     <xs:annotation>

                        <xs:documentation>Atributo condicional para registrar la clave del país de residencia para efectos fiscales del receptor del comprobante, cuando se trate de un extranjero, y que es conforme con la especificación ISO 3166-1 alpha-3. Es requerido cuando se incluya el complemento de comercio exterior o se registre el atributo NumRegIdTrib.</xs:documentation>

                     </xs:annotation>

 

</xs:attribute>

                  <xs:attribute name="NumRegIdTrib" use="optional">

                     <xs:annotation>

                        <xs:documentation>Atributo condicional para expresar el número de registro de identidad  fiscal del receptor cuando sea residente en el extranjero. Es requerido cuando se incluya el complemento  de comercio exterior.</xs:documentation>

                     </xs:annotation>

                     <xs:simpleType>

                        <xs:restriction base="xs:string">

                           <xs:minLength value="1"/>

                           <xs:maxLength value="40"/>

                           <xs:whiteSpace value="collapse"/>

                        </xs:restriction>

                     </xs:simpleType>

                  </xs:attribute>

                  <xs:attribute name="RegimenFiscalReceptor" type="catCFDI:c_RegimenFiscal" use="required">

                     <xs:annotation>

                        <xs:documentation>Atributo requerido para incorporar la clave del régimen fiscal del contribuyente receptor al que aplicará el efecto fiscal de este comprobante.</xs:documentation>

                     </xs:annotation>

                  </xs:attribute>

                  <xs:attribute name="UsoCFDI" type="catCFDI:c_UsoCFDI" use="required">

                     <xs:annotation>

                        <xs:documentation>Atributo requerido para expresar la clave del uso que dará a esta factura el receptor del CFDI.</xs:documentation>

                     </xs:annotation>

                  </xs:attribute>

               </xs:complexType>

            </xs:element>

            <xs:element name="Conceptos">

               <xs:annotation>

                  <xs:documentation>Nodo requerido para listar los conceptos cubiertos por el comprobante.</xs:documentation>

               </xs:annotation>

               <xs:complexType>

                  <xs:sequence>

                     <xs:element name="Concepto" maxOccurs="unbounded">

                        <xs:annotation>

                           <xs:documentation>Nodo requerido para registrar la información detallada de un bien o servicio amparado en el comprobante.</xs:documentation>

 

                        </xs:annotation>

                        <xs:complexType>

                           <xs:sequence>

                              <xs:element name="Impuestos" minOccurs="0">

                                 <xs:annotation>

                                    <xs:documentation>Nodo condicional para capturar los impuestos aplicables al presente concepto.</xs:documentation>

                                 </xs:annotation>

                                 <xs:complexType>

                                    <xs:sequence>

                                       <xs:element name="Traslados" minOccurs="0">

                                          <xs:annotation>

                                             <xs:documentation>Nodo opcional para asentar los impuestos trasladados aplicables al presente concepto.</xs:documentation>

                                          </xs:annotation>

                                          <xs:complexType>

                                             <xs:sequence>

                                                <xs:element name="Traslado" maxOccurs="unbounded">

                                                   <xs:annotation>

                                                      <xs:documentation>Nodo requerido para asentar la información detallada de un traslado de impuestos aplicable al presente concepto.</xs:documentation>

                                                   </xs:annotation>

                                                   <xs:complexType>

                                                      <xs:attribute name="Base" use="required">

                                                         <xs:annotation>

                                                            <xs:documentation>Atributo requerido para señalar la base para el cálculo del impuesto, la determinación de la base se realiza de acuerdo con las disposiciones fiscales vigentes. No se permiten valores negativos.</xs:documentation>

                                                         </xs:annotation>

                                                         <xs:simpleType>

                                                            <xs:restriction base="xs:decimal">

                                                               <xs:fractionDigits value="6"/>

                                                               <xs:minInclusive value="0.000001"/>

                                                               <xs:whiteSpace value="collapse"/>

                                                            </xs:restriction>

                                                         </xs:simpleType>

                                                      </xs:attribute>

                                                      <xs:attribute name="Impuesto" type="catCFDI:c_Impuesto" use="required">

                                                         <xs:annotation>

                                                            <xs:documentation>Atributo requerido para señalar la clave del tipo de impuesto trasladado aplicable al concepto.</xs:documentation>

                                                         </xs:annotation>

                                                      </xs:attribute>

                                                      <xs:attribute name="TipoFactor" type="catCFDI:c_TipoFactor" use="required">

                                                         <xs:annotation>

                                                            <xs:documentation>Atributo requerido para señalar la clave del tipo de factor que se aplica a la base del impuesto.</xs:documentation>

                                                         </xs:annotation>

                                                      </xs:attribute>

                                                      <xs:attribute name="TasaOCuota" use="optional">

                                                         <xs:annotation>

 

                                                            <xs:documentation>Atributo condicional para señalar el valor de la tasa o cuota del impuesto que se traslada para el presente concepto. Es requerido cuando el atributo TipoFactor tenga una clave que corresponda a Tasa o Cuota.</xs:documentation>

                                                         </xs:annotation>

                                                         <xs:simpleType>

                                                            <xs:restriction base="xs:decimal">

                                                               <xs:fractionDigits value="6"/>

                                                               <xs:minInclusive value="0.000000"/>

                                                               <xs:whiteSpace value="collapse"/>

                                                            </xs:restriction>

                                                         </xs:simpleType>

                                                      </xs:attribute>

                                                      <xs:attribute name="Importe" type="tdCFDI:t_Importe" use="optional">

                                                         <xs:annotation>

                                                            <xs:documentation>Atributo condicional para señalar el importe del impuesto trasladado que aplica al concepto. No se permiten valores negativos. Es requerido cuando TipoFactor sea Tasa o Cuota.</xs:documentation>

                                                         </xs:annotation>

                                                      </xs:attribute>

                                                   </xs:complexType>

                                                </xs:element>

                                             </xs:sequence>

                                          </xs:complexType>

                                       </xs:element>

                                       <xs:element name="Retenciones" minOccurs="0">

                                          <xs:annotation>

                                             <xs:documentation>Nodo opcional para asentar los impuestos retenidos aplicables al presente concepto.</xs:documentation>

                                          </xs:annotation>

                                          <xs:complexType>

                                             <xs:sequence>

                                                <xs:element name="Retencion" maxOccurs="unbounded">

                                                   <xs:annotation>

                                                      <xs:documentation>Nodo requerido para asentar la información detallada de una retención de impuestos aplicable al presente concepto.</xs:documentation>

                                                   </xs:annotation>

                                                   <xs:complexType>

                                                      <xs:attribute name="Base" use="required">

                                                         <xs:annotation>

 

<xs:documentation>Atributo requerido para señalar la base para el cálculo de la retención, la determinación de la base se realiza de acuerdo con las disposiciones fiscales vigentes. No se permiten valores negativos.</xs:documentation>

                                                         </xs:annotation>

                                                         <xs:simpleType>

                                                            <xs:restriction base="xs:decimal">

                                                               <xs:fractionDigits value="6"/>

                                                               <xs:minInclusive value="0.000001"/>

                                                               <xs:whiteSpace value="collapse"/>

                                                            </xs:restriction>

                                                         </xs:simpleType>

                                                      </xs:attribute>

                                                      <xs:attribute name="Impuesto" type="catCFDI:c_Impuesto" use="required">

 

                                                         <xs:annotation>

                                                            <xs:documentation>Atributo requerido para señalar la clave del tipo de impuesto retenido aplicable al concepto.</xs:documentation>

                                                         </xs:annotation>

                                                      </xs:attribute>

                                                      <xs:attribute name="TipoFactor" type="catCFDI:c_TipoFactor" use="required">

                                                         <xs:annotation>

                                                            <xs:documentation>Atributo requerido para señalar la clave del tipo de factor que se aplica a la base del impuesto.</xs:documentation>

                                                         </xs:annotation>

                                                      </xs:attribute>

                                                      <xs:attribute name="TasaOCuota" use="required">

                                                         <xs:annotation>

                                                            <xs:documentation>Atributo requerido para señalar la tasa o cuota del impuesto que se retiene para el presente concepto.</xs:documentation>

                                                         </xs:annotation>

                                                         <xs:simpleType>

                                                            <xs:restriction base="xs:decimal">

                                                               <xs:whiteSpace value="collapse"/>

                                                               <xs:minInclusive value="0.000000"/>

                                                               <xs:fractionDigits value="6"/>

                                                            </xs:restriction>

                                                         </xs:simpleType>

                                                      </xs:attribute>

                                                      <xs:attribute name="Importe" type="tdCFDI:t_Importe" use="required">

                                                         <xs:annotation>

                                                            <xs:documentation>Atributo requerido para señalar el importe del impuesto retenido que aplica al concepto. No se permiten valores negativos.</xs:documentation>

                                                         </xs:annotation>

                                                      </xs:attribute>

                                                   </xs:complexType>

                                                </xs:element>

                                             </xs:sequence>

                                          </xs:complexType>

                                       </xs:element>

                                    </xs:sequence>

                                 </xs:complexType>

                              </xs:element>

                              <xs:element name="ACuentaTerceros" minOccurs="0">

                                 <xs:annotation>

                                    <xs:documentation>Nodo opcional para registrar información del contribuyente Tercero, a cuenta del que se realiza la operación.</xs:documentation>

                                 </xs:annotation>

                                 <xs:complexType>

                                    <xs:attribute name="RfcACuentaTerceros" type="tdCFDI:t_RFC" use="required">

                                       <xs:annotation>

                                          <xs:documentation>Atributo requerido para registrar la Clave del Registro Federal de Contribuyentes del contribuyente Tercero, a cuenta del que se realiza la operación.</xs:documentation>

                                       </xs:annotation>

                                    </xs:attribute>

                                    <xs:attribute name="NombreACuentaTerceros" use="required">

 

<xs:annotation>

                                          <xs:documentation>Atributo requerido para registrar el nombre, denominación o razón social del contribuyente Tercero correspondiente con el Rfc, a cuenta del que se realiza la operación.</xs:documentation>

                                       </xs:annotation>

                                       <xs:simpleType>

                                          <xs:restriction base="xs:string">

                                             <xs:minLength value="1"/>

                                             <xs:maxLength value="254"/>

                                             <xs:whiteSpace value="collapse"/>

                                             <xs:pattern value="[^|]{1,254}"/>

                                          </xs:restriction>

                                       </xs:simpleType>

                                    </xs:attribute>

                                    <xs:attribute name="RegimenFiscalACuentaTerceros" type="catCFDI:c_RegimenFiscal" use="required">

                                       <xs:annotation>

                                          <xs:documentation>Atributo requerido para incorporar la clave del régimen del contribuyente Tercero, a cuenta del que se realiza la operación.</xs:documentation>

                                       </xs:annotation>

                                    </xs:attribute>

                                    <xs:attribute name="DomicilioFiscalACuentaTerceros" use="required">

                                       <xs:annotation>

                                          <xs:documentation>Atributo requerido para incorporar el código postal del domicilio fiscal del Tercero, a cuenta del que se realiza la operación.</xs:documentation>

                                       </xs:annotation>

                                       <xs:simpleType>

                                          <xs:restriction base="xs:string">

                                             <xs:length value="5"/>

                                             <xs:whiteSpace value="collapse"/>

                                             <xs:pattern value="[0-9]{5}"/>

                                          </xs:restriction>

                                       </xs:simpleType>

                                    </xs:attribute>

                                 </xs:complexType>

                              </xs:element>

                              <xs:element name="InformacionAduanera" minOccurs="0" maxOccurs="unbounded">

                                 <xs:annotation>

                                    <xs:documentation>Nodo opcional para introducir la información aduanera aplicable cuando se trate de ventas de primera mano de mercancías importadas o se trate de operaciones de comercio exterior con bienes o servicios.</xs:documentation>

 

                                 </xs:annotation>

                                 <xs:complexType>

                                    <xs:attribute name="NumeroPedimento" use="required">

                                       <xs:annotation>

                                          <xs:documentation>Atributo requerido para expresar el número del pedimento que ampara la importación del bien que se expresa en el siguiente formato: últimos 2 dígitos del año de validación seguidos por dos espacios, 2 dígitos de la aduana de despacho seguidos por dos espacios, 4 dígitos del número de la patente seguidos por dos espacios, 1 dígito que corresponde al último dígito del año en curso, salvo que se trate de un pedimento consolidado iniciado en el año inmediato anterior o del pedimento original de una rectificación, seguido de 6 dígitos de la numeración progresiva por aduana.</xs:documentation>

                                       </xs:annotation>

                                       <xs:simpleType>

                                          <xs:restriction base="xs:string">

                                             <xs:length value="21"/>

                                             <xs:pattern value="[0-9]{2}  [0-9]{2}  [0-9]{4}  [0-9]{7}"/>

                                          </xs:restriction>

                                       </xs:simpleType>

                                    </xs:attribute>

                                 </xs:complexType>

                              </xs:element>

                              <xs:element name="CuentaPredial" minOccurs="0" maxOccurs="unbounded">

                                 <xs:annotation>

                                    <xs:documentation>Nodo opcional para asentar el número de cuenta predial con el que fue registrado el inmueble, en el sistema catastral de la entidad federativa de que trate, o bien para incorporar los datos de identificación del certificado de participación inmobiliaria no amortizable.</xs:documentation>

                                 </xs:annotation>

 

                                 <xs:complexType>

                                    <xs:attribute name="Numero" use="required">

                                       <xs:annotation>

                                          <xs:documentation>Atributo requerido para precisar el número de la cuenta predial del inmueble cubierto por el presente concepto, o bien para incorporar los datos de identificación del certificado de participación inmobiliaria no amortizable, tratándose de arrendamiento.</xs:documentation>

                                       </xs:annotation>

                                       <xs:simpleType>

                                          <xs:restriction base="xs:string">

                                             <xs:minLength value="1"/>

                                             <xs:maxLength value="150"/>

                                             <xs:whiteSpace value="collapse"/>

                                             <xs:pattern value="[0-9a-zA-Z]{1,150}"/>

                                          </xs:restriction>

                                       </xs:simpleType>

                                    </xs:attribute>

                                 </xs:complexType>

                              </xs:element>

                              <xs:element name="ComplementoConcepto" minOccurs="0">

                                 <xs:annotation>

                                    <xs:documentation>Nodo opcional donde se incluyen los nodos complementarios de extensión al concepto definidos por el SAT, de acuerdo con las disposiciones particulares para un sector o actividad específica.</xs:documentation>

                                 </xs:annotation>

                                 <xs:complexType>

                                    <xs:sequence>

                                       <xs:any maxOccurs="unbounded"/>

                                    </xs:sequence>

                                 </xs:complexType>

                              </xs:element>

                              <xs:element name="Parte" minOccurs="0" maxOccurs="unbounded">

                                 <xs:annotation>

                                    <xs:documentation>Nodo opcional para expresar las partes o componentes que integran la totalidad del concepto expresado en el comprobante fiscal digital por Internet.</xs:documentation>

                                 </xs:annotation>

                                 <xs:complexType>

                                    <xs:sequence>

                                       <xs:element name="InformacionAduanera" minOccurs="0" maxOccurs="unbounded">

                                          <xs:annotation>

 

                                             <xs:documentation>Nodo opcional para introducir la información aduanera aplicable cuando se trate de ventas de primera mano de mercancías importadas o se trate de operaciones de comercio exterior con bienes o servicios.</xs:documentation>

                                          </xs:annotation>

                                          <xs:complexType>

                                             <xs:attribute name="NumeroPedimento" use="required">

                                                <xs:annotation>

                                                   <xs:documentation>Atributo requerido para expresar el número del pedimento que ampara la importación del bien que se expresa en el siguiente formato: últimos 2 dígitos del año de validación seguidos por dos espacios, 2 dígitos de la aduana de despacho seguidos por dos espacios, 4 dígitos del número de la patente seguidos por dos espacios, 1 dígito que corresponde al último dígito del año en curso, salvo que se trate de un pedimento consolidado iniciado en el año inmediato anterior o del pedimento original de una rectificación, seguido de 6 dígitos de la numeración progresiva por aduana.</xs:documentation>

                                                </xs:annotation>

                                                <xs:simpleType>

                                                   <xs:restriction base="xs:string">

                                                      <xs:length value="21"/>

                                                      <xs:pattern value="[0-9]{2}  [0-9]{2}  [0-9]{4}  [0-9]{7}"/>

                                                   </xs:restriction>

                                                </xs:simpleType>

                                             </xs:attribute>

                                          </xs:complexType>

                                       </xs:element>

                                    </xs:sequence>

                                    <xs:attribute name="ClaveProdServ" type="catCFDI:c_ClaveProdServ" use="required">

                                       <xs:annotation>

 

<xs:documentation>Atributo requerido para expresar la clave del producto o del servicio amparado por la presente parte. Es requerido y deben utilizar las claves del catálogo de productos y servicios, cuando los conceptos que registren por sus actividades correspondan con dichos conceptos.</xs:documentation>

                                       </xs:annotation>

                                    </xs:attribute>

                                    <xs:attribute name="NoIdentificacion" use="optional">

                                       <xs:annotation>

                                          <xs:documentation>Atributo opcional para expresar el número de serie, número de parte del bien o identificador del producto o del servicio amparado por la presente parte. Opcionalmente se puede utilizar claves del estándar GTIN.</xs:documentation>

                                       </xs:annotation>

                                       <xs:simpleType>

                                          <xs:restriction base="xs:string">

                                             <xs:minLength value="1"/>

                                             <xs:maxLength value="100"/>

                                             <xs:whiteSpace value="collapse"/>

                                             <xs:pattern value="[^|]{1,100}"/>

                                          </xs:restriction>

                                       </xs:simpleType>

                                    </xs:attribute>

                                    <xs:attribute name="Cantidad" use="required">

                                       <xs:annotation>

                                          <xs:documentation>Atributo requerido para precisar la cantidad de bienes o servicios del tipo particular definido por la presente parte.</xs:documentation>

                                       </xs:annotation>

                                       <xs:simpleType>

                                          <xs:restriction base="xs:decimal">

 

                                             <xs:fractionDigits value="6"/>

                                             <xs:minInclusive value="0.000001"/>

                                             <xs:whiteSpace value="collapse"/>

                                          </xs:restriction>

                                       </xs:simpleType>

                                    </xs:attribute>

                                    <xs:attribute name="Unidad" use="optional">

                                       <xs:annotation>

                                          <xs:documentation>Atributo opcional para precisar la unidad de medida propia de la operación del emisor, aplicable para la cantidad expresada en la parte. La unidad debe corresponder con la descripción de la parte. </xs:documentation>

                                       </xs:annotation>

                                       <xs:simpleType>

                                          <xs:restriction base="xs:string">

                                             <xs:minLength value="1"/>

                                             <xs:maxLength value="20"/>

                                             <xs:whiteSpace value="collapse"/>

                                             <xs:pattern value="[^|]{1,20}"/>

                                          </xs:restriction>

                                       </xs:simpleType>

                                    </xs:attribute>

                                    <xs:attribute name="Descripcion" use="required">

                                       <xs:annotation>

                                          <xs:documentation>Atributo requerido para precisar la descripción del bien o servicio cubierto por la presente parte.</xs:documentation>

                                       </xs:annotation>

                                       <xs:simpleType>

                                          <xs:restriction base="xs:string">

                                             <xs:minLength value="1"/>

                                             <xs:maxLength value="1000"/>

                                             <xs:whiteSpace value="collapse"/>

                                             <xs:pattern value="[^|]{1,1000}"/>

                                          </xs:restriction>

                                       </xs:simpleType>

                                    </xs:attribute>

                                    <xs:attribute name="ValorUnitario" type="tdCFDI:t_Importe" use="optional">

                                       <xs:annotation>

 

                                          <xs:documentation>Atributo opcional para precisar el valor o precio unitario del bien o servicio cubierto por la presente parte. No se permiten valores negativos.</xs:documentation>

                                       </xs:annotation>

                                    </xs:attribute>

                                    <xs:attribute name="Importe" type="tdCFDI:t_Importe" use="optional">

                                       <xs:annotation>

                                          <xs:documentation>Atributo opcional para precisar el importe total de los bienes o servicios de la presente parte. Debe ser equivalente al resultado de multiplicar la cantidad por el valor unitario expresado en la parte. No se permiten valores negativos.</xs:documentation>

                                       </xs:annotation>

                                    </xs:attribute>

                                 </xs:complexType>

                              </xs:element>

                           </xs:sequence>

 

                           <xs:attribute name="ClaveProdServ" type="catCFDI:c_ClaveProdServ" use="required">

                              <xs:annotation>

                                 <xs:documentation>Atributo requerido para expresar la clave del producto o del servicio amparado por el presente concepto. Es requerido y deben utilizar las claves del catálogo de productos y servicios, cuando los conceptos que registren por sus actividades correspondan con dichos conceptos.</xs:documentation>

                              </xs:annotation>

                           </xs:attribute>

                           <xs:attribute name="NoIdentificacion" use="optional">

                              <xs:annotation>

                                 <xs:documentation>Atributo opcional para expresar el número de parte, identificador del producto o del servicio, la clave de producto o servicio, SKU o equivalente, propia de la operación del emisor, amparado por el presente concepto. Opcionalmente se puede utilizar claves del estándar GTIN.</xs:documentation>

                              </xs:annotation>

                              <xs:simpleType>

                                 <xs:restriction base="xs:string">

                                    <xs:whiteSpace value="collapse"/>

                                    <xs:minLength value="1"/>

                                    <xs:maxLength value="100"/>

                                    <xs:pattern value="[^|]{1,100}"/>

                                 </xs:restriction>

                              </xs:simpleType>

                           </xs:attribute>

                           <xs:attribute name="Cantidad" use="required">

                              <xs:annotation>

                                 <xs:documentation>Atributo requerido para precisar la cantidad de bienes o servicios del tipo particular definido por el presente concepto.</xs:documentation>

                              </xs:annotation>

                              <xs:simpleType>

                                 <xs:restriction base="xs:decimal">

                                    <xs:fractionDigits value="6"/>

                                    <xs:minInclusive value="0.000001"/>

                                    <xs:whiteSpace value="collapse"/>

                                 </xs:restriction>

                              </xs:simpleType>

                           </xs:attribute>

                           <xs:attribute name="ClaveUnidad" type="catCFDI:c_ClaveUnidad" use="required">

                              <xs:annotation>

                                 <xs:documentation>Atributo requerido para precisar la clave de unidad de medida estandarizada aplicable para la cantidad expresada en el concepto. La unidad debe corresponder con la descripción del concepto.</xs:documentation>

                              </xs:annotation>

                           </xs:attribute>

                           <xs:attribute name="Unidad" use="optional">

                              <xs:annotation>

                                 <xs:documentation>Atributo opcional para precisar la unidad de medida propia de la operación del emisor, aplicable para la cantidad expresada en el concepto. La unidad debe corresponder con la descripción del concepto.</xs:documentation>

                              </xs:annotation>

                              <xs:simpleType>

                                 <xs:restriction base="xs:string">

                                    <xs:minLength value="1"/>

 

                                    <xs:maxLength value="20"/>

                                    <xs:whiteSpace value="collapse"/>

                                    <xs:pattern value="[^|]{1,20}"/>

                                 </xs:restriction>

                              </xs:simpleType>

                           </xs:attribute>

                           <xs:attribute name="Descripcion" use="required">

                              <xs:annotation>

                                 <xs:documentation>Atributo requerido para precisar la descripción del bien o servicio cubierto por el presente concepto.</xs:documentation>

                              </xs:annotation>

                              <xs:simpleType>

                                 <xs:restriction base="xs:string">

                                    <xs:minLength value="1"/>

                                    <xs:maxLength value="1000"/>

                                    <xs:whiteSpace value="collapse"/>

                                    <xs:pattern value="[^|]{1,1000}"/>

                                 </xs:restriction>

                              </xs:simpleType>

                           </xs:attribute>

                           <xs:attribute name="ValorUnitario" type="tdCFDI:t_Importe" use="required">

                              <xs:annotation>

                                 <xs:documentation>Atributo requerido para precisar el valor o precio unitario del bien o servicio cubierto por el presente concepto.</xs:documentation>

                              </xs:annotation>

                           </xs:attribute>

                           <xs:attribute name="Importe" type="tdCFDI:t_Importe" use="required">

                              <xs:annotation>

                                 <xs:documentation>Atributo requerido para precisar el importe total de los bienes o servicios del presente concepto. Debe ser equivalente al resultado de multiplicar la cantidad por el valor unitario expresado en el concepto. No se permiten valores negativos. </xs:documentation>

                              </xs:annotation>

                           </xs:attribute>

                           <xs:attribute name="Descuento" type="tdCFDI:t_Importe" use="optional">

                              <xs:annotation>

                                 <xs:documentation>Atributo opcional para representar el importe de los descuentos aplicables al concepto. No se permiten valores negativos.</xs:documentation>

                              </xs:annotation>

                           </xs:attribute>

                           <xs:attribute name="ObjetoImp" type="catCFDI:c_ObjetoImp" use="required">

                              <xs:annotation>

                                 <xs:documentation>Atributo requerido para expresar si la operación comercial es objeto o no de impuesto.</xs:documentation>

                              </xs:annotation>

                           </xs:attribute>

                        </xs:complexType>

                     </xs:element>

                  </xs:sequence>

               </xs:complexType>

            </xs:element>

            <xs:element name="Impuestos" minOccurs="0">

               <xs:annotation>

 

                  <xs:documentation>Nodo condicional para expresar el resumen de los impuestos aplicables.</xs:documentation>

               </xs:annotation>

               <xs:complexType>

                  <xs:sequence>

                     <xs:element name="Retenciones" minOccurs="0">

                        <xs:annotation>

                           <xs:documentation>Nodo condicional para capturar los impuestos retenidos aplicables. Es requerido cuando en los conceptos se registre algún impuesto retenido.</xs:documentation>

                        </xs:annotation>

                        <xs:complexType>

                           <xs:sequence>

                              <xs:element name="Retencion" maxOccurs="unbounded">

                                 <xs:annotation>

                                    <xs:documentation>Nodo requerido para la información detallada de una retención de impuesto específico.</xs:documentation>

                                 </xs:annotation>

                                 <xs:complexType>

                                    <xs:attribute name="Impuesto" type="catCFDI:c_Impuesto" use="required">

                                       <xs:annotation>

                                          <xs:documentation>Atributo requerido para señalar la clave del tipo de impuesto retenido.</xs:documentation>

                                       </xs:annotation>

                                    </xs:attribute>

                                    <xs:attribute name="Importe" type="tdCFDI:t_Importe" use="required">

                                       <xs:annotation>

                                          <xs:documentation>Atributo requerido para señalar el monto del impuesto retenido. No se permiten valores negativos.</xs:documentation>

                                       </xs:annotation>

                                    </xs:attribute>

                                 </xs:complexType>

                              </xs:element>

                           </xs:sequence>

                        </xs:complexType>

                     </xs:element>

                     <xs:element name="Traslados" minOccurs="0">

                        <xs:annotation>

                           <xs:documentation>Nodo condicional para capturar los impuestos trasladados aplicables. Es requerido cuando en los conceptos se registre un impuesto trasladado.</xs:documentation>

                        </xs:annotation>

                        <xs:complexType>

                           <xs:sequence>

                              <xs:element name="Traslado" maxOccurs="unbounded">

                                 <xs:annotation>

                                    <xs:documentation>Nodo requerido para la información detallada de un traslado de impuesto específico.</xs:documentation>

                                 </xs:annotation>

                                 <xs:complexType>

                                    <xs:attribute name="Base" type="tdCFDI:t_Importe" use="required">

                                       <xs:annotation>

                                          <xs:documentation>Atributo requerido para señalar la suma de los atributos Base de los conceptos del impuesto trasladado. No se permiten valores negativos.</xs:documentation>

                                       </xs:annotation>

 

                                    </xs:attribute>

                                    <xs:attribute name="Impuesto" type="catCFDI:c_Impuesto" use="required">

                                       <xs:annotation>

                                          <xs:documentation>Atributo requerido para señalar la clave del tipo de impuesto trasladado.</xs:documentation>

                                       </xs:annotation>

                                    </xs:attribute>

                                    <xs:attribute name="TipoFactor" type="catCFDI:c_TipoFactor" use="required">

                                       <xs:annotation>

                                          <xs:documentation>Atributo requerido para señalar la clave del tipo de factor que se aplica a la base del impuesto.</xs:documentation>

                                       </xs:annotation>

                                    </xs:attribute>

                                    <xs:attribute name="TasaOCuota" use="optional">

                                       <xs:annotation>

                                          <xs:documentation>Atributo condicional para señalar el valor de la tasa o cuota del impuesto que se traslada por los conceptos amparados en el comprobante.</xs:documentation>

                                       </xs:annotation>

                                       <xs:simpleType>

                                          <xs:restriction base="xs:decimal">

                                             <xs:whiteSpace value="collapse"/>

                                             <xs:minInclusive value="0.000000"/>

                                             <xs:fractionDigits value="6"/>

                                          </xs:restriction>

 

</xs:simpleType>

                                    </xs:attribute>

                                    <xs:attribute name="Importe" type="tdCFDI:t_Importe" use="optional">

                                       <xs:annotation>

                                          <xs:documentation>Atributo condicional para señalar la suma del importe del impuesto trasladado, agrupado por impuesto, TipoFactor y TasaOCuota. No se permiten valores negativos.</xs:documentation>

                                       </xs:annotation>

                                    </xs:attribute>

                                 </xs:complexType>

                              </xs:element>

                           </xs:sequence>

                        </xs:complexType>

                     </xs:element>

                  </xs:sequence>

                  <xs:attribute name="TotalImpuestosRetenidos" type="tdCFDI:t_Importe" use="optional">

                     <xs:annotation>

                        <xs:documentation>Atributo condicional para expresar el total de los impuestos retenidos que se desprenden de los conceptos expresados en el comprobante fiscal digital por Internet. No se permiten valores negativos. Es requerido cuando en los conceptos se registren impuestos retenidos.</xs:documentation>

                     </xs:annotation>

                  </xs:attribute>

                  <xs:attribute name="TotalImpuestosTrasladados" type="tdCFDI:t_Importe" use="optional">

                     <xs:annotation>

                        <xs:documentation>Atributo condicional para expresar el total de los impuestos trasladados que se desprenden de los conceptos expresados en el comprobante fiscal digital por Internet. No se permiten valores negativos. Es requerido cuando en los conceptos se registren impuestos trasladados.</xs:documentation>

                     </xs:annotation>

 

                  </xs:attribute>

               </xs:complexType>

            </xs:element>

            <xs:element name="Complemento" minOccurs="0">

               <xs:annotation>

                  <xs:documentation>Nodo opcional donde se incluye el complemento Timbre Fiscal Digital de manera obligatoria y los nodos complementarios determinados por el SAT, de acuerdo con las disposiciones particulares para un sector o actividad específica.</xs:documentation>

               </xs:annotation>

               <xs:complexType>

                  <xs:sequence>

                     <xs:any minOccurs="0" maxOccurs="unbounded"/>

                  </xs:sequence>

               </xs:complexType>

            </xs:element>

            <xs:element name="Addenda" minOccurs="0">

               <xs:annotation>

                  <xs:documentation>Nodo opcional para recibir las extensiones al presente formato que sean de utilidad al contribuyente. Para las reglas de uso del mismo, referirse al formato origen.</xs:documentation>

               </xs:annotation>

               <xs:complexType>

                  <xs:sequence>

                     <xs:any maxOccurs="unbounded"/>

                  </xs:sequence>

               </xs:complexType>

            </xs:element>

         </xs:sequence>

         <xs:attribute name="Version" use="required" fixed="4.0">

            <xs:annotation>

               <xs:documentation>Atributo requerido con valor prefijado a 4.0 que indica la versión del estándar bajo el que se encuentra expresado el comprobante.</xs:documentation>

            </xs:annotation>

            <xs:simpleType>

               <xs:restriction base="xs:string">

                  <xs:whiteSpace value="collapse"/>

               </xs:restriction>

 

            </xs:simpleType>

         </xs:attribute>

         <xs:attribute name="Serie" use="optional">

            <xs:annotation>

               <xs:documentation>Atributo opcional para precisar la serie para control interno del contribuyente. Este atributo acepta una cadena de caracteres.</xs:documentation>

            </xs:annotation>

            <xs:simpleType>

               <xs:restriction base="xs:string">

                  <xs:minLength value="1"/>

                  <xs:maxLength value="25"/>

                  <xs:whiteSpace value="collapse"/>

                  <xs:pattern value="[^|]{1,25}"/>

               </xs:restriction>

            </xs:simpleType>

 

         </xs:attribute>

         <xs:attribute name="Folio" use="optional">

            <xs:annotation>

               <xs:documentation>Atributo opcional para control interno del contribuyente que expresa el folio del comprobante, acepta una cadena de caracteres.</xs:documentation>

            </xs:annotation>

            <xs:simpleType>

               <xs:restriction base="xs:string">

                  <xs:minLength value="1"/>

                  <xs:maxLength value="40"/>

                  <xs:whiteSpace value="collapse"/>

                  <xs:pattern value="[^|]{1,40}"/>

               </xs:restriction>

            </xs:simpleType>

         </xs:attribute>

         <xs:attribute name="Fecha" type="tdCFDI:t_FechaH" use="required">

            <xs:annotation>

               <xs:documentation>Atributo requerido para la expresión de la fecha y hora de expedición del Comprobante Fiscal Digital por Internet. Se expresa en la forma AAAA-MM-DDThh:mm:ss y debe corresponder con la hora local donde se expide el comprobante.</xs:documentation>

            </xs:annotation>

         </xs:attribute>

         <xs:attribute name="Sello" use="required">

            <xs:annotation>

               <xs:documentation>Atributo requerido para contener el sello digital del comprobante fiscal, al que hacen referencia las reglas de resolución miscelánea vigente. El sello debe ser expresado como una cadena de texto en formato Base 64.</xs:documentation>

            </xs:annotation>

            <xs:simpleType>

               <xs:restriction base="xs:string">

                  <xs:whiteSpace value="collapse"/>

               </xs:restriction>

            </xs:simpleType>

         </xs:attribute>

         <xs:attribute name="FormaPago" type="catCFDI:c_FormaPago" use="optional">

            <xs:annotation>

               <xs:documentation>Atributo condicional para expresar la clave de la forma de pago de los bienes o servicios amparados por el comprobante.</xs:documentation>

            </xs:annotation>

         </xs:attribute>

         <xs:attribute name="NoCertificado" use="required">

            <xs:annotation>

               <xs:documentation>Atributo requerido para expresar el número de serie del certificado de sello digital que ampara al comprobante, de acuerdo con el acuse correspondiente a 20 posiciones otorgado por el sistema del SAT.</xs:documentation>

            </xs:annotation>

            <xs:simpleType>

               <xs:restriction base="xs:string">

                  <xs:length value="20"/>

                  <xs:whiteSpace value="collapse"/>

 

<xs:pattern value="[0-9]{20}"/>

               </xs:restriction>

            </xs:simpleType>

         </xs:attribute>

         <xs:attribute name="Certificado" use="required">

            <xs:annotation>

               <xs:documentation>Atributo requerido que sirve para incorporar el certificado de sello digital que ampara al comprobante, como texto en formato base 64.</xs:documentation>

            </xs:annotation>

            <xs:simpleType>

               <xs:restriction base="xs:string">

                  <xs:whiteSpace value="collapse"/>

               </xs:restriction>

            </xs:simpleType>

         </xs:attribute>

         <xs:attribute name="CondicionesDePago" use="optional">

            <xs:annotation>

               <xs:documentation>Atributo condicional para expresar las condiciones comerciales aplicables para el pago del comprobante fiscal digital por Internet. Este atributo puede ser condicionado mediante atributos o complementos.</xs:documentation>

            </xs:annotation>

            <xs:simpleType>

               <xs:restriction base="xs:string">

                  <xs:whiteSpace value="collapse"/>

                  <xs:minLength value="1"/>

                  <xs:maxLength value="1000"/>

                  <xs:pattern value="[^|]{1,1000}"/>

               </xs:restriction>

            </xs:simpleType>

         </xs:attribute>

         <xs:attribute name="SubTotal" type="tdCFDI:t_Importe" use="required">

            <xs:annotation>

 

               <xs:documentation>Atributo requerido para representar la suma de los importes de los conceptos antes de descuentos e impuesto. No se permiten valores negativos.</xs:documentation>

            </xs:annotation>

         </xs:attribute>

         <xs:attribute name="Descuento" type="tdCFDI:t_Importe" use="optional">

            <xs:annotation>

               <xs:documentation>Atributo condicional para representar el importe total de los descuentos aplicables antes de impuestos. No se permiten valores negativos. Se debe registrar cuando existan conceptos con descuento.</xs:documentation>

            </xs:annotation>

         </xs:attribute>

         <xs:attribute name="Moneda" type="catCFDI:c_Moneda" use="required">

            <xs:annotation>

               <xs:documentation>Atributo requerido para identificar la clave de la moneda utilizada para expresar los montos, cuando se usa moneda nacional se registra MXN. Conforme con la especificación ISO 4217.</xs:documentation>

            </xs:annotation>

         </xs:attribute>

         <xs:attribute name="TipoCambio" use="optional">

            <xs:annotation>

               <xs:documentation>Atributo condicional para representar el tipo de cambio FIX conforme con la moneda usada. Es requerido cuando la clave de moneda es distinta de MXN y de XXX. El valor debe reflejar el número de pesos mexicanos que equivalen a una unidad de la divisa señalada en el atributo moneda. Si el valor 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.</xs:documentation>

            </xs:annotation>

            <xs:simpleType>

               <xs:restriction base="xs:decimal">

                  <xs:fractionDigits value="6"/>

                  <xs:minInclusive value="0.000001"/>

                  <xs:whiteSpace value="collapse"/>

               </xs:restriction>

            </xs:simpleType>

         </xs:attribute>

 

<xs:attribute name="Total" type="tdCFDI:t_Importe" use="required">

            <xs:annotation>

               <xs:documentation>Atributo requerido para representar la suma del subtotal, menos los descuentos aplicables, más las contribuciones recibidas (impuestos trasladados - federales y/o locales, derechos, productos, aprovechamientos, aportaciones de seguridad social, contribuciones de mejoras) menos los impuestos retenidos federales y/o locales. Si el valor es superior al límite que establezca el SAT en la Resolución Miscelánea Fiscal vigente, 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. No se permiten valores negativos. </xs:documentation>

            </xs:annotation>

         </xs:attribute>

         <xs:attribute name="TipoDeComprobante" type="catCFDI:c_TipoDeComprobante" use="required">

            <xs:annotation>

               <xs:documentation>Atributo requerido para expresar la clave del efecto del comprobante fiscal para el contribuyente emisor.</xs:documentation>

            </xs:annotation>

         </xs:attribute>

         <xs:attribute name="Exportacion" type="catCFDI:c_Exportacion" use="required">

            <xs:annotation>

               <xs:documentation>Atributo requerido para expresar si el comprobante ampara una operación de exportación.</xs:documentation>

            </xs:annotation>

         </xs:attribute>

         <xs:attribute name="MetodoPago" type="catCFDI:c_MetodoPago" use="optional">

            <xs:annotation>

               <xs:documentation>Atributo condicional para precisar la clave del método de pago que aplica para este comprobante fiscal digital por Internet, conforme al Artículo 29-A fracción VII incisos a y b del CFF.</xs:documentation>

            </xs:annotation>

         </xs:attribute>

         <xs:attribute name="LugarExpedicion" type="catCFDI:c_CodigoPostal" use="required">

            <xs:annotation>

               <xs:documentation>Atributo requerido para incorporar el código postal del lugar de expedición del comprobante (domicilio de la matriz o de la sucursal).</xs:documentation>

            </xs:annotation>

         </xs:attribute>

         <xs:attribute name="Confirmacion" use="optional">

            <xs:annotation>

               <xs:documentation>Atributo condicional para registrar la clave de confirmación que entregue el PAC para expedir el comprobante con importes grandes, con un tipo de cambio fuera del rango establecido o con ambos casos. Es requerido cuando se registra un tipo de cambio o un total fuera del rango establecido.</xs:documentation>

            </xs:annotation>

            <xs:simpleType>

               <xs:restriction base="xs:string">

                  <xs:whiteSpace value="collapse"/>

                  <xs:length value="5"/>

                  <xs:pattern value="[0-9a-zA-Z]{5}"/>

               </xs:restriction>

            </xs:simpleType>

         </xs:attribute>

      </xs:complexType>

   </xs:element>

</xs:schema>

B.      Generación de sellos digitales para Comprobantes fiscales digitales por Internet.

Elementos utilizados en la generación de Sellos Digitales:

·         Cadena Original del elemento a sellar.

·         Certificado de Sello Digital y su correspondiente clave privada.

·         Algoritmos de criptografía de clave pública para firma electrónica avanzada.

·         Especificaciones de conversión de la firma electrónica avanzada a Base 64.

Para la generación de sellos digitales se utiliza criptografía de clave pública aplicada a una cadena original.

Criptografía de la Clave Pública.

La criptografía de Clave Pública se basa en la generación de una pareja de números muy grandes relacionados entre sí, de tal manera que una operación de encripción sobre un mensaje tomando como clave de encripción a uno de los dos números, produce un mensaje alterado en su significado que sólo puede ser devuelto a su estado original mediante la operación de desencripción correspondiente tomando como clave de desencripción al otro número de la pareja.

Uno de estos dos números, expresado en una estructura de datos que contiene un módulo y un exponente, se conserva secreta y se le denomina "clave privada", mientras que el otro número llamado "clave pública", en formato binario y acompañado de información de identificación del emisor, además de una calificación de validez por parte de un tercero confiable, se incorpora a un archivo denominado "certificado de firma electrónica avanzada" o "certificado para sellos digitales" en adelante Certificado.

El Certificado puede distribuirse libremente para efectos de intercambio seguro de información y para ofrecer pruebas de autoría de archivos electrónicos o confirmación, de estar de acuerdo con su contenido, ambos mediante el proceso denominado "firmado electrónico avanzado", que consiste en una característica observable de un mensaje, verificable por cualquiera con acceso al certificado digital del emisor, que sirve para implementar servicios de seguridad para garantizar:

·         La integridad (facilidad para detectar si un mensaje firmado ha sido alterado),

·         La autenticidad,

·         Certidumbre de origen (facilidad para determinar qué persona es el autor de la firma que valida el contenido del mensaje) y

·         No repudiación del mensaje firmado (capacidad de impedir que el autor de la firma niegue haber firmado el mensaje).

Estos servicios de seguridad proporcionan las siguientes características a un mensaje con firma electrónica avanzada:

·         Es infalsificable.

·         La firma electrónica avanzada no es reciclable (es única por mensaje).

·         Un mensaje con firma electrónica avanzada alterado, es detectable.

·         Un mensaje con firma electrónica avanzada, no puede ser repudiado.

Los certificados de sello digital se generan de manera idéntica a los certificados de e.firma y al igual que las firmas electrónicas avanzadas el propósito del sello digital es emitir comprobantes fiscales con autenticidad, integridad, verificables y no repudiables por el emisor. Para ello basta tener acceso al mensaje original o cadena original, al sello digital y al certificado de sello digital del emisor.

Al ser el certificado de sello digital idéntico en su generación a un certificado de e.firma, proporciona los mismos servicios de seguridad y hereda las características de las firmas digitales. Por consecuencia un comprobante fiscal digital firmado digitalmente por el contribuyente tiene las características señaladas previamente.

Los algoritmos utilizados en la generación de un sello digital son los siguientes:

·         SHA-2 256, que es una función hash de un solo sentido tal que para cualquier entrada produce una salida compleja de 256 bits (32 bytes) denominada "digestión".

·         RSAPrivateEncrypt, que utiliza la clave privada del emisor para encriptar la digestión del mensaje.

·         RSAPublicDecrypt, que utiliza la clave pública del emisor para desencriptar la digestión del mensaje.

A manera de referencia y para obtener información adicional, se recomienda consultar el sitio de FacturaElectrónica que se encuentran dentro del portal del SAT: www.sat.gob.mx

Cadena Original

Se entiende como cadena original, a la secuencia de datos formada con la información contenida dentro del comprobante fiscal digital por Internet, establecida en el Rubro I.A. de este anexo, construida aplicando las siguientes reglas.

 

Reglas Generales:

1.      Ninguno de los atributos que conforman al comprobante fiscal digital por Internet debe contener el carácter | (pleca) debido a que éste es utilizado como carácter de control en la formación de la cadena original.

2.      El inicio de la cadena original se encuentra marcado mediante una secuencia de caracteres || (doble pleca).

3.      Se expresa únicamente la información del dato sin expresar el atributo al que hace referencia. Esto es, si el valor de un campo es "A" y el nombre del campo es "Concepto", sólo se expresa |A| y nunca |Concepto A|.

4.      Cada dato individual se debe separar de su dato subsiguiente, en caso de exi