Skip to main content

API REST FactPulse

Project description

FactPulse SDK Python

Client Python officiel pour l'API FactPulse - Facturation électronique française.

🎯 Fonctionnalités

  • Factur-X : Génération et validation de factures électroniques (profils MINIMUM, BASIC, EN16931, EXTENDED)
  • Chorus Pro : Intégration avec la plateforme de facturation publique française
  • AFNOR PDP/PA : Soumission de flux conformes à la norme XP Z12-013
  • Signature électronique : Signature PDF (PAdES-B-B, PAdES-B-T, PAdES-B-LT)
  • Traitement asynchrone : Support Celery pour opérations longues

🚀 Installation

pip install factpulse

📖 Démarrage rapide

1. Authentification

from factpulse import ApiClient, Configuration

# Configuration du client
config = Configuration(host='https://factpulse.fr/api/facturation/')
config.access_token = 'votre_token_jwt'

client = ApiClient(configuration=config)

2. Générer une facture Factur-X

from factpulse.api.processing_endpoints_unifis_api import ProcessingEndpointsUnifisApi

api = ProcessingEndpointsUnifisApi(client)

# Données de la facture
facture_data = {
    "numero_facture": "FAC-2025-001",
    "date_facture": "2025-01-15",
    "montant_total_ht": "1000.00",
    "montant_total_ttc": "1200.00",
    "fournisseur": {
        "nom": "Mon Entreprise SAS",
        "siret": "12345678901234",
        "adresse_postale": {
            "ligne_un": "123 Rue Example",
            "code_postal": "75001",
            "nom_ville": "Paris",
            "pays_code_iso": "FR"
        }
    },
    "destinataire": {
        "nom": "Client SARL",
        "siret": "98765432109876",
        "adresse_postale": {
            "ligne_un": "456 Avenue Test",
            "code_postal": "69001",
            "nom_ville": "Lyon",
            "pays_code_iso": "FR"
        }
    },
    "lignes_de_poste": [{
        "numero": 1,
        "denomination": "Prestation de conseil",
        "quantite": "10.00",
        "montant_unitaire_ht": "100.00",
        "montant_ligne_ht": "1000.00"
    }]
}

# Générer le PDF Factur-X
pdf_bytes = api.api_v1_traitement_generer_facturx_post(
    donnees_facture=facture_data,
    profil='EN16931',
    format_sortie='pdf'
)

# Sauvegarder
with open('facture.pdf', 'wb') as f:
    f.write(pdf_bytes)

3. Soumettre une facture à Chorus Pro

from factpulse.api.chorus_pro_api import ChorusProApi

chorus_api = ChorusProApi(client)

# Soumettre une facture
response = chorus_api.api_v1_chorus_pro_factures_soumettre_post(
    body={
        "facture": facture_data,
        "destination": {
            "type": "chorus_pro",
            "credentials": {
                "login": "votre_login",
                "password": "votre_password"
            }
        }
    }
)

print(f"Facture soumise : {response.id_facture_chorus}")

🔑 Obtention du token JWT

Via l'API

import requests

response = requests.post(
    'https://factpulse.fr/api/token/',
    json={
        'username': 'votre_email@example.com',
        'password': 'votre_mot_de_passe'
    }
)

token = response.json()['access']

Via le Dashboard

  1. Connectez-vous sur https://factpulse.fr/dashboard/
  2. Générez un token API
  3. Copiez et utilisez le token dans votre configuration

📚 Ressources

📄 Licence

MIT License - Copyright (c) 2025 FactPulse

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

factpulse-1.0.2.tar.gz (146.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

factpulse-1.0.2-py3-none-any.whl (474.9 kB view details)

Uploaded Python 3

File details

Details for the file factpulse-1.0.2.tar.gz.

File metadata

  • Download URL: factpulse-1.0.2.tar.gz
  • Upload date:
  • Size: 146.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for factpulse-1.0.2.tar.gz
Algorithm Hash digest
SHA256 1cff26d89dcf2178b42c14476605774b59a9af446abd7d1dd13e5e48bbb734f5
MD5 98a79fe9533e65c8a3678dbc9d489582
BLAKE2b-256 d77ef874b148b8a4435be9b6c0d2fb3753afd71851358334e7a2ebea380b3d8d

See more details on using hashes here.

File details

Details for the file factpulse-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: factpulse-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 474.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.19

File hashes

Hashes for factpulse-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b49e378d78dc26d7ce9c2b4ab9de12c0984ccfc74866527c692e6174f0eddd07
MD5 26f0f9e20409622f0b0ceb68d1c4c264
BLAKE2b-256 312013e6732578cbbf000427a9c774975f7796787410184c2172a2a5c2c94549

See more details on using hashes here.

Supported by

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