Henrri Connect
Bibliothèque Python souveraine pour l'API de facturation Henrri. Fournit un client synchrone et asynchrone pour interagir avec l'ensemble des ressources de l'API : clients, factures, articles, unités, revenus, etc.
Ce SDK est un client Python non officiel pour l’API Henrri. Il n’est ni affilié, ni soutenu, ni approuvé par Henrri. Henrri est une marque déposée appartenant à son éditeur.
Sommaire
Installation
pip install henrri-connect
Dépendances : httpx et pydantic v2.
Démarrage rapide
Authentification
Le client se connecte automatiquement à la première requête et gère le renouvellement du token. Il n'est pas nécessaire d'appeler authenticate() explicitement.
from henrri_connect import SyncHenrriClient
client = SyncHenrriClient("votre_client_id", "votre_client_secret")
L'URL par défaut est l'environnement sandbox (https://api-sandbox.henrri.io). Pour pointer vers la production, passez base_url :
client = SyncHenrriClient(
"votre_client_id",
"votre_client_secret",
base_url="https://api.henrri.io",
)
Mode synchrone
Voir le guide complet d'utilisation synchrone : docs/usage_sync.md
Mode asynchrone
Voir le guide complet d'utilisation asynchrone : docs/usage_async.md
Modules disponibles
Le client expose un sous-client par ressource API. Chaque sous-client est identique en synchrone et asynchrone (les méthodes async renvoient des coroutines).
| Attribut | Description | Documentation |
|---|---|---|
client.secures |
Endpoint de santé de l'API | docs/secures.md |
client.users |
Utilisateurs et entreprises associées | docs/users.md |
client.companies |
Entreprises | docs/companies.md |
client.customers |
Clients (CRUD + contacts) | docs/customers.md |
client.documents |
Documents (factures, devis, BL…) | docs/documents.md |
client.document_lines |
Lignes de document | docs/document_lines.md |
client.document_types |
Types de document (référentiel) | docs/document_types.md |
client.document_line_types |
Types de ligne de document (référentiel) | docs/document_line_types.md |
client.items |
Articles / produits | docs/items.md |
client.item_categories |
Catégories d'articles | docs/item_categories.md |
client.units |
Unités de mesure | docs/units.md |
client.revenues |
Statistiques de revenus | docs/revenues.md |
Référence API complète : remiv1.github.io/henrri-connect
Gestion des erreurs
Toutes les erreurs HTTP sont converties en exceptions typées héritant de HenrriError :
| Exception | Code HTTP |
|---|---|
HenrriAuthError |
401 — Non authentifié |
HenrriForbiddenError |
403 — Accès interdit |
HenrriNotFoundError |
404 — Ressource introuvable |
HenrriValidationError |
400 / 422 — Données invalides |
HenrriServerError |
5xx — Erreur serveur |
from henrri_connect import SyncHenrriClient
from henrri_connect.exc import HenrriNotFoundError, HenrriAuthError
client = SyncHenrriClient("client_id", "client_secret")
try:
customer = client.customers.get(9999)
except HenrriNotFoundError:
print("Client introuvable.")
except HenrriAuthError:
print("Identifiants invalides.")
Développement
# Cloner le dépôt
git clone https://github.com/remiv1/henrri-connect.git
cd henrri-connect
# Créer un environnement virtuel et installer les dépendances dev
python -m venv venv
source venv/bin/activate
pip install -e ".[dev]"
# Lancer les tests
make test
# Générer la documentation
make docs
# Prévisualiser la documentation
make docs-serve
Commandes disponibles :
make test # Lancer les 96 tests
make build # Construire la distribution (wheel + sdist)
make build-verify # Vérifier les artefacts avec twine
make publish # Publier sur PyPI (demande confirmation)
make docs # Générer la doc HTML dans docs/
make docs-serve # Servir la doc localement (port 8080)
make docs-clean # Nettoyer les fichiers générés
make all # test + build + build-verify + publish + clean
Contribution
Les contributions sont les bienvenues ! Consultez CONTRIBUTING.md pour les conventions de code, le workflow de PR et les bonnes pratiques.
Licence
Distribué sous licence MIT. Voir LICENSE.
Metadata
Release files for henrri-connect 0.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| henrri_connect-0.2.2.tar.gz | 50.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| henrri_connect-0.2.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 126.8 kB
Release files / henrri_connect-0.2.2.tar.gz
| Download URL | henrri_connect-0.2.2.tar.gz |
|---|---|
| Size | 50.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e1eb3eb01dd0a886c528ab94e2612f786d40ab754fde28e7efb89953e60efa17
|
|
BLAKE2b-256 checksum How to use checksums |
985b8c58cfa54a35615b7dbde81709b599d1fbddb1e307b3ca2c2cad3c218628
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.5
|
Release files / henrri_connect-0.2.2-py3-none-any.whl
| Download URL | henrri_connect-0.2.2-py3-none-any.whl |
|---|---|
| Size | 76.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f5936d1947b51e1f90f3eac5e905dcc8c02b5d582e9c59af0b9bcea993b7d4c9
|
|
BLAKE2b-256 checksum How to use checksums |
113023a152c3a3dc0de44dfd8175f33bb44fdc112b6a5d870104764dd3ccd6f6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.5
|