Skip to main content

Library to manage xml CDFI from python and sign with several pacs.

Project description

CFDILib Code Health

Library to xml documents based on XSD files to manage situations where you need to sign such documents with a third party, then given a simple dictionary and a jinja2 template you will be able to generate such documents with almos 0 logic.


  • TODO



  • Update payroll12.xsd from SAT (#96)


  • Update catNomina.xsd from SAT (#95)


  • Fixed #90


  • Welcome Impuesto Locales.

  • Proper version of click.

  • Fix SAT references.


  • l10n_mx_reports: fix error in general ledger report (#78)

  • [IMP] cfdilib: xsd added to generate payment complement (#75)

  • Changed path to allow have xsd that are imported by others xsd in the same library, and not call to SAT page each time that is generated a new XML.

  • Add catPagos.xsd file

  • [FIX] cfdilib: fix xsd file name to avoid error I/O warning : failed to load external entity “tdCFDI.xsd”

  • [FIX] cfdilib: changing complement node task#22554 (#76)

  • [FIX] l10n_mx_reports: fix error in general ledger report (#81) when “Concepto” has a length over 300 characters in operations and over 200 characters in transactions. And, when account description has a length over 100 characters.

  • [FIX][cfdilib] - Welcome template for comercio exterior node.


In some cases the RFC is optional


Now certificate is optional on CFDI 3.3


Add new XSD version for CFDI 3.3


Added complement for Paymens


  • Welcome to electronic accounting 1.3


  • Added Payroll 1.2

  • Added pedimento concept for cfdi 3.3.


  • Some values are now optionals.


Some fixes regarding the fact that perceptions and taxes are optionals.


Welcome to cfdi 3.3


Welcome to payroll generation


Now the template 3.2 has a placeholder for addenda.


  • XMl for Journal Items: Assigned id by the next:

Atributo requerido para expresar el número único de identificación de la póliza. El campo deberá contener la clave o nombre utilizado por el contribuyente para diferenciar, el tipo de póliza y el número correspondiente. En un mes ordinario no debe repetirse un mismo número de póliza con la clave o nombre asignado por el contribuyente.


  • Refactor of the code for cache the temp downloaded files.

  • Fixed minor lint problems to improve the readability of the code.


  • Refactor of the code for cache the temp downloaded files.

  • Fixed minor lint problems to improve the readability of the code.


  • Refactiring the validation approach to use a proper way and not be sticked to an specific lxml version


  • Electronic accounting ready.

    • CoA.

    • Moves.

    • Balance

0.1.0 (2016-1-22)

  • First release on PyPI.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cfdilib-0.7.5.tar.gz (534.1 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page