Resumen Reforma Fiscal 2022
×
Menú

Validaciones

 
Estas validaciones deben ser realizadas por el PAC (Proveedor Autorizado de Certificación)
 
Elemento Comprobante
 
FormaPago
Si el valor registrado en el atributo TipoDeComprobante es "T"o "P" este atributo no debe existir. En caso contrario este atributo debe existir y contener una clave del catálogo c_FormaPago.
 
El valor de este atributo debe ser "99" cuando el atributo MetodoPago contenga el valor "PPD".
 
Exportación
Si el atributo contiene el valor "02" debe existir el Complemento para Comercio Exterior.
 
MetodoPago
Si el valor registrado en el atributo TipoDeComprobante es "T" o "P" este atributo no debe existir.  En caso contrario este atributo debe existir y contener una clave de catálogo c_MetodoPago.
 
Nodo: InformacionGlobal
Atributos
 
Si el valor registrado en el atributo RFC del nodo Receptor contiene XAXX010101000 y el valor registrado en el atributo Nombre del nodo Receptor contiene el valor "PUBLICO EN GENERAL" este nodo debe existir.
 
Año
El valor de este atributo debe ser igual al año en curso o al año inmediato anterior. Para validarlo, se debe considerar el registrado en el atributo Fecha.
 
Periodicidad
Este atributo debe contener una clave vigente del catálogo c_Periodicidad. Si el valor de este atributo contiene la clave "05", el atributo RegimenFiscal debe contener el valor "621".
 
Meses
Este atributo debe contener una clave vigente del catálogo c_Meses.
 
Si el atributo Periodicidad contiene el valor "05", este atributo debe contener alguno de los valores "13", "14", "15", "16", "17" o "18".
 
Si el atributo Periodicidad contiene un valor diferente de "05", este atributo debe contener alguno de los valores "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11" 0 "12".
 
Nodo: Emisor
Atributos
 
RFC
Se deben considerar las reglas de validación que se indican en el Anexo 29 aplicables a este atributo.
 
Nombre
El valor de este atributo debe corresponder con el nombre del titular del certificado de sello digital del emisor.
 
Si existe el valor "01" en el atributo FacAtrAdquirente el valor de este atributo no debe corresponder con el nombre del titular del certificado de sello digital del Emisor.
 
RegimenFiscal
Este atributo debe contener una clave vigente del catálogo c_RegimenFiscal.
 
FacAtrAdquirente
El valor de este atributo debe existir siempre que la respuesta del servicio del Validador de RFC para emitir facturas a través del adquirente, sea en sentido positivo.
 
Nodo: Receptor
Atributos
 
Nombre
El valor de este atributo debe encontrarse en la lista de RFC inscritos no cancelados en el SAT y debe ser asociado a la clave de RFC registrado en el atributo Rfc del Nodo Receptor.
 
Si el valor registrado en el este atributo es "PUBLICO EN GENERAL", el valor "XAXX010101000" debe existir en el atributo Rfc del nodo Receptor.
 
Si el valor registrado en el atributo es diferente de "PUBLICO EN GENERAL" y el valor del atributo RFC del nodo Receptor es "XAXX010101000" o "XEXX010101000", el valor de este atributo no debe estar asociado al RFC registrado en el atributo Rfc del Nodo Receptor.
 
DomicilioFiscalReceptor
Debe corresponder con la clave de código postal incluida en el catálogo publicado en la página del SAT.
 
Si el valor del atributo Nombre del nodo Receptor es "PUBLICO EN GENERAL", este atributo debe ser igual al valor del atributo LugarExpedicion.
 
RegimenFiscalR
Este atributo debe contener una clave del catálogo c_RegimenFiscal.
 
El régimen fiscal que se registre en este atributo debe corresponder con el tipo de persona del receptor, es decir, si el RFC tiene longitud de 12 posiciones, debe ser de persona moral y si tiene longitud de 13 posiciones debe ser de persona física.
 
Si el atributo Rfc del nodo Receptor contiene el valor XAXX010101000 o el valor XAXX010101000 en este campo se debe registrar la clave "616".
 
UsoCFDI
El valor que se registre en este atributo debe aplicar para el tipo de persona del receptor, es decir, si el RFC tiene longitud de 12 posiciones, debe ser de persona moral y si tiene longitud de 13 posiciones debe ser de persona física y el valor registrado en el atributo RegimenFiscalR, debe corresponder a un valor de la columna Régimen Fiscal Receptor del catálogo c_UsoCFDI.
 
Nodo: Conceptos
Nodo: Concepto
Atributos
 
ObjetoImp
El valor de este atributo debe contener una clave del catálogo c_ObjetoImp. Si el valor registrado en este atributo es "02" el nodo hijo Impuestos del nodo Concepto debe existir.
 
 
Nodo: Conceptos
Nodo: Concepto
Nodo: ACuentaTerceros
Atributos
 
RfcACuentaTerceros
El valor de este atributo debe estar en la I_LCO.
Se debe considerar las reglas de validación que se indican en el anexo 29 aplicables al Rfc del nodo Emisor. El valor registrado en este atributo debe ser diferente al valor registrado en los atributos Rfc de los nodos Emisor y Receptor.
 
NombreACuentaTerceros
El valor de este atributo debe encontrarse en la lista de RFC inscritos no cancelados en el SAT y debe estar asociado a la clave de RFC registrado en el atributo RfcACuentaTerceros del Nodo ACuentaTerceros.
 
RegimenFiscalACuentaTerceros
Este atributo debe contener una clave vigente del catálogo c_RegimenFiscal.
 
DomicilioFiscalACuentaTerceros
Debe corresponder con una clave de código postal incluida en el catálogo publicado en la página del SAT. El valor de este atributo debe encontrarse en la lista de RFC inscritos no cancelados en el SAT, debe estar asociado a la clave de RFC registrado en el atributo RfcACuentaTerceros del nodo ACuentaTerceros.
 
 
Nodo: Impuestos
Nodo: Traslados
En caso de que solo existan conceptos en el CFDI con un TipoFactor exento, en este nodo solo deben existir los atributos Base, Impuesto y TipoFactor.
 
Elemento Comprobante
Nodo: Impuestos
Nodo: Traslados
Nodo: Traslado
Atributos
 
Base
El valor de este atributo debe tener hasta la cantidad de decimales que soporte la moneda. Debe ser igual al redondeo de la suma de los importes de los atributos Base registrados en los conceptos donde el impuesto del concepto sea igual al atributo impuesto de este elemento y la TasaOCuouta del concepto sea igual al atributo TasaOCuota de este elemento.
 
En caso de que solo existan conceptos con TipoFactor Exento, la suma de este atributo debe ser igual al redondeo de la suma de los importes de los atributos Base registrados en los conceptos.
 
Importe
Debe existir el atributo TotalImpuestosTrasladados cuando existan conceptos con un TipoFactor distinto a Exento.
 
 
Validaciones adicionales comprobante de retenciones e información de pagos
 
FechaExp
Al momento de la recepción del archivo XML por parte del Proveedor de Certificación, este debe verificar que la fecha y hora no debe ser:
 
 
LugarExpRetenc
Debe corresponder con una clave vigente de código postal incluida en el catálogo c_CodigoPostal publicado en la página del SAT.
 
CveRetenc
Este atributo debe contener una clave vigente en el catálogo c_CveRetenc. Si el valor registrado en este atributo es "25", se debe registrar información el atributo DescRetenc.
 
Elemento Retenciones
Nodo: Emisor
Atributos
 
RfcE
Se deben considerar las reglas de validación que se indican en el Anexo 29 aplicables para este atributo.
 
NomDenRazSocE
El valor de este atributo debe corresponder con el nombre del titular del certificado de sello digital del emisor.
 
RegimenFiscalE
Este atributo debe contener una clave vigente del catálogo c_RegimenFiscal. El régimen fiscal que se registre en este atributo debe corresponder con el tipo de persona del emisor, es decir, si el RFC tiene longuitud de 12 posiciones, debe ser de personal moral y si tiene longuitud de 13 posiciones debe ser persona física.
 
Elemento Retenciones
Nodo: Receptor
Atributos
 
RfcR
Si el valor de este atributo es diferente de la clave del RFC génerica "XAXX010101000", debe estar en la lista de RFC inscritos no cancelados en el SAT.
 
NomDenRazSocR
El valor de este atributo debe encontrarse en la lista de RFC inscritos no cancelados en el SAT y debe estar asociado a la clave de RFC registrado en el atributo RfcR del Nodo Retenciones:Receptor/Nacional.
 
DomicilioFiscalR
Debe corresponder con una clave vigente de código postal incluida en el catálogo c_CodigoPostal publicado en la página del SAT. El valor de este atributo debe encontrarse en la lista de RFC inscritos no cancelados en el SAT y debe estar asociado a la clave de RFC registrado en el atributo Nacional:Receptor:RfcR.
 
Elemento Retenciones
Nodo: Periodo
Atributos
 
MesIni
Este atributo debe contener una clave vigente del catálogo c_Periodo y debe ser menor o igual que el atributo MesFin.
 
MesFin
Este atributo debe contener una clave vigente del catálogo c_Periodo y debe ser mayor o igual que el atributo MesIni.
 
Ejercicio
Este atributo debe contener una clave vigente del catálogo c_Ejercicio.
 
Elemento Retenciones
Nodo: Totales
Atributos
 
MontoTotOperacion
El valor de este atributo debe ser igual a la suma de los atributos MontoTotGrav y MontoTotExent.
 
MontoTotGravado
El valor de este atributo debe ser menor o igual al atributo MontoTotOperacion.
 
MontoTotExent
El valor de este atributo debe ser menor o igual al atributo MontoTotOperacion.
 
MontoTotRet
Si el valor es mayor que cero, debe existir al menos un nodo hijo de ImpRetenidos y debe ser igual a la suma de los atributos MontoRet.
 
UtilidadBimestral
Si el valor registrado en el atributo CveRetenc es "28", el valor de este atributo debe ser mayor a cero y los atributos MontoTotGrav y MontoTotExento deben tener el valor "0".
 
Elemento Retenciones
Nodo: ImpRetenidos
Atributos
 
TipoPagoRet
Este atributo debe contener una clave vigente del catálogo c_TipoPagoRet y debe corresponder con el tipo de impuesto registrado en el atributo Impuesto.
MontoTotGravado
 
Elemento Retenciones
Nodo: Complemento
Permitir la inclusión del complemento TimbreFiscalDigital y los complementos específicos para el CFDI que ampara retenciones e información de pagos.
 
 
Validaciones adicionales del complemento para recepción de pagos.
 
Elemento Pagos
Se modifica la validación para eliminar los tipos de CFDI al que podía incorporarse el complemento y con los complementos que podía coexistir.
 
Monto (modificación)
Se adiciona la fórmula para calcular el margen de variación.
 
DoctoRelacionado (eliminada)
El nodo se vuelve requerido.
 
MonedaDR
Se elimina la validación del valor 1 en el tipo de cambio del documento relacionado cuando la moneda de pago sea MXN.
 
MetodoDePagoDR
Se elimina la validación ya que se elimina el campo.
 
 
ObjetoImp
El valor de este atributo debe contener una clave del catálogo c_ObjetoImp.
Si el valor registrado en este atributo es "02" el nodo hijo ImpuestosP del nodo DoctoRelacionado debe existir.
 
 
Nodo: DoctoRelacionado
Nodo:ImpuestosP
Debe existir al menos un elemento hijo con una retención o traslado.
 
Nodo:RetencionesP
Nodo:RetencionP
Atributos
 
BaseP
Debe ser mayor que cero
 
ImpuestoP
Deben existir los atributos para sumarizar el total de impuestos retenidos y el detalle de impuestos retenidos.
 
TipoFactorP
Debe ser distinto de exento.
 
TasaOCuotaP
Si el valor registrado es fijo debe corresponder a un valor del catálogo c_TasaOcuota, coincidir con el tipo de impuesto registrado en el atributo ImpuestoP y el factor debe corresponder con el atributo TipoFactorP.
En caso contrario, si el valor registrado es variable debe corresponder al rango entre el valor mínimo y valor máximo señalado en el catálogo.
 
ImporteP
Calcula el límite inferior como:
(BaseP - 10 - NumDecimalesBaseP/2) * (TasaOCuotaP) y este resultado truncado con la cantidad de decimales que tenga registrado este atributo.
Calcula el límite superior como:
(BaseP + 10 -NumDecimalesBaseP/2 - 10 -12) * (TasaOCuotaP) y este resultado redondearlo hacia arriba con la cantidad de decimales que tenga registrado este atributo.
El valor de este atributo debe ser mayor o igual que el límite inferior y menor o igual que el límite superior.
 
 
Nodo:TrasladosP
Nodo:TrasladoP
Atributos
 
BaseP
Debe ser mayor que cero
 
ImpuestoP
Deben existir los atributos para sumarizar el total de impuestos trasladados y el detalle de impuestos trasladados.
 
TipoFactorP
Si el valor registrado es exento no se deben registrar los atributos TasaOCuotaP ni ImporteP.
Si el valor registrado es TasaOCuota, se deben registrar los atributos TasaOCuotaP e ImporteP.
 
TipoOCuotaP
Si el valor registrado es fijo debe corresponder a un valor del catálogo c_TasaOCuota, coincidir con el tipo de impuesto registrado en el atributo ImpuestoP y el factor debe corresponder con el atributo TipoFactorP.
En caso contrario, si el valor registrado es variable debe corresponder al rango entre el valor mínimo y el valor máximo señalado en el catálogo.
 
ImporteP
Calcula el límite inferior como:
(BaseP - 10 - NumDecimalesBaseP/2) * (TasaOCuotaP) y este resultado truncado con la cantidad de decimales que tenga registrado este atributo.
Calcula el límite superior como:
(BaseP + 10 -NumDecimalesBaseP/2 - 10 -12) * (TasaOCuotaP) y este resultado redondearlo hacia arriba con la cantidad de decimales que tenga registrado este atributo.
El valor de este atributo debe ser mayor o igual que el límite inferior y menor o igual que el límite superior.
 
 
Nodo:pago
Nodo:ImpuestosP
Se elimina la validación de que al menos debe existir un elemento hijo retención o traslado.
 
Atributos
 
TotalImpuestosRetenidosP (modificación)
Se elimina la última validación para homologar como Anexo 20.
 
TotalImpuestosTrasladadosP (modifica)
Se elimina la última validación para homologar como Anexo 20.
 
 
Elemento:Pago
Nodo:ImpuestosP
Nodo:RetencionesP
Nodo:RetencionP
 
Atributos
 
ImporteP (modificación)
Se adiciona una tercera validación.
Debe ser igual al redondeo de la suma de los importes de los impuestos retenidos registrados en los documentos relacionados donde el impuesto sea igual al atributo ImpuestoP de este elemento.
 
Elemento:Pago
Nodo:ImpuestosP
Nodo:TrasladosP
En el caso de que sólo existan documentos relacionados en el comprobante con un TipoFactorP exento, este nodo no debe existir.
 
 
Elemento:Pago
Nodo:ImpuestosP
Nodo:TrasladosP
Nodo:TrasladoP
 
Atributos
 
BaseP
El valor de este atributo debe tener hasta la cantidad de decimales que soporte la moneda.
Debe ser igual al redondeo de la suma de los importes de los atributos Base registrados en los documentos relacionados donde el impuesto del documento relacionado sea igual al atributo impuesto de este elemento y la TasaOCuota del documento relacionado sea igual al atributo TasaOCuota de este elemento.
 
TasaOCuota (modificación)
Se elimina la validación existente y sustituye por una nueva.
El valor seleccionado debe corresponder a un valor donde la columna impuesto corresponda con el atributo ImpuestoP y la columna factor corresponda con el atributo TipoFactorP.
 
ImporteP (modificación)
Se adiciona una tercera validación.
Debe ser igual al redondeo de la suma de los importes de los impuestos trasladados registrados en los documentos relacionados donde el impuesto del documento relacionado sea igual al atributo ImpuestoP de este elemento y la TasaOCuotaP del documento relacionado sea igual al atributo TasaOCuotaP de este elemento.