Contenido Complemento para Pago. 1. Estándar del Complemento Pago 2. Secuencia de Elementos a Integrar en la Cadena Original 3. del Complemento Pago 1. Estándar del Complemento Pago. Elemento: Pagos Estructura Complemento al Comprobante Fiscal Digital por Internet (CFDI) para incorporar información sobre los pagos efectuados. Si el tipo de comprobante es traslado, no debe de existir el complemento Pagos. El pago se debe realizar con la misma moneda que el CFDI original. El atributo Comprobante:Moneda es para este complemento y debe contener un valor del catálogo c_moneda. En caso de que el pago se haya efectuado en una divisa distinta, en el tipo de cambio se debe registrar el número de pesos mexicanos equivalentes a la divisa de la factura se debe hacer la conversión a la moneda nacional de acuerdo al tipo de cambio en el que se realizó la fecha de pago. Atributos Version Atributo que indica la versión del complemento pago. Valor Prefijado 1.0 NumParcialidad Atributo condicional para expresar el número de parcialidad por la que se emite el CFDI. Si el atributo metododepago contiene la palabra "parcialidades", este atributo es xs:integer Patrón [1-9][0-9]{0,2} Especio en Blanco colapsar Si el atributo cfdi:total es igual a "0" y el atributo cfdi:metododepago es igual a "Pago en parcialidades o diferido" o "Pago inicial y parcialidades", este atributo es SubTotal Atributo para representar la suma de los subtotales de los pagos. TotalImpuestosTrasladados Atributo condicional para expresar la suma de los impuestos
trasladados expresados en este complemento. El valor de este atributo debe ser igual a la suma de los importes registrados en el elemento hijo Traslados. Total Especio en Blanco Atributo para representar la suma del subtotal, más los impuestos trasladados. colapsar El valor del atributo debe ser igual al subtotal más impuestos trasladados. TotalImpuestosRetenidos Atributo condicional para expresar la suma de los importes registrados en los elementos retenciones de este complemento. El valor de este atributo debe ser igual a la suma de los importes registrados en el elemento hijo Retenciones. Elementos Hijo (min,max) Secuencia (1, 1) Pago (1, ilimitado) Elemento: Pago Elemento para incorporar la información de los pagos efectuados. Atributos FechaPago Atributo para la expresión de la fecha y hora en que se realiza el pago. Se expresa en la forma aaaa-mm-ddthh:mm:ss, de acuerdo con la especificación ISO 8601. La hora debe corresponder con la zona horaria local del emisor. pgo:t_fechahorazh El valor del atributo debe ser menor o igual al atributo cfdi:fecha FormaPago Atributo para expresar la forma de pago de los bienes o servicios amparados por el comprobante. El catálogo se publicará en el portal del SAT. pgo:c_formapago TipoCambio Atributo condicional para representar el tipo de cambio conforme a la moneda usada.
xs:decimal Número de fracciones Valor mínimo 6 0.000001 El tipo de cambio debe corresponder a la fecha señalada en el atributo pago:fechapago. El valor debe reflejar el número de pesos mexicanos que equivalen a una unidad de la divisa señalada en el atributo Comprobante:moneda. ImporteSaldoAnterior Atributo para expresar el importe del saldo anterior de la factura origen o el monto del saldo insoluto de la parcialidad anterior. Si el método de pago es "pago en parcialidades o diferido", este atributo es ImporteSaldoInsoluto Atributo para expresar la diferencia entre el importe del saldo anterior y el monto del pago realizado o la suma de los pagos efectuados. Si el atributo tipodepago es igual a "Parcialidad", este atributo es NumOperacion Atributo para expresar el número de cheque, número de autorización, número de referencia, clave de rastreo o algún número de referencia análogo. xs:integer Si el atributo tipodepago es igual a "Parcialidad", este atributo es CuentaOrigen Valor mínimo Valor máximo Atributo condicional para expresar el número de cuenta bancaria del origen de los recursos. xs:positiveinteger 1 50 Si el atributo formapago es igual a "02","03","04","05", este atributo es CuentaDestino Atributo condicional para expresar el número de cuenta destino, a la cual se transfieren los recursos. xs:positiveinteger
Valor mínimo Valor máximo 1 50 Si el atributo formapago es igual a "02","03","04","05", este atributo es BancoEmisor Atributo condicional, para expresar la clave del Banco de la cuenta origen, de acuerdo al catálogo publicado en la página de internet del SAT. Si el atributo formapago es igual a "02","03","04","05", este atributo es Se considera banco nacional aquellos bancos de residencia nacional, indistintamente, si el tipo de moneda es nacional o extranjero. BancoReceptor Atributo condicional, para expresar la clave del Banco de la cuenta destino de la transferencia, de acuerdo al catálogo publicado en la página de internet del SAT. Se considera banco nacional aquellos bancos de residencia nacional, indistintamente, si el tipo de moneda es nacional o extranjero. Si el atributo formapago es igual a "02","03","04","05", este atributo es Se considera banco nacional aquellos bancos de residencia nacional, indistintamente, si el tipo de moneda es nacional o extranjero. BenefCheque Atributo condicional para expresar el número de cuenta bancaria del origen de los recursos. Cuando la cuenta origen sea diferente de un banco nacional, se debe registrar el nombre del banco en el atributo "bancooriext". Longitud mínima 1 Longitud máxima 300 Si el atributo formapago es igual a "02", este atributo es IdentEmisorMedioDePago Longitud Mínima 1 Longitud Máxima 300 Atributo para registrar el identificador del emisor del medio de pago, en caso de ser extranjero se debe registrar el nombre, de lo contrario registrar el RFC. Si el emisor del medio de pago es nacional, debe de registrar el RFC conforme al siguiente patrón: [A-Z&Ñ]{3,4}[0-9]{2}(0[1-9] 1[012])(0[1-9] [12][0-9] 3[01])[A-Z0-9]{2}[0-9A]
Elementos Hijo (min,max) Secuencia (1, 1) Traslados (0, ilimitado) Retenciones (0, ilimitado) Elemento: Traslado Nodo para asentar la información detallada de un traslado de impuestos aplicable al presente concepto. Elementos Hijo (min,max) Secuencia (1, 1) Traslado (1, ilimitado) Elemento: Traslados Atributos TipoFactor Valores Permitidos TasaOCuota Importe Impuesto Regla de Validación Atributo para señalar el tipo de factor que se aplica a la base del impuesto. Tasa Cuota Atributo para señalar la tasa o cuota del impuesto que se traslada por el pago. El catálogo se publicará en la página del SAT. pgo:c_tasaocuota El valor registrado debe corresponder a un registro del catálogo, coincidir con el tipo de impuesto registrado en el atributo Impuesto y el factor debe corresponder con el atributo TipoFactor. Atributo para señalar el importe del impuesto trasladado que aplica al pago. El valor del atributo debe ser redondeado a la cantidad de decimales que soporte la moneda. Si existe una diferencia entre el resultado obtenido y el importe, se debe agregar al valor del impuesto una unidad de la fracción más pequeña que soporte la moneda, es decir, (0.1, 0.01, 0.001, 0.0001, 0.00001, 0.000001, 0.0000001)) Atributo para señalar el importe del impuesto trasladado que aplica al pago. pgo: c_tipoimpuesto Deben existir los campos para sumarizar el total de impuestos trasladados y el detalle de impuestos trasladados.
Elemento: Retenidos Nodo para expresar los datos correspondientes a los impuestos retenidos. Elementos Hijo (min,max) Secuencia (1, 1) Retencion (1, ilimitado) Elemento: Retencion Nodo para capturar los datos complementarios del receptor del recibo de nómina. Atributos TipoFactor Atributo para señalar el tipo de factor que se aplica a la base del impuesto. Valores Permitidos Tasa Cuota TasaOCuota Regla de Validación Importe Regla de Validación Impuesto Regla de Validación Atributo para señalar la tasa o cuota del impuesto que se retiene por el pago. El catálogo se publicará en la página del SAT. pgo:c_tasaocuota El valor registrado debe corresponder a un registro del catálogo, coincidir con el tipo de impuesto registrado en el atributo Impuesto y el factor debe corresponder con el atributo TipoFactor. Atributo para señalar el importe del impuesto retenido que aplica al pago. El valor del atributo debe ser redondeado a la cantidad de decimales que soporte la moneda. Si existe una diferencia entre el resultado obtenido y el importe, se debe agregar al valor del impuesto una unidad de la fracción más pequeña que soporte la moneda, es decir, (0.1, 0.01, 0.001, 0.0001, 0.00001, 0.000001, 0.0000001)) Atributo para señalar el importe del impuesto retenido que aplica al pago. pgo: c_tipoimpuesto Deben existir los campos para sumarizar el total de impuestos retenidos y el detalle de impuestos retenidos. Tipo Simple Global: t_importe Tipo definido para expresar importes numéricos con fracción hasta centésimas. Definición xs:decimal
Posiciones 2 Decimales Valor Mínimo 0.00 Incluyente Tipo Simple Global: t_fechahorazh Tipo definido para registrar fecha y hora incluyendo la zona horaria. Se expresa en la forma aaaamm-ddthh:mm:ss±hh:mm, de acuerdo con la especificación ISO 8601. Definición xs:datetime Patrón ([0-9]{4})-(0[1-9] 1[0-2])-(0[1-9] [12][0-9] 3[01])T(([01][0-9] 2[0-3]):[0-5][0-9]:[0-5][0-9](\+ -)((0[0-9] 1[0-3]):[0-5][0-9] 14:00)) Código Fuente 2. Secuencia de Elementos a Integrar en la Cadena Original Cadena Original Se entiende como cadena original, a la secuencia de datos formada con la información contenida dentro del documento digital, establecida en el rubro I.B del anexo 21 para documentos digitales y su tipo de documento digital, siguiendo para ello las reglas y la secuencia aquí especificadas: Reglas Generales: 1. Ninguno de los atributos que conforman al documento digital deberá contener el carácter ( pleca ) debido a que este será 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 expresará únicamente la información del dato sin expresar el atributo al que hace referencia. Esto es, si el valor del campo es la A solo se expresará A y nunca Campo A. 4. Cada dato individual se encontrará separado de su dato subsiguiente, en caso de existir, mediante un carácter ( pleca sencilla). 5. Los espacios en blanco que se presenten dentro de la cadena original serán tratados de la siguiente manera: a. Se deberán remplazar todos los tabuladores, retornos de carro y saltos de línea por espacios en blanco. b. Acto seguido se elimina cualquier carácter en blanco al principio y al final de cada separador ( pleca sencilla). c. Finalmente, toda secuencia de caracteres en blanco intermedias se sustituyen por un único espacio en blanco. 6. Los datos es no expresados, no aparecerán en la cadena original y no tendrán delimitador alguno. 7. El final de la cadena original será expresado mediante una cadena de caracteres (doble pleca ). 8. Toda la cadena de original se expresará en el formato de codificación UTF-8. Secuencia de Formación: La secuencia de formación incluirá el complemento, tomando en cuenta las reglas generales expresadas
en el párrafo anterior, y el orden descrito a continuación, mismo que se encuentra en el XSLT publicado en el portal del SAT 1 Información del nodo: Pagos a) Versión b) NumParcialidad c) Subtotal d) TotalImpuestosTrasladados e) Total f) TotalImpuestosRetenidos 2 Información del nodo: Pago a) FechaPago b) FormaPago c) TipoCambio d) ImporteSaldoAnterior e) ImporteSaldoInsoluto f) NumOperacion g) CuentaOrigen h) CuentaDestino i) BancoEmisor j) BancoReceptor k) BenefCheque l) IdentEmisorMedioDePago 3 Información del nodo: Traslados a) TipoFactor b) TasaOCuota c) Importe d) Impuesto 4 Información del nodo: Traslados a) TipoFactor b) TasaOCuota c) Importe d) Impuesto 3. del Complemento Pago Para integrar el complemento de Pago a un comprobante fiscal digital, la estructura resultante deberá integrarse como un nodo hijo del nodo Comprobante/Complemento. Adicionalmente a su inclusión, se deberá definir el namespace correspondiente, así como referenciar la ubicación pública del esquema xsd correspondiente. Por ejemplo, asumiendo que el contribuyente requiere integrar el namespace correspondiente al presente estándar se deberá incluir la referencia al namespace aplicable (http://esquemas.clouda.sat.gob.mx/archivos/cfdi/pagos) el cual se define mediante el esquema público
definido en http://esquemas.clouda.sat.gob.mx/archivos/cfdi/pago /PagoV10.xsd y se vincularía de la siguiente forma: <pgo:pago xmlns:cfdi="http://www.sat.gob.mx/archivos/cfd/3" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:ce="http://esquemas.clouda.sat.gob.mx/archivos/cfdi/pago" xsi:schemalocation=" http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv32.xsd http://esquemas.clouda.sat.gob.mx/archivos/cfdi/pago http://esquemas.clouda.sat.gob.mx/archivos/cfdi/pago/pagov10.xsd". <pgo:/pagoo> La línea que especifica xml:xsi= http://www.w3.org/2001/xmlschema-instance indica que se está usando validación mediante el estándar de esquema XSD. La línea que especifica xmlns= http://www.sat.gob.mx/cfd/3 hace referencia al namespace de comprobantes. La línea que especifica xmlns:ce="http://esquemas.clouda.sat.gob.mx/archivos/cfdi/pago" hace referencia al namespace adicional del complemento aplicable para la expresión del complemento Pago. Finalmente la línea que especifica xsi:schemalocation hace referencia a los dos namespaces usados, marcando adicionalmente la ubicación de los esquemas xsd que definen las especificaciones de cada namespace. En caso de que se requiriera agregar otros namespaces adicionales, el mecanismo sería agregar una línea tipo xmlns definiendo el namespace y expresando nuevamente el namespace y ubicación de su definición dentro del atributo xsi:schemalocation Respecto de los nodos propios del estándar aplicable para el complemento Pago, se deberá utilizar el prefijo pgo, por ejemplo: <Complemento> <pgo:pago /> </Complemento>