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.traitement_facture_api import TraitementFactureApi
import json

api = TraitementFactureApi(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 (multipart/form-data)
pdf_bytes = api.generer_facture_api_v1_traitement_generer_facture_post(
    donnees_facture=json.dumps(facture_data),
    profil='EN16931',
    format_sortie='pdf'
)

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

3. Soumettre une facture complète (Chorus Pro / AFNOR PDP)

from factpulse.api.traitement_facture_api import TraitementFactureApi

api = TraitementFactureApi(client)

# Soumettre une facture avec destination Chorus Pro
response = api.soumettre_facture_complete_api_v1_traitement_factures_soumettre_complete_post(
    body={
        "facture": facture_data,
        "destination": {
            "type": "chorus_pro",
            "credentials": {
                "login": "votre_login_chorus",
                "password": "votre_password_chorus"
            }
        }
    }
)

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']

Accès aux credentials d'un client spécifique :

Si vous gérez plusieurs clients et souhaitez accéder aux credentials (Chorus Pro, AFNOR PDP) d'un client particulier, ajoutez le champ client_uid :

response = requests.post(
    'https://factpulse.fr/api/token/',
    json={
        'username': 'votre_email@example.com',
        'password': 'votre_mot_de_passe',
        'client_uid': 'identifiant_client'  # UID du client cible
    }
)

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

Via le Dashboard

  1. Connectez-vous sur https://factpulse.fr/api/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.7.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.7-py3-none-any.whl (475.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: factpulse-1.0.7.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.7.tar.gz
Algorithm Hash digest
SHA256 eac4d10c73e43369d61deed9b69b4fb7d2c52656a883baec4c5bbd9125f1a8e0
MD5 f1ee7e01ac65f939061d56b2a1c6b049
BLAKE2b-256 be84bbbf1f5af097cd2e29bc71f58fea215a6bf0d4c6cb7da138b9c8ca2dc597

See more details on using hashes here.

File details

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

File metadata

  • Download URL: factpulse-1.0.7-py3-none-any.whl
  • Upload date:
  • Size: 475.0 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.7-py3-none-any.whl
Algorithm Hash digest
SHA256 957d304316480f293ac01bda1a58f7f4af72af8f80dda6199f371e2f6c8a1df2
MD5 372dfd5cf5900752fcd90ecac1ecc470
BLAKE2b-256 df1ce09f5d402582861d8a3e17522cdb0eb00dcfc3915138473f8abc38058b37

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