facture-electronique


Namefacture-electronique JSON
Version 0.1.24 PyPI version JSON
download
home_pageNone
SummaryFacturation Electronique SDK est une bibliothèque Python qui simplifie l'interaction avec les principales API de facturation électronique en France, notamment **Chorus Pro**, et d'autres partenaires privés. Elle supporte également le format Factur-X pour la création et l'envoi de factures électroniques.
upload_time2024-12-09 14:22:24
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseMIT
keywords chorus pro choruspro facturx factur-x facture électronique
VCS
bugtrack_url
requirements requests pydantic factur-x ghostscript xsdata saxonche pyHanko
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Facturation Electronique SDK

## Description
`Facturation Electronique` est une bibliothèque Python qui simplifie l'interaction avec les principales API de facturation électronique en France, notamment **Chorus Pro**, et d'autres partenaires privés. Elle supporte également le format **Factur-X** pour la création et l'envoi de factures électroniques.

Le concept repose sur l'instanciation d’une classe **Facture** (actuellement largement inspirée de l’API Chorus Pro), qui fournit ensuite les outils nécessaires pour interagir avec diverses API publiques, principalement Chorus Pro, ainsi qu’avec des plateformes de dématérialisation partenaires telles que Qonto, Sage, et Pennylane. La vérification de cohérence et de logique des factures s'appuie sur le format Factur-X, pris en charge par Chorus Pro, et particulièrement adapté pour les contrôles de cohérence avancés.

## Fonctionnalités
- **Chorus Pro** : Ce module permet la création, l'envoi et le suivi des factures destinées aux entités publiques. Il intègre également des fonctionnalités de recherche d’entités via le SIRET, permettant par exemple de retrouver l’identifiant Chorus Pro d’une entité.
- **Factur-X** : Ce module prend en charge la génération de factures au format PDF/Factur-X, en particulier les profils minimum et basic. Il valide le fichier factur-x.xml en conformité avec les schémas XSD via le module facturx. De plus, il offre la possibilité d'une validation plus poussée du fichier XML en appliquant les règles avancées définies dans les fichiers XSLT, ce que le module facturx ne propose pas nativement, via la fonction valider_xml_xslt.

## Installation

1. Clonez ce dépôt ou téléchargez-le :

   ```bash
   git clone https://github.com/thierryjmartin/facturation_electronique.git
    ```
   
2. Installez les dépendances à l'aide du fichier requirements.txt :
   ```bash
   pip install -r requirements.txt
    ```
## Configuration

Vous devez fournir vos clés API et les URL des différentes plateformes dans un fichier de configuration ou via des variables d'environnement.

Exemple d'un fichier config.py :
   ```python
from .template_config import *

PISTE_CLIENT_ID = "votre-clientid-piste"
PISTE_CLIENT_SECRET = "votre-secret-piste"

# Configuration API Chorus Pro
CHORUS_PRO_BASE_URL = 'https://chorus-pro.gouv.fr/api'
CHORUS_PRO_API_KEY = 'votre-api-key-chorus-pro'

# Autres configurations...
   ```

## Utilisation

Un exemple d'utilisation est dans le script exemples/exemple_*.py
   ```bash
 python -m facture_electronique.api.chorus_pro
 ```
On utilise l'API Chorus Pro pour retrouver les identifiants de personnes morales.
On génère une facture en instanciant la classe Facture. On modifie le PDF de la facture pour le transformer en PDF/A Factur-X que l'on envoie à Chorus Pro.

## Contribution
Si vous souhaitez contribuer à ce projet, veuillez suivre les étapes suivantes :

    Clonez le dépôt.
    Créez une branche pour votre fonctionnalité : git checkout -b nouvelle-fonctionnalité.
    Faites vos modifications et testez-les.
    Soumettez une merge request.

## Petite note technique
Le code dans generated est généré par cette commande qui convertit les xsd Factur-X en classes python :
   ```bash
 xsdata generate xsd/facturx-minimum/Factur-X_1.07.2_MINIMUM.xsd
```

## Licence
Ce projet est sous licence MIT.

## Auteur
Developpé par Thierry Martin

## Changelog

### 0.1.22
- Maj validation XML via Schematron

### 0.1.19
- Ajout des XSD de factur-x au package, en particulier pour pouvoir utiliser utils.facturx.valider_xml_xldt plus facilement.

### 0.1.16
- Ajout d'exemple de code pour signer les PDFs avec PyHanko, car cela devrait être nécessaire pour faire des Factur-X (Qualified eSeal). Pour le moment la signature casse la validité PDF/A...

### 0.1.13
- Ajout de la génération de Factur-X EN16931 (en plus des profils Minimum et Basic).

### 0.1.12
- Mise à jour pour le support de Factur-X 1.0.7.2.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "facture-electronique",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "chorus pro, choruspro, facturx, factur-x, facture \u00e9lectronique",
    "author": null,
    "author_email": "Thierry Martin <thierry.martin.2008@gadz.org>",
    "download_url": "https://files.pythonhosted.org/packages/c2/17/c4eedc9e0dd3ae40ad673b4d5ffa49855eeab486f857747237c6734b510d/facture_electronique-0.1.24.tar.gz",
    "platform": null,
    "description": "# Facturation Electronique SDK\n\n## Description\n`Facturation Electronique` est une biblioth\u00e8que Python qui simplifie l'interaction avec les principales API de facturation \u00e9lectronique en France, notamment **Chorus Pro**, et d'autres partenaires priv\u00e9s. Elle supporte \u00e9galement le format **Factur-X** pour la cr\u00e9ation et l'envoi de factures \u00e9lectroniques.\n\nLe concept repose sur l'instanciation d\u2019une classe **Facture** (actuellement largement inspir\u00e9e de l\u2019API Chorus Pro), qui fournit ensuite les outils n\u00e9cessaires pour interagir avec diverses API publiques, principalement Chorus Pro, ainsi qu\u2019avec des plateformes de d\u00e9mat\u00e9rialisation partenaires telles que Qonto, Sage, et Pennylane. La v\u00e9rification de coh\u00e9rence et de logique des factures s'appuie sur le format Factur-X, pris en charge par Chorus Pro, et particuli\u00e8rement adapt\u00e9 pour les contr\u00f4les de coh\u00e9rence avanc\u00e9s.\n\n## Fonctionnalit\u00e9s\n- **Chorus Pro** : Ce module permet la cr\u00e9ation, l'envoi et le suivi des factures destin\u00e9es aux entit\u00e9s publiques. Il int\u00e8gre \u00e9galement des fonctionnalit\u00e9s de recherche d\u2019entit\u00e9s via le SIRET, permettant par exemple de retrouver l\u2019identifiant Chorus Pro d\u2019une entit\u00e9.\n- **Factur-X** : Ce module prend en charge la g\u00e9n\u00e9ration de factures au format PDF/Factur-X, en particulier les profils minimum et basic. Il valide le fichier factur-x.xml en conformit\u00e9 avec les sch\u00e9mas XSD via le module facturx. De plus, il offre la possibilit\u00e9 d'une validation plus pouss\u00e9e du fichier XML en appliquant les r\u00e8gles avanc\u00e9es d\u00e9finies dans les fichiers XSLT, ce que le module facturx ne propose pas nativement, via la fonction valider_xml_xslt.\n\n## Installation\n\n1. Clonez ce d\u00e9p\u00f4t ou t\u00e9l\u00e9chargez-le :\n\n   ```bash\n   git clone https://github.com/thierryjmartin/facturation_electronique.git\n    ```\n   \n2. Installez les d\u00e9pendances \u00e0 l'aide du fichier requirements.txt :\n   ```bash\n   pip install -r requirements.txt\n    ```\n## Configuration\n\nVous devez fournir vos cl\u00e9s API et les URL des diff\u00e9rentes plateformes dans un fichier de configuration ou via des variables d'environnement.\n\nExemple d'un fichier config.py :\n   ```python\nfrom .template_config import *\n\nPISTE_CLIENT_ID = \"votre-clientid-piste\"\nPISTE_CLIENT_SECRET = \"votre-secret-piste\"\n\n# Configuration API Chorus Pro\nCHORUS_PRO_BASE_URL = 'https://chorus-pro.gouv.fr/api'\nCHORUS_PRO_API_KEY = 'votre-api-key-chorus-pro'\n\n# Autres configurations...\n   ```\n\n## Utilisation\n\nUn exemple d'utilisation est dans le script exemples/exemple_*.py\n   ```bash\n python -m facture_electronique.api.chorus_pro\n ```\nOn utilise l'API Chorus Pro pour retrouver les identifiants de personnes morales.\nOn g\u00e9n\u00e8re une facture en instanciant la classe Facture. On modifie le PDF de la facture pour le transformer en PDF/A Factur-X que l'on envoie \u00e0 Chorus Pro.\n\n## Contribution\nSi vous souhaitez contribuer \u00e0 ce projet, veuillez suivre les \u00e9tapes suivantes :\n\n    Clonez le d\u00e9p\u00f4t.\n    Cr\u00e9ez une branche pour votre fonctionnalit\u00e9 : git checkout -b nouvelle-fonctionnalit\u00e9.\n    Faites vos modifications et testez-les.\n    Soumettez une merge request.\n\n## Petite note technique\nLe code dans generated est g\u00e9n\u00e9r\u00e9 par cette commande qui convertit les xsd Factur-X en classes python :\n   ```bash\n xsdata generate xsd/facturx-minimum/Factur-X_1.07.2_MINIMUM.xsd\n```\n\n## Licence\nCe projet est sous licence MIT.\n\n## Auteur\nDevelopp\u00e9 par Thierry Martin\n\n## Changelog\n\n### 0.1.22\n- Maj validation XML via Schematron\n\n### 0.1.19\n- Ajout des XSD de factur-x au package, en particulier pour pouvoir utiliser utils.facturx.valider_xml_xldt plus facilement.\n\n### 0.1.16\n- Ajout d'exemple de code pour signer les PDFs avec PyHanko, car cela devrait \u00eatre n\u00e9cessaire pour faire des Factur-X (Qualified eSeal). Pour le moment la signature casse la validit\u00e9 PDF/A...\n\n### 0.1.13\n- Ajout de la g\u00e9n\u00e9ration de Factur-X EN16931 (en plus des profils Minimum et Basic).\n\n### 0.1.12\n- Mise \u00e0 jour pour le support de Factur-X 1.0.7.2.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Facturation Electronique SDK est une biblioth\u00e8que Python qui simplifie l'interaction avec les principales API de facturation \u00e9lectronique en France, notamment **Chorus Pro**, et d'autres partenaires priv\u00e9s. Elle supporte \u00e9galement le format Factur-X pour la cr\u00e9ation et l'envoi de factures \u00e9lectroniques.",
    "version": "0.1.24",
    "project_urls": {
        "Homepage": "https://github.com/thierryjmartin/facturation_electronique",
        "Source Code": "https://github.com/thierryjmartin/facturation_electronique"
    },
    "split_keywords": [
        "chorus pro",
        " choruspro",
        " facturx",
        " factur-x",
        " facture \u00e9lectronique"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ee54e7ac75fea0cd2487b89cfde7145e03dae86cd96d44e8efc6837f3e6b9ff0",
                "md5": "ec48aefda0028aed62c3ab229a618ef8",
                "sha256": "c6d4e4a6223a1c977a6af7b7e9e68179eb3350fd813dd38ba95709122eb80e08"
            },
            "downloads": -1,
            "filename": "facture_electronique-0.1.24-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "ec48aefda0028aed62c3ab229a618ef8",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 294471,
            "upload_time": "2024-12-09T14:22:21",
            "upload_time_iso_8601": "2024-12-09T14:22:21.356094Z",
            "url": "https://files.pythonhosted.org/packages/ee/54/e7ac75fea0cd2487b89cfde7145e03dae86cd96d44e8efc6837f3e6b9ff0/facture_electronique-0.1.24-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c217c4eedc9e0dd3ae40ad673b4d5ffa49855eeab486f857747237c6734b510d",
                "md5": "c0991ff980dbd42f55479e123e0d8ea7",
                "sha256": "283cdc14ecf9d053dbfc28970332dcf16224e74f62af762cf9bb52f26efe157f"
            },
            "downloads": -1,
            "filename": "facture_electronique-0.1.24.tar.gz",
            "has_sig": false,
            "md5_digest": "c0991ff980dbd42f55479e123e0d8ea7",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 270029,
            "upload_time": "2024-12-09T14:22:24",
            "upload_time_iso_8601": "2024-12-09T14:22:24.037638Z",
            "url": "https://files.pythonhosted.org/packages/c2/17/c4eedc9e0dd3ae40ad673b4d5ffa49855eeab486f857747237c6734b510d/facture_electronique-0.1.24.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-12-09 14:22:24",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "thierryjmartin",
    "github_project": "facturation_electronique",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "requests",
            "specs": [
                [
                    "==",
                    "2.32.3"
                ]
            ]
        },
        {
            "name": "pydantic",
            "specs": [
                [
                    "==",
                    "2.9.2"
                ]
            ]
        },
        {
            "name": "factur-x",
            "specs": [
                [
                    "==",
                    "3.4"
                ]
            ]
        },
        {
            "name": "ghostscript",
            "specs": [
                [
                    "==",
                    "0.7"
                ]
            ]
        },
        {
            "name": "xsdata",
            "specs": [
                [
                    "==",
                    "24.9"
                ]
            ]
        },
        {
            "name": "saxonche",
            "specs": [
                [
                    "==",
                    "12.5.0"
                ]
            ]
        },
        {
            "name": "pyHanko",
            "specs": [
                [
                    "==",
                    "0.25.3"
                ]
            ]
        }
    ],
    "lcname": "facture-electronique"
}
        
Elapsed time: 1.40882s