{ "info": { "author": "Alexis de Lattre", "author_email": "alexis.delattre@akretion.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "Factur-X Python library\n=======================\n\nFactur-X is the e-invoicing standard for France and Germany. The Factur-X specifications are available on the `FNFE-MPE website `_ in English and French. The Factur-X standard is also called ZUGFeRD 2.0 in Germany.\n\nThe main feature of this Python library is to generate Factur-X invoices from a regular PDF invoice and a Factur-X compliant XML file.\n\nThis lib provides additionnal features such as:\n\n* extract the Factur-X XML file from a Factur-X PDF invoice,\n* check a Factur-X XML file against the official XML Schema Definition.\n\nSome of the features provided by this lib also work for ZUGFeRD 1.0 (the ancestor of the Factur-X standard).\n\nInstallation\n============\n\nThis library works both on python 2.7 and python 3.\n\nTo install it for python 3, run:\n\n.. code::\n\n sudo pip3 install --upgrade factur-x\n\nTo install it for python 2.7, run:\n\n.. code::\n\n sudo pip install --upgrade factur-x\n\nUsage\n=====\n\n.. code::\n\n from facturx import generate_facturx_from_file\n\n facturx_pdf_invoice = generate_facturx_from_file(regular_pdf_invoice, facturx_xml_file)\n\n\nTo have more examples, look at the source code of the command line tools located in the *bin* subdirectory.\n\nCommand line tools\n==================\n\nSeveral command line tools are provided with this lib:\n\n* **facturx-pdfgen**: generate a Factur-X PDF invoice from a regular PDF invoice and an XML file\n* **facturx-pdfextractxml**: extract the Factur-X XML file from a Factur-X PDF invoice\n* **facturx-xmlcheck**: check a Factur-X XML file against the official Factur-X XML Schema Definition\n\nAll these commande line tools have a **-h** option that explains how to use them and shows all the available options.\n\nLicence\n=======\n\nThis library is published under the BSD licence (same licence as `PyPDF4 `_ on which this lib depends).\n\nContributors\n============\n\n* Alexis de Lattre \n\nChangelog\n=========\n\n* Version 1.4 dated 2019-07-24\n\n * Update Factur-X XSD to the final version of Factur-X v1.0.4\n * Support XML extraction with ZUGFeRD invoices using 'zugferd-invoice.xml' filename (instead of the filename 'ZUGFeRD-invoice.xml' specified by the standard)\n\n* Version 1.3 dated 2019-06-12\n\n * Add XSD files for Extended profile in the Python package\n\n* Version 1.2 dated 2019-06-12\n\n * add support for the Extended profile\n * validate XML for Minimum and Basic WL profiles with the XSD of profile EN 16931, as asked by Cyrille Sautereau\n * minor improvements in the code for /Kids\n\n* Version 1.1 dated 2019-04-22\n\n * Improve support for embedded files extraction by adding support for /Kids\n\n* Version 1.0 dated 2019-01-26\n\n * Use PyPDF4 instead of PyPDF2, because there are no new releases of PyPDF2 since May 2016 (cf https://github.com/mstamy2/PyPDF2/wiki/State-of-PyPDF2-and-Future-Plans), and we need a recent version of PyPDF2 to be able to generate fully compliant PDF/A-3 files.\n\n* Version 0.9 dated 2019-01-25\n\n * Port to python 3 contributed by JoshuaJan (https://github.com/joshuajan)\n * Fix path to ZUGFeRD 1.0 XSD\n\n* Version 0.8 dated 2018-06-10\n\n * Make pretty_print work for XMP file, for better readability of that file\n\n* Version 0.7 dated 2018-05-24\n\n * Fix XMP structure under /x:xmpmeta/rdf:RDF/rdf:Description (use XML tags instead of XML attributes)\n * declare PDF-1.6 instead of PDF-1.3 (still declared by default by pyPDF2)\n\n* Version 0.6 dated 2018-05-01\n\n * Now fully PDF/A-3 compliant with additionnal attachments (tested with veraPDF)\n * facturx-pdfgen: don't overwrite by default and add --overwrite option\n * Add factur-x library version number in metadata creator entry\n\n* Version 0.5 dated 2018-03-29\n\n * Fix XMP metadata structure\n * Now fully PDF/A-3 compliant when the input PDF file is PDF/A compliant (tested with veraPDF). This implied copying /OutputIntents and /ID datas from source PDF to Factur-X PDF.\n * Fix support for additionnal attachments: they can now all be saved with Acrobat Reader\n * Improve XML extraction from PDF Factur-x file\n\n* Version 0.4 dated 2018-03-27\n\n * Factur-x specs say /AFRelationship must be /Data (and not /Alternative)\n * Update Factur-X XSD to v1.0 final\n * Add support for additionnal attachments\n * Add factur-x lib version in Creator metadata table\n * Add /PageMode = /UseAttachments, so that the attachments are displayed by default when opening Factur-X PDF invoice with Acrobat Reader\n * Improve and enrich PDF objects (ModDate, CheckSum, Size)\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/akretion/factur-x", "keywords": "e-invoice ZUGFeRD Factur-X Chorus", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "factur-x", "package_url": "https://pypi.org/project/factur-x/", "platform": "", "project_url": "https://pypi.org/project/factur-x/", "project_urls": { "Homepage": "https://github.com/akretion/factur-x" }, "release_url": "https://pypi.org/project/factur-x/1.4/", "requires_dist": null, "requires_python": "", "summary": "Factur-X: electronic invoicing standard for Germany & France", "version": "1.4" }, "last_serial": 5579884, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "872672883f840e8d201a87b61aac6cae", "sha256": "09212fd19ec84db8ea473d83d0fd44007c93c9cef03a503c63aaddfc17138e25" }, "downloads": -1, "filename": "factur-x-0.1.tar.gz", "has_sig": false, "md5_digest": "872672883f840e8d201a87b61aac6cae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19165, "upload_time": "2017-09-12T22:15:42", "url": "https://files.pythonhosted.org/packages/56/05/169126df73aec3b2128e5ac803787bfcbe8aacb59e2dc9b6810e9d4190f7/factur-x-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "d2453c075b825bcc1f4c925a0303448b", "sha256": "f99b46a735952cff7a7226f4fc1832c475df9190db485966fcb7786134ad5d4e" }, "downloads": -1, "filename": "factur-x-0.2.tar.gz", "has_sig": false, "md5_digest": "d2453c075b825bcc1f4c925a0303448b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19353, "upload_time": "2017-10-26T21:38:30", "url": "https://files.pythonhosted.org/packages/04/0c/8b50f5631a48b8a7080cc3d5173db96747b773318d1ba3885f9c49847014/factur-x-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "bf6322dda3de98b3c08e10d185b9d118", "sha256": "0711f3139ed0101d5db37b604f2a14b92c755c52200a3016f1a9c43d5b075444" }, "downloads": -1, "filename": "factur-x-0.3.tar.gz", "has_sig": false, "md5_digest": "bf6322dda3de98b3c08e10d185b9d118", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19463, "upload_time": "2017-11-12T20:49:23", "url": "https://files.pythonhosted.org/packages/ac/d4/dee921514055d2a09c833427ba4903908ffd97afe30fc2a31c8e8b12e11d/factur-x-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "7c1587a3f30b292f3641417975551de0", "sha256": "0d83fa2ccef60bbfa7d5c993ab50208ab7e58fd22c4f164fa4b7b167800218b2" }, "downloads": -1, "filename": "factur-x-0.4.tar.gz", "has_sig": false, "md5_digest": "7c1587a3f30b292f3641417975551de0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21040, "upload_time": "2018-03-27T20:13:02", "url": "https://files.pythonhosted.org/packages/fd/1c/7d013196059718a21bb52b263af04d80b9728dea36451e7acb2c9fa1f2cf/factur-x-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "527533407e000901f81b10f1e8b218b8", "sha256": "1b4278b173fa37f2f06886885df383cdb5c5c40d5d739eb1d61be86b8832d7db" }, "downloads": -1, "filename": "factur-x-0.5.tar.gz", "has_sig": false, "md5_digest": "527533407e000901f81b10f1e8b218b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22701, "upload_time": "2018-03-28T23:01:38", "url": "https://files.pythonhosted.org/packages/91/25/f18278b3e410247ad350563fc1a54fc3f26bf9f4b6a360a8e0854323c926/factur-x-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "fd187490eb0d662afc0e5e95b59dc8b0", "sha256": "18218e3d692abe04fe40a9939a7a25551d1539fc1082f706e0a0fa122e5b856d" }, "downloads": -1, "filename": "factur-x-0.6.tar.gz", "has_sig": false, "md5_digest": "fd187490eb0d662afc0e5e95b59dc8b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22901, "upload_time": "2018-05-01T19:39:27", "url": "https://files.pythonhosted.org/packages/e8/eb/420f9e5517e7f9a7e74e8c9362796fa31b3ac93f690eae5dea7e404d8348/factur-x-0.6.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "7e92d7f09648401816da4b10fd37f497", "sha256": "bb3f708cb84716313fb9d9310cb501269913336c94c731834733b80cbf6e742c" }, "downloads": -1, "filename": "factur-x-0.7.tar.gz", "has_sig": false, "md5_digest": "7e92d7f09648401816da4b10fd37f497", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23151, "upload_time": "2018-05-23T22:33:50", "url": "https://files.pythonhosted.org/packages/da/92/44237961ed6401f7190b8316ab5cfa44a7a2737559d03a8c35ff404ab2bc/factur-x-0.7.tar.gz" } ], "0.8": [ { "comment_text": "", "digests": { "md5": "c6b15e87755319f7f0832d0f4861e5ac", "sha256": "9de3bf4f2ac15e65e4e483378cf390b4035fc171bf08ce5bee700d1c8444926e" }, "downloads": -1, "filename": "factur-x-0.8.tar.gz", "has_sig": false, "md5_digest": "c6b15e87755319f7f0832d0f4861e5ac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23759, "upload_time": "2018-06-10T20:36:11", "url": "https://files.pythonhosted.org/packages/a3/10/892ca00252f9f1a40d778af7fe0ba46cde222b6447a52390fb42717ca0d5/factur-x-0.8.tar.gz" } ], "0.9": [ { "comment_text": "", "digests": { "md5": "8dfdb0eba4fff63234d4b0581e84e9f5", "sha256": "5de6bb27ffb3cbb7319b9f49c8ea8620f26219c6919f2f83a3f54c73fd148995" }, "downloads": -1, "filename": "factur-x-0.9.tar.gz", "has_sig": false, "md5_digest": "8dfdb0eba4fff63234d4b0581e84e9f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22435, "upload_time": "2019-01-25T21:41:24", "url": "https://files.pythonhosted.org/packages/4c/11/f50a17602f313b121ceb8d7d5a3e4bb9693139d07f734449f4886ed34ef3/factur-x-0.9.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "a6848cef053beef270fc2405d9804436", "sha256": "32b334e8c8542b36ad8c2a9b4ce57757c404959ff03e64c1ed9cc4bbea482e9d" }, "downloads": -1, "filename": "factur-x-1.0.tar.gz", "has_sig": false, "md5_digest": "a6848cef053beef270fc2405d9804436", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22581, "upload_time": "2019-01-26T22:45:28", "url": "https://files.pythonhosted.org/packages/b8/66/ba02bf46c58b70daedf12b905b28c47fc326680bacab408fd2797403c98a/factur-x-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "2d7c493b0439738c17a25671bdc29a0a", "sha256": "514e1c650ce67c127563223c7937c551fea93a72c5522ab76bfa18869a14f7c4" }, "downloads": -1, "filename": "factur-x-1.1.tar.gz", "has_sig": false, "md5_digest": "2d7c493b0439738c17a25671bdc29a0a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23192, "upload_time": "2019-04-22T21:30:49", "url": "https://files.pythonhosted.org/packages/26/af/65d6a3e2ca347d2e01890d442aa6d43bd4276902e4bcacd3d33dd5798a2a/factur-x-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "2a2504117b9928a969618db66c78c455", "sha256": "bd196ea0b8dff7a3d236746759108d87be0c1475cd1902c843c13540fa69164e" }, "downloads": -1, "filename": "factur-x-1.2.tar.gz", "has_sig": false, "md5_digest": "2a2504117b9928a969618db66c78c455", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23400, "upload_time": "2019-06-11T21:59:44", "url": "https://files.pythonhosted.org/packages/bb/21/cd659349b8a780a130226b4aadc3a02141d3af27b52e6f16c29df610dff7/factur-x-1.2.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "6fa6c06ec1464a41768d7c8f09a24b51", "sha256": "192d21748eccb76b394187aaa8794f66c595032c8811a18c44cf27516e28b4b0" }, "downloads": -1, "filename": "factur-x-1.3.tar.gz", "has_sig": false, "md5_digest": "6fa6c06ec1464a41768d7c8f09a24b51", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 34630, "upload_time": "2019-06-11T23:27:34", "url": "https://files.pythonhosted.org/packages/72/c9/6c04039db91fd59ee71a25a007377ac8ce0e913fe5ea0bd8cb3e38541d4b/factur-x-1.3.tar.gz" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "19fc94e948cc01d15e6c44db55450821", "sha256": "67dbf9cb6aa6df49f883c00592581266601f2793036adb9539a0c7974850f4fa" }, "downloads": -1, "filename": "factur-x-1.4.tar.gz", "has_sig": false, "md5_digest": "19fc94e948cc01d15e6c44db55450821", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55336, "upload_time": "2019-07-24T21:36:40", "url": "https://files.pythonhosted.org/packages/80/e1/2ac7eff0b8c09885f3f719100fd0ed9114cb71440afa8a58b53894978195/factur-x-1.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "19fc94e948cc01d15e6c44db55450821", "sha256": "67dbf9cb6aa6df49f883c00592581266601f2793036adb9539a0c7974850f4fa" }, "downloads": -1, "filename": "factur-x-1.4.tar.gz", "has_sig": false, "md5_digest": "19fc94e948cc01d15e6c44db55450821", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55336, "upload_time": "2019-07-24T21:36:40", "url": "https://files.pythonhosted.org/packages/80/e1/2ac7eff0b8c09885f3f719100fd0ed9114cb71440afa8a58b53894978195/factur-x-1.4.tar.gz" } ] }