Crear clase con modelo de CFDI 4.0 C#

Para generar la clase del modelo con todos los tipos de datos y todos los catálogos requeridos para poder generar un XML de factura electrónica seguimos los siguientes pasos.

Necesitamos descargar tres archivos en formato XSD desde la pagina de documentación de CFDI 4.0

http://omawww.sat.gob.mx/tramitesyservicios/Paginas/anexo_20.htm

Debajo de la tabla encontramos algunos archivos útiles, entre ellos los xsd que necesitamos

Tenemos que descargar los tres archivos porque el principal que se llama cfdv40.xsd tiene dos dependencias a los otros dos archivos xsd, si no se descargan esos archivos no se podrá crear la clase, en este caso los guarde en la carpeta c:/cfdi pero pueden guardarlos directamente en una carpeta de su proyecto.

Necesitamos una aplicacion de consola que se llama Visual Studio 2022 Developer Command Prompt, que se instala cuando instalas Visual Studio 2022 en este caso.

Abrimos la ruta donde se enuentran los archivos xsd con el comando cd

 
cd C:/cfdi
 

Ejecutamos el siguiente comando donde es muy importante incluir los archivos de dependencia para que funcione, hay que ser muy cuidadosos de escribir bien los nombres de los archivos con su extensión.

 
xsd cfdv40.xsd tdCFDI.xsd catCFDI.xsd /classes

Finalmente la clase .cs esta creada dentro del mismo directorio, listo para importar a su proyecto.

Solo hay que tener en cuenta que esta clase tiene un peso muy grande, casi 15 MB ya que se han creado mas de 600 mil lineas de código porque incluye todos los catalogos como el de claves de productos y servicios (c_ClaveProdServ) que es el mas grande.

Loading

Matriz de errores CFDI 4.0

Descarga la matriz de errores para CFDI 4.0

CódigoNodo / CampoValidaciónError
CFDI40101Comprobante: FechaEste debe cumplir con el patrón (20[1-9][0-9])-(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]) y debe corresponder con la hora local donde se expide el comprobante.“El campo Fecha no cumple con el patrón requerido.”
CFDI40102Comprobante: SelloDesencriptar el contenido de este atributo usando el certificado incluido en el atributo “Certificado”. Generar la cadena original del comprobante. Aplicar el algoritmo de digestión SHA-256. El resultado de la digestión debe ser igual al resultado de la desencripción del sello.El resultado de la digestión debe ser igual al resultado de la desencripción del sello.
CFDI40103Comprobante: FormaPagoAtributo condicional para expresar la clave de la forma de pago de los bienes o servicios amparados por el comprobante.Si existe el tipo de comprobante T, N o P el campo FormaPago no debe existir.
CFDI40104Comprobante: FormaPagoEste atributo, debe contener un valor del catálogo c_FormaPago.El campo FormaPago no contiene un valor del catálogo c_FormaPago.
CFDI40105Comprobante: FormaPagoEste atributo debe contener el valor “99” cuando el atributo MetodoPago contenga el valor “PPD”.El campo FormaPago no contiene el valor “99”.
CFDI40106Comprobante: CertificadoEl atributo debe contener un archivo .cer válido.EL certificado no cumple con alguno de los valores permitidos.
CFDI40107Comprobante: SubTotalEl valor de este atributo debe tener hasta la cantidad de decimales que soporte la moneda.El valor de este campo SubTotal excede la cantidad de decimales que soporta la moneda.
CFDI40108Comprobante: SubTotalCuando el TipoDeComprobante sea I, E o N, el importe registrado en el atributo debe ser igual al redondeo de la suma de los importes de los conceptos registrados.El TipoDeComprobante es I,E o N, el importe registrado en el campo no es igual al redondeo de la suma de los importes de los conceptos registrados.
CFDI40109Comprobante: SubTotalSi el comprobante es T o P el importe debe ser 0, o cero con decimales.El TipoDeComprobante es T o P y el importe no es igual a 0, o cero con decimales.
CFDI40110Comprobante: DescuentoEl valor registrado debe ser menor o igual que el atributo Subtotal.El valor registrado en el campo Descuento no es menor o igual que el campo Subtotal.
CFDI40111Comprobante: DescuentoCuando el TipoDeComprobante sea I, E o N y algún concepto incluya el atributo Descuento, debe existir este atributo y debe ser igual al redondeo de la suma de los atributos Descuento registrados en los conceptos; en otro caso se debe omitir este atributo.El TipoDeComprobante no es I,E o N, y un concepto incluye el campo descuento.
CFDI40112Comprobante: DescuentoEl valor de este atributo debe tener hasta la cantidad de decimales que soporte la moneda.El valor del campo Descuento excede la cantidad de decimales que soporta la moneda.
CFDI40113Comprobante: MonedaEste atributo, debe contener un valor del catálogo c_Moneda.El campo Moneda no contiene un valor del catálogo c_Moneda.
CFDI40114Comprobante: TipoCambioSi este atributo es MXN, puede omitirse el atributo TipoCambio, pero si se incluye, debe tener el valor “1”.El campo TipoCambio no tiene el valor “1” y la moneda indicada es MXN.
CFDI40115Comprobante: TipoCambioEste atributo es requerido cuando el atributo Moneda tenga un valor distinto de MXN y XXX.El campo TipoCambio se debe registrar cuando el campo Moneda tiene un valor distinto de MXN y XXX.
CFDI40116Comprobante: TipoCambioEste atributo no se debe registrar cuando el atributo Moneda tenga el valor XXX.El campo TipoCambio no se debe registrar cuando el campo Moneda tiene el valor XXX.
CFDI40117Comprobante: TipoCambioEste atributo debe cumplir con el patrón [0-9]{1,18}(.[0-9]{1,6})?.El campo TipoCambio no cumple con el patrón requerido.
CFDI40118Comprobante: TipoCambioSi el valor de este atributo 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.Cuando el valor del campo TipoCambio se encuentre fuera de los límites establecidos, debe existir el campo Confirmacion.
CFDI40119Comprobante: TotalAtributo 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 y/o locales.El campo Total no corresponde con la suma del subtotal, menos los descuentos aplicables, más las contribuciones recibidas (impuestos trasladados – federales o locales, derechos, productos, aprovechamientos, aportaciones de seguridad social, contribuciones de mejoras) menos los impuestos retenidos y/o locales.
CFDI40120Comprobante: Total 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.Cuando el valor del campo Total se encuentre fuera de los límites establecidos, debe existir el campo Confirmacion.
CFDI40121Comprobante: TipoDeComprobanteEste atributo, debe contener un valor del catálogo c_TipoDeComprobante.El campo TipoDeComprobante, no contiene un valor del catálogo c_TipoDeComprobante.
CFDI40122Comprobante: ExportacionAtributo requerido para expresar si el comprobante ampara una operación de exportación.El campo Exportacion contiene el valor “02”, el CFDI debe contener el complemento para Comercio Exterior.
CFDI40123Comprobante: ExportacionEste atributo, debe contener un valor del catálogo c_Exportacion.El campo Exportacion no contiene un valor del catálogo c_Exportacion.
CFDI40124Comprobante: MetodoPagoEste atributo, debe contener un valor del catálogo c_MetodoPago.El campo MetodoPago, no contiene un valor del catálogo c_MetodoPago.
CFDI40125Comprobante: MetodoPagoSe debe omitir el atributo MetodoPago cuando el TipoDeComprobante es T o P.Se debe omitir el campo MetodoPago cuando el TipoDeComprobante es T o P.
CFDI40126Comprobante: LugarExpedicionEste atributo, debe contener un valor del catálogo c_CodigoPostal.El campo LugarExpedicion, no contiene un valor del catálogo c_CodigoPostal.
CFDI40127Comprobante: ConfirmacionEste atributo no debe existir cuando los atributos TipoCambio y/o Total están dentro del rango permitido.El campo Confirmacion no debe existir cuando los campos TipoCambio y/o Total están dentro del rango permitido.
CFDI40128Comprobante: ConfirmacionEl Proveedor de Certificación debe verificar que el emisor le haya solicitado esta clave de confirmación.Número de confirmación inválido.
CFDI40129Comprobante: ConfirmacionEl Proveedor de Certificación debe verificar que la clave de confirmación no se utilice en más de un comprobante.Número de confirmación utilizado previamente.
CFDI40130cfdi: InformacionGlobal: Este Nodo debe existir cuando el atributo Rfc del nodo receptor contiene el valor “XAXX010101000” y el valor del atributo Nombre del nodo Receptor contiene el valor “PUBLICO EN GENERAL”.El campo Rfc del nodo receptor debe contener valor “XAXX010101000” y el valor del campo Nombre del nodo Receptor debe contener el valor “PUBLICO EN GENERAL”.
CFDI40131cfdi: InformacionGlobal: PeriodicidadEste atributo, debe contener un valor del catálogo c_PeriodicidadEl campo Periodicidad, no contiene un valor del catálogo c_Periodicidad.
CFDI40132cfdi: InformacionGlobal: PeriodicidadCuando el valor de este atributo contenga la clave “05” el atributo RegimenFiscal debe contener el valor “621”.El campo RegimenFiscal, no contiene el valor 621
CFDI40133cfdi: InformacionGlobal: MesesEste atributo, debe contener un valor del catálogo c_MesesEl campo Meses, no contiene un valor del catálogo c_Meses.
CFDI40134cfdi: InformacionGlobal: MesesSi 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”, “12”.El campo Meses, no contiene alguno de los valores “01”, “02”, “03”, “04”, “05”, “06”, “07”, “08”, “09”, “10”, “11” o “12”.
CFDI40135cfdi: InformacionGlobal: MesesSi el atributo Periodicidad contiene el valor “05”, este atributo debe contener alguno de los valores “13”, “14”, “15”, “16”, “17” o “18”.El campo Meses, no contiene alguno de los valores “13”, “14”, “15”, “16”, “17” o “18”.
CFDI40136cfdi: InformacionGlobal: AñoAtributo requerido para expresar el año al que corresponde la información del comprobante global. El campo Año, no es igual al año en curso o al año inmediato anterior.
CFDI40137cfdi: CfdiRelacionados: TipoRelacionEste atributo, debe contener un valor del catálogo c_TipoRelacion.El campo TipoRelacion, no contiene un valor del catálogo c_TipoRelacion.
CFDI40138cfdi: Emisor: NombreEste atributo, debe encontrarse en la lista de RFC inscritos no cancelados en el SAT.El campo Nombre del emisor, debe encontrarse en la lista de RFC inscritos no cancelados en el SAT.
CFDI40139cfdi: Emisor: NombreEste atributo, debe pertenecer al nombre asociado al RFC registrado en el atributo Rfc del Nodo Emisor.El campo Nombre del emisor, debe pertenecer al nombre asociado al RFC registrado en el campo Rfc del Emisor.
CFDI40140cfdi: Emisor: RegimenFiscalEste atributo, debe contener un valor del catálogo c_RegimenFiscal.El campo RegimenFiscal, no contiene un valor del catálogo c_RegimenFiscal.
CFDI40141cfdi: Emisor: RegimenFiscalEl régimen fiscal que se registre en este atributo debe corresponder con el tipo de persona del emisor.La clave del campo RegimenFiscal debe corresponder con el tipo de persona (fisica o moral).
CFDI40142cfdi: Emisor: FacAtrAdquirenteEste atributo, debe contener el número de operación siempre que la respuesta del servicio del Validador de RFC para emitir facturas a través del adquirente, sea en sentido positivo.El campo FacAtrAdquirente, no contiene un número de operación valido.
CFDI40143cfdi: Receptor: RfcCuando no se utilice un RFC genérico, el RFC debe estar en la lista de RFC inscritos no cancelados en el SAT.Este RFC del receptor no existe en la lista de RFC inscritos no cancelados del SAT.
CFDI40144cfdi: Receptor: NombreEste atributo, debe encontrarse en la lista de RFC inscritos no cancelados en el SAT.El campo Nombre del receptor, debe encontrarse en la lista de RFC inscritos no cancelados en el SAT.
CFDI40145cfdi: Receptor: NombreEste atributo, debe pertenecer al nombre asociado al RFC registrado en el atributo Rfc del Nodo Receptor.El campo Nombre del receptor, debe pertenecer al nombre asociado al RFC registrado en el campo Rfc del Receptor.
CFDI40146cfdi: Receptor: NombreSi el valor registrado en este atributo es “PUBLICO EN GENERAL”, el valor del atributo RFC del receptor debe ser “XAXX010101000”.El campo RFC del receptor debe contener el valor “XAXX010101000”.
CFDI40147cfdi: Receptor: DomicilioFiscalReceptorEste atributo, debe encontrarse en la lista de RFC inscritos no cancelados en el SAT.El campo DomicilioFiscalReceptor del receptor, debe encontrarse en la lista de RFC inscritos no cancelados en el SAT.
CFDI40148cfdi: Receptor: DomicilioFiscalReceptorEste atributo, debe pertenecer al nombre asociado al RFC registrado en el atributo Rfc del Nodo Receptor.El campo DomicilioFiscalReceptor del receptor, debe pertenecer al nombre asociado al RFC registrado en el campo Rfc del Receptor.
CFDI40149cfdi: Receptor: DomicilioFiscalReceptorSi el valor del atributo Rfc del receptor es “XAXX010101000” o “XEXX010101000”, este atributo debe ser igual al valor del atributo LugarExpedicion.El campo DomicilioFiscalReceptor, no es igual al valor del campo LugarExpedicion.
CFDI40150cfdi: Receptor: ResidenciaFiscalEste atributo, debe contener un valor del catálogo c_Pais.El campo ResidenciaFiscal, no contiene un valor del catálogo c_Pais.
CFDI40151cfdi: Receptor: ResidenciaFiscalSi el RFC del receptor es de un RFC registrado en el SAT o un RFC genérico nacional, este atributo NO debe existir.El RFC del receptor es de un RFC registrado en el SAT o un RFC genérico nacional y existe el campo ResidenciaFiscal.
CFDI40152cfdi: Receptor: ResidenciaFiscalEl valor del atributo no puede ser MEX.El valor del campo ResidenciaFiscal no puede ser MEX.
CFDI40153cfdi: Receptor: ResidenciaFiscalSi el RFC del receptor es un RFC genérico extranjero y el comprobante incluye el complemento de comercio exterior, o se registró el atributo NumRegIdTrib, este atributo debe existir.Se debe registrar un valor de acuerdo al catálogo c_Pais en en el campo ResidenciaFiscal, cuando en el en el campo NumRegIdTrib se registre información.
CFDI40154cfdi: Receptor: NumRegIdTribSi el valor del atributo es un RFC inscrito no cancelado en el SAT o un RFC genérico nacional, no se debe registrar este atributo.El valor del campo es un RFC inscrito no cancelado en el SAT o un RFC genérico nacional, y se registró el campo NumRegIdTrib.
CFDI40155cfdi: Receptor: NumRegIdTribSi el RFC del receptor es un RFC genérico extranjero y el comprobante incluye el complemento de comercio exterior, debe existir este atributo.Para registrar el campo NumRegIdTrib, el CFDI debe contener el complemento de comercio exterior y el RFC del receptor debe ser un RFC genérico extranjero.
CFDI40156cfdi: Receptor: NumRegIdTribEste atributo debe cumplir con el patrón correspondiente incluido en la columna “Formato de Registro de Identidad Tributaria” que publique en el catalogo de C_Pais.El campo NumRegIdTrib no cumple con el patrón correspondiente.
CFDI40157cfdi: Receptor: RegimenFiscalReceptorEste atributo, debe contener un valor del catálogo c_RegimenFiscal.El campo RegimenFiscalR, no contiene un valor del catálogo c_RegimenFiscal.
CFDI40158cfdi: Receptor: RegimenFiscalReceptorEl régimen fiscal que se registre en este atributo debe corresponder con el tipo de persona del receptor.La clave del campo RegimenFiscalR debe corresponder con el tipo de persona (física o moral).
CFDI40159cfdi: Receptor: RegimenFiscalReceptorSi el atributo Rfc del Receptor contiene el valor “XAXX010101000” o el valor “XEXX010101000” en este atributo se debe registrar la clave “616” La clave del campo RegimenFiscalR no corresponde de acuerdo al RFC del receptor.
CFDI40160cfdi: Receptor: UsoCFDIEste atributo, debe contener un valor del catálogo c_UsoCFDI.El campo UsoCFDI, no contiene un valor del catálogo c_UsoCFDI.
CFDI40161cfdi: Receptor: UsoCFDIEl valor que se registre en este atributo debe aplicar para el tipo de persona del receptor y el régimen correspondiente conforme al catálogo c_UsoCFDI.La clave del campo UsoCFDI debe corresponder con el tipo de persona (física o moral) y el régimen correspondiente conforme al catálogo c_UsoCFDI.
CFDI40162cfdi: Conceptos/Concepto: ClaveProdServEste atributo, debe contener un valor del catálogo c_ClaveProdServ.El campo ClaveProdServ, no contiene un valor del catálogo c_ClaveProdServ.
CFDI40163cfdi: Conceptos/Concepto: ClaveProdServDeben existir los complementos que señale el catálogo c_ClaveProdServ aplicables para este atributo.No existe el complemento requerido para el valor de ClaveProdServ.
CFDI40164cfdi: Conceptos/Concepto: ClaveProdServDeben existir los impuestos trasladados y/o retenidos que señale el catálogo c_ClaveProdServ aplicables para este atributo.No está declarado el impuesto relacionado con el valor de ClaveProdServ.
CFDI40165cfdi: Conceptos/Concepto: ClaveUnidadEste atributo, debe contener un valor del catálogo c_ClaveUnidad.El campo ClaveUnidad no contiene un valor del catálogo c_ClaveUnidad.
CFDI40166cfdi: Conceptos/Concepto: ValorUnitarioEl valor de este atributo debe ser mayor que cero (0) cuando el tipo de comprobante es Ingreso, Egreso o Nomina.El valor valor del campo ValorUnitario debe ser mayor que cero (0) cuando el tipo de comprobante es Ingreso, Egreso o Nomina.
CFDI40167cfdi: Conceptos/Concepto: ImporteEl valor de este atributo debe ser mayor o igual que el límite inferior y menor o igual que el límite superior.El valor del campo Importe no se encuentra entre el limite inferior y superior permitido.
CFDI40168cfdi: Conceptos/Concepto: DescuentoEl valor de este atributo debe tener hasta la cantidad de decimales que soporte la moneda.El valor del campo Descuento debe tener hasta la cantidad de decimales que tenga registrado el campo importe del concepto.
CFDI40169cfdi: Conceptos/Concepto: DescuentoEl valor registrado debe ser menor o igual al atributo Importe.El valor del campo Descuento es mayor que el campo Importe.
CFDI40170cfdi: Conceptos/Concepto: ObjetoImpEste atributo, debe contener un valor del catálogo c_ObjetoImp.El campo ObjetoImp, no contiene un valor del catálogo c_ObjetoImp.
CFDI40171cfdi: Conceptos/Concepto: ObjetoImpSi este atributo contiene el valor “02” el nodo hijo Impuestos del nodo concepto debe existir.El nodo concepto, no contiene el nodo hijo Impuestos.
CFDI40172cfdi: Conceptos/Concepto: ObjetoImpSi este atributo contiene el valor “01” o “03” el nodo hijo Impuestos del nodo concepto no debe existir.El nodo hijo Impuestos del nodo concepto, no debe existir.
CFDI40173cfdi: Conceptos/Concepto: Impuestos: ImpuestosEn caso de utilizar el nodo Impuestos en un concepto, se deben incluir impuestos de traslado y/o retenciones.En caso de utilizar el nodo Impuestos en un concepto, se deben incluir impuestos de traslado y/o retenciones.
CFDI40174cfdi: Conceptos/Concepto: Impuestos: Traslados/Traslado: BaseEl valor debe ser mayor que cero.El valor del campo Base que corresponde a Traslado debe ser mayor que cero.
CFDI40175cfdi: Conceptos/Concepto: Impuestos: Traslados/Traslado: Impuesto Este atributo, debe contener un valor del catálogo c_Impuesto.El valor del campo Impuesto que corresponde a Traslado no contiene un valor del catálogo c_Impuesto.
CFDI40176cfdi: Conceptos/Concepto: Impuestos: Traslados/Traslado: TipoFactorEste atributo, debe contener un valor del catálogo c_TipoFactor.El valor del campo TipoFactor que corresponde a Traslado no contiene un valor del catálogo c_TipoFactor.
CFDI40177cfdi: Conceptos/Concepto: Impuestos: Traslados/Traslado: TipoFactorSi el valor registrado es Exento no se deben registrar los atributos TasaOCuota ni Importe.Si el valor registrado en el campo TipoFactor que corresponde a Traslado es Exento no se deben registrar los campos TasaOCuota ni Importe.
CFDI40178cfdi: Conceptos/Concepto: Impuestos: Traslados/Traslado: TipoFactorSi el valor registrado es Tasa o Cuota, se deben registrar los atributos TasaOCuota e Importe.Si el valor registrado en el campo TipoFactor que corresponde a Traslado es Tasa o Cuota, se deben registrar los campos TasaOCuota e Importe.
CFDI40179cfdi: Conceptos/Concepto: Impuestos: Traslados/Traslado: TasaOCuotaSi 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 Impuesto y el factor debe corresponder con el atributo TipoFactor. El valor del campo TasaOCuota que corresponde a Traslado no contiene un valor del catálogo c_TasaOcuota o se encuentra fuera de rango.
CFDI40180cfdi: Conceptos/Concepto: Impuestos: Traslados/Traslado: ImporteEl valor de este atributo debe ser mayor o igual que el límite inferior y menor o igual que el límite superior.El valor del campo Importe o que corresponde a Traslado no se encuentra entre el limite inferior y superior permitido.
CFDI40181cfdi: Conceptos/Concepto: Impuestos: Retenciones/Retencion: BaseEl valor debe ser mayor que cero.El valor del campo Base que corresponde a Retención debe ser mayor que cero.
CFDI40182cfdi: Conceptos/Concepto: Impuestos: Retenciones/Retencion: Impuesto Este atributo, debe contener un valor del catálogo c_Impuesto.El valor del campo Impuesto que corresponde a Retención no contiene un valor del catálogo c_Impuesto.
CFDI40183cfdi: Conceptos/Concepto: Impuestos: Retenciones/Retencion: TipoFactorEste atributo, debe contener un valor del catálogo c_TipoFactor.El valor del campo TipoFactor que corresponde a Retención no contiene un valor del catálogo c_TipoFactor.
CFDI40184cfdi: Conceptos/Concepto: Impuestos: Retenciones/Retencion: TipoFactorEl valor registrado debe ser distinto de Exento.Si el valor registrado en el campo TipoFactor que corresponde a Retención debe ser distinto de Exento.
CFDI40185cfdi: Conceptos/Concepto: Impuestos: Retenciones/Retencion: TasaOCuotaSi 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 Impuesto y el factor debe corresponder con el atributo TipoFactor.El valor del campo TasaOCuota que corresponde a Retención, no contiene un valor del catálogo c_TasaOcuota o se encuentra fuera de rango.
CFDI40186cfdi: Conceptos/Concepto: Impuestos: Retenciones/Retencion: ImporteEl valor de este atributo debe ser mayor o igual que el límite inferior y menor o igual que el límite superior.El valor del campo Importe que corresponde a Retención no se encuentra entre el limite inferior y superior permitido.
CFDI40187cfdi: Conceptos/Concepto: ACuentaTerceros: RfcACuentaTercerosEl valor de este atributo, debe encontrarse en la lista l_LCO.El campo ACuentaTerceros, no se encuentra en la lista l_LCO.
CFDI40188cfdi: Conceptos/Concepto: ACuentaTerceros: RfcACuentaTercerosEl valor registrado en este atributo deber ser diferente al valor registrado en los atributos Rfc de los nodos  Emisor y Receptor. El valor del campo RfcACuentaTerceros, debe ser diferente de los valores de los campos Rfc del Emisor y Receptor.
CFDI40189cfdi: Conceptos/Concepto: ACuentaTerceros: NombreACuentaTercerosEste atributo, debe encontrarse en la lista de RFC inscritos no cancelados en el SAT.El campo NombreACuentaTerceros, debe encontrarse en la lista de RFC inscritos no cancelados en el SAT.
CFDI40190cfdi: Conceptos/Concepto: ACuentaTerceros: NombreACuentaTercerosEste atributo, debe pertenecer al nombre asociado al RFC registrado en el atributo Rfc del Nodo ACuentaTerceros.El campo NombreACuentaTerceros, debe pertenecer al nombre asociado al RFC registrado en el campo Rfc del tercero.
CFDI40191cfdi: Conceptos/Concepto: ACuentaTerceros: RegimenFiscalACuentaTercerosEste atributo, debe contener un valor del catálogo c_RegimenFiscal.El campo RegimenFiscalACuentaTerceros, no contiene un valor del catálogo c_RegimenFiscal.
CFDI40192cfdi: Conceptos/Concepto: ACuentaTerceros: DomicilioFiscalACuentaTercerosEste atributo, debe encontrarse en la lista de RFC inscritos no cancelados en el SAT.El campo DomicilioFiscalACuentaTerceros, debe encontrarse en la lista de RFC inscritos no cancelados en el SAT.
CFDI40193cfdi: Conceptos/Concepto: ACuentaTerceros: DomicilioFiscalACuentaTercerosEste atributo, debe pertenecer al nombre asociado al RFC registrado en el atributo RfcACuentaTerceros del Nodo ACuentaTerceros.El campo DomicilioFiscalACuentaTerceros, debe pertenecer al nombre asociado al RFC registrado en el campo Rfc del tercero.
CFDI40194cfdi: Conceptos/Concepto: InformacionAduanera: NumeroPedimentoEste atributo, debe cumplir con las reglas de validación definidas.El número de pedimento es inválido.
CFDI40195cfdi: Conceptos/Concepto: InformacionAduanera: NumeroPedimentoEl NumeroPedimento no debe existir si se incluye el complemento de comercio exterior.El NumeroPedimento no debe existir si se incluye el complemento de comercio exterior.
CFDI40196cfdi: Conceptos/Concepto: Parte: ClaveProdServEste atributo, debe contener un valor del catálogo c_ClaveProdServ.El campo ClaveProdServ, no contiene un valor del catálogo c_ClaveProdServ.
CFDI40197cfdi: Conceptos/Concepto: Parte: ValorUnitarioEl valor de este atributo debe ser mayor que cero (0).El valor del campo ValorUnitario debe ser mayor que cero (0).
CFDI40198cfdi: Conceptos/Concepto: Parte: ImporteEl valor de este atributo debe ser mayor o igual que el límite inferior y menor o igual que el límite superior.El valor del campo Importe no se encuentra entre el limite inferior y superior permitido.
CFDI40199cfdi: Conceptos/Concepto: Parte: InformacionAduanera: NumeroPedimentoEste atributo, debe cumplir con las reglas de validación definidas.El número de pedimento es inválido.
CFDI40200cfdi: Conceptos/Concepto: Parte: InformacionAduanera: NumeroPedimentoEl NumeroPedimento no debe existir si se incluye el complemento de comercio exterior.El NumeroPedimento no debe existir si se incluye el complemento de comercio exterior.
CFDI40201cfdi: Impuestos: ImpuestosCuando el TipoDeComprobante sea T o P, este elemento no debe existir.Cuando el TipoDeComprobante sea T o P, el elemento Impuestos no debe existir.
CFDI40202cfdi: Impuestos: TotalImpuestosRetenidosEl valor de este atributo debe tener hasta la cantidad de decimales que soporte la moneda.El valor del campo TotalImpuestosRetenidos debe tener hasta la cantidad de decimales que soporte la moneda.
CFDI40203cfdi: Impuestos: TotalImpuestosRetenidosEl valor de este atributo debe ser igual a la suma de los importes registrados en el elemento hijo Retencion.El valor del campo TotalImpuestosRetenidos debe ser igual a la suma de los importes registrados en el elemento hijo Retencion.
CFDI40204cfdi: Impuestos: TotalImpuestosTrasladadosEl valor de este atributo debe tener hasta la cantidad de decimales que soporte la moneda.El valor del campo TotalImpuestosTrasladados debe tener hasta la cantidad de decimales que soporte la moneda.
CFDI40205cfdi: Impuestos: TotalImpuestosTrasladadosEl valor de este atributo debe ser igual a la suma de los importes registrados en el elemento hijo Traslado.El valor del campo TotalImpuestosTrasladados no es igual a la suma de los importes registrados en el elemento hijo Traslado.
CFDI40206cfdi: Impuestos: Retenciones: RetencionesDebe existir el atributo TotalImpuestosRetenidos.Debe existir el campo TotalImpuestosRetenidos.
CFDI40207cfdi: Impuestos: Retenciones/Retencion: ImpuestoEs atributo, debe contener un valor del catálogo c_Impuesto.El campo Impuesto no contiene un valor del catálogo c_Impuesto.
CFDI40208cfdi: Impuestos: Retenciones/Retencion: ImpuestoDebe haber sólo un registro por cada tipo de impuesto retenido.Debe haber sólo un registro por cada tipo de impuesto retenido.
CFDI40209cfdi: Impuestos: Retenciones/Retencion: ImporteDebe existir el atributo TotalImpuestosRetenidos.Debe existir el campo TotalImpuestosRetenidos.
CFDI40210cfdi: Impuestos: Retenciones/Retencion: ImporteEl valor de este atributo debe tener hasta la cantidad de decimales que soporte la moneda.El valor del campo Importe correspondiente a Retención debe tener hasta la cantidad de decimales que soporte la moneda.
CFDI40211cfdi: Impuestos: Retenciones/Retencion: ImporteDebe ser igual al redondeo de la suma de los importes de los impuestos retenidos registrados en los conceptos donde el impuesto sea igual al atributo impuesto de este elemento.El campo Importe correspondiente a Retención no es igual al redondeo de la suma de los importes de los impuestos retenidos registrados en los conceptos donde el impuesto sea igual al campo impuesto de este elemento.
CFDI40212cfdi: Impuestos: Traslados: TrasladosDebe existir el atributo TotalImpuestosTrasladados, cuando existan conceptos con un TipoFactor distinto a Exento. Debe existir el campo TotalImpuestosTrasladados.
CFDI40213cfdi: Impuestos: Traslados/Traslado: TrasladoEn el caso de que sólo existan conceptos con TipoFactor Exento, en este nodo solo deben existir los atributos Base, Impuesto y TipoFactor.Deben exitir los campos Base, Impuesto y TipoFactor
CFDI40214cfdi: Impuestos: Traslados/Traslado: BaseEl valor de este atributo debe tener hasta la cantidad de decimales que soporte la moneda.El valor del campo Importe correspondiente a Traslado debe tener hasta la cantidad de decimales que soporte la moneda.
CFDI40215cfdi: Impuestos: Traslados/Traslado: BaseDebe ser igual al redondeo de la suma de los importes de los atributos Base trasladados registrados en los conceptos donde el impuesto del concepto sea igual al atributo impuesto de este elemento y la TasaOCuota del concepto sea igual al atributo TasaOCuota de este elemento.El campo Importe correspondiente a Traslado no es igual al redondeo de la suma de los importes de las bases trasladados registrados en los conceptos donde el impuesto del concepto sea igual al campo impuesto de este elemento y la TasaOCuota del concepto sea igual al campo TasaOCuota de este elemento.
CFDI40216cfdi: Impuestos: Traslados/Traslado: BaseEn 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.El importe del campo Base correspondiente a Traslado no es igual al redondeo de la suma de los importes de las bases trasladados registrados en los conceptos.
CFDI40217cfdi: Impuestos: Traslados/Traslado: ImpuestoEste atributo, debe contener un valor del catálogo c_Impuesto.El campo Impuesto no contiene un valor del catálogo c_Impuesto.
CFDI40218cfdi: Impuestos: Traslados/Traslado: ImpuestoDebe haber sólo un registro con la misma combinación de impuesto, factor y tasa por cada traslado.Debe haber sólo un registro con la misma combinación de impuesto, factor y tasa por cada traslado.
CFDI40219cfdi: Impuestos: Traslados/Traslado: TasaOCuotaEl valor seleccionado debe corresponder a un valor del catalogo donde la columna impuesto corresponda con el atributo impuesto y la columna factor corresponda con el atributo TipoFactor.El valor seleccionado debe corresponder a un valor del catalogo donde la columna impuesto corresponda con el campo impuesto y la columna factor corresponda con el campo TipoFactor.
CFDI40220cfdi: Impuestos: Traslados/Traslado: ImporteEl valor de este atributo debe tener hasta la cantidad de decimales que soporte la moneda.El valor del campo Importe correspondiente a Traslado debe tener hasta la cantidad de decimales que soporte la moneda.
CFDI40221cfdi: Impuestos: Traslados/Traslado: ImporteDebe ser igual al redondeo de la suma de los importes de los impuestos trasladados registrados en los conceptos donde el impuesto del concepto sea igual al atributo impuesto de este elemento y la TasaOCuota del concepto sea igual al atributo TasaOCuota de este elemento.El campo Importe correspondiente a Traslado no es igual al redondeo de la suma de los importes de los impuestos trasladados registrados en los conceptos donde el impuesto del concepto sea igual al campo impuesto de este elemento y la TasaOCuota del concepto sea igual al campo TasaOCuota de este elemento.
CFDI40999Error no clasificado: No clasificadoError no clasificado.Error no clasificado.

Loading

Estandar CFDI 4.0

Descargar Estandar CFDI 4.0

Nodo : Comprobante

Descripción

Estándar de Comprobante Fiscal Digital por Internet.

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 AAAAMM-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}


Nodo : InformacionGlobal

Descripción

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

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


Nodo : CfdiRelacionados

Descripción

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

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 Secuencia (1, 1) CfdiRelacionado (1, Ilimitado)


Nodo : CfdiRelacionado

Descripción

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

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}


Nodo : Emisor

Descripción

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

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}


Nodo : Receptor

Descripción

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

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


Nodo : Conceptos

Descripción

Nodo requerido para listar los conceptos cubiertos por el comprobante.

Nodo : Concepto

Descripción

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

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


Nodo : Impuestos

Descripción

Nodo condicional para capturar los impuestos aplicables al presente concepto.

Nodo : Traslados

Descripción

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

Nodo : Traslado

Descripción

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

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


Nodo : Retenciones

Descripción

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

Nodo : Retencion

Descripción

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

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


Nodo : ACuentaTerceros

Descripción

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

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}


Nodo : InformacionAduanera

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.

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}


Nodo : CuentaPredial

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.

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}


Nodo : ComplementoConcepto

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.

Nodo : Parte

Descripción

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

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


Nodo : InformacionAduanera

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.

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}


Nodo : Impuestos

Descripción

Nodo condicional para expresar el resumen de los impuestos aplicables.

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


Nodo : Retenciones

Descripción

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

Nodo : Retencion

Descripción

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

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


Nodo : Traslados

Descripción

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

Nodo : Traslado

Descripción

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

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


Nodo : Complemento

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.

Nodo : Addenda

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.

Loading

Cancelación 4.0

La cancelación 4.0 entra en vigor a partir del 01 de enero de 2022 siendo obligatoria hasta el 31 de enero de 2022.

Se agrega el motivo de la cancelación por medio de un código del catálogo

CódigoEscenario de cancelación
01 – Comprobante emitido con errores con relación Cuando el CFDI cancelado contiene errores y se emite uno nuevo para reemplazarlo, en este caso se deberá enviar el UUID del nuevo comprobante para la cancelación.
02 – Comprobante emitido con errores sin relación Cuando el Comprobante cancelado contiene errores pero no se crea uno nuevo en sustitución, por ejemplo si se facturó a un cliente incorrecto, no se envía ningún UUID
03 – No se llevó a cabo la operación Cuando la operación no se alcanza a realizar o se decide que no se llevará a cabo y el comprobante se tiene que cancelar
04 – Operación nominativa relacionada en una factura global Cuando se realiza una operación pero el cliente no pide su factura con su RFC, el vendedor emite un comprobante simplificado y posteriormente lo integra en una factura global, después, el cliente regresa para solicitar su factura con su RFC, entonces el vendedor tiene que cancelar la factura global para eliminar la operación del cliente

Si el motivo de cancelación es por reemplazo de CFDI también se agrega el UUID del CFDI que reemplaza al que se está cancelando.

*Tanto el motivo de cancelación como el UUID de reemplazo se envían en la llamada del servicio de cancelación de tu Proveedor Autorizado de Comprobantes (PAC)

02 – Comprobante emitido con errores sin relaciónCuando el Comprobante cancelado contiene errores pero no se crea uno nuevo en sustitución, por ejemplo si se facturó a un cliente incorrecto, no se envía ningún UUID

03 – No se llevó a cabo la operaciónCuando la operación no se alcanza a realizar o se decide que no se llevará a cabo y el comprobante se tiene que cancelar

04 – Operación nominativa relacionada en una factura globalCuando se realiza una operación pero el cliente no pide su factura con su RFC, el vendedor emite un comprobante simplificado y posteriormente lo integra en una factura global, después, el cliente regresa para solicitar su factura con su RFC, entonces el vendedor tiene que cancelar la factura global para eliminar la operación del cliente

Se agrega una validación para cancelar comprobantes del ejercicio que está en curso.

Las facturas globales solo se podrán cancelar dentro del periodo que se emita

Preguntas frecuentes y escenarios de cancelación

https://www.sat.gob.mx/cs/Satellite?blobcol=urldata&blobkey=id&blobtable=MungoBlobs&blobwhere=1461175074256&ssbinary=true

Loading