Référence API

Client principal

Client HTTP Henrri : implémentations synchrone/asynchrone.

Constants: - henrri_connect.connect._BASE_URL : URL de base de l’API Henrri. - henrri_connect.connect.APP_VERSION : Version de l’application.

Classes: - henrri_connect.connect.AsyncHenrriClient : Client HTTP Henrri asynchrone. - henrri_connect.connect.SyncHenrriClient : Client HTTP Henrri synchrone.

Exemples: .. code-block:: python

# Client synchrone from henrri_connect import SyncHenrriClient

client = SyncHenrriClient(« client_id », « client_secret »)

# Client asynchrone from henrri_connect import AsyncHenrriClient

client = AsyncHenrriClient(« client_id », « client_secret »)

class henrri_connect.connect.AsyncHenrriClient(client_id, client_secret, *, base_url='https://api-sandbox.henrri.io')[source]

Bases : object

Client HTTP asynchrone pour l’API Henrri. Gère l’authentification, le refresh-token et les erreurs HTTP. Fournit des sous-clients pour chaque groupe d’endpoints (users, companies, etc.) Authentification automatique avec gestion du refresh token Gestion centralisée des erreurs HTTP avec exceptions personnalisées

Arguments - client_id: Identifiant client pour l’authentification. - client_secret: Secret client pour l’authentification. - base_url: URL de base de l’API (défaut : sandbox Henrri).

Methodes - authenticate: Authentifie le client. - request: Effectue une requête HTTP authentifiée. - close: Ferme le client HTTP sous-jacent.

users: AsyncUsersClient
companies: AsyncCompaniesClient
customers: AsyncCustomersClient
documents: AsyncDocumentsClient
document_lines: AsyncDocumentLinesClient
document_line_types: AsyncDocumentLineTypesClient
document_types: AsyncDocumentTypesClient
items: AsyncItemsClient
item_categories: AsyncItemCategoriesClient
units: AsyncUnitsClient
revenues: AsyncRevenuesClient
secures: AsyncSecuresClient
async authenticate()[source]

Authentifie le client et stocke le token d’accès.

Arguments - None

Returns - TokenResponse : objet contenant access_token et refresh_token.

Type renvoyé:

TokenResponse

async request(method, endpoint, **kwargs)[source]

Effectue une requête HTTP authentifiée (asynchrone).

Arguments - method: Méthode HTTP (GET, POST, etc.). - endpoint: Chemin relatif (ex: “/v1/companies/42”). - kwargs: Arguments supplémentaires pour httpx.request().

Returns - httpx.Response: La réponse de la requête HTTP.

Type renvoyé:

Response

async close()[source]

Ferme le client HTTP sous-jacent.

Arguments - None

Returns - None

Type renvoyé:

None

class henrri_connect.connect.SyncHenrriClient(client_id, client_secret, *, base_url='https://api-sandbox.henrri.io')[source]

Bases : object

Client HTTP synchrone pour l’API Henrri. Gère l’authentification, le refresh-token et les erreurs HTTP. Fournit des sous-clients pour chaque groupe d’endpoints (users, companies, etc.) Authentification automatique avec gestion du refresh token Gestion centralisée des erreurs HTTP avec exceptions personnalisées

Arguments - client_id: Identifiant client pour l’authentification. - client_secret: Secret client pour l’authentification. - base_url: URL de base de l’API (défaut : sandbox Henrri).

Methodes - authenticate: Authentifie le client. - request: Effectue une requête HTTP authentifiée. - close: Ferme le client HTTP sous-jacent.

users: SyncUsersClient
companies: SyncCompaniesClient
customers: SyncCustomersClient
documents: SyncDocumentsClient
document_lines: SyncDocumentLinesClient
document_line_types: SyncDocumentLineTypesClient
document_types: SyncDocumentTypesClient
items: SyncItemsClient
item_categories: SyncItemCategoriesClient
units: SyncUnitsClient
revenues: SyncRevenuesClient
secures: SyncSecuresClient
authenticate()[source]

Authentifie le client et stocke le token d’accès.

Arguments - None

Returns - TokenResponse : objet contenant access_token et refresh_token.

Type renvoyé:

TokenResponse

request(method, endpoint, **kwargs)[source]

Effectue une requête HTTP authentifiée (synchrone).

Arguments - method: Méthode HTTP (GET, POST, etc.). - endpoint: Chemin relatif (ex: “/v1/companies/42”). - kwargs: Arguments supplémentaires pour httpx.request().

Returns - httpx.Response: La réponse HTTP.

Type renvoyé:

Response

close()[source]

Ferme le client HTTP sous-jacent.

Arguments - None

Returns - None

Type renvoyé:

None

Exceptions

Module d’exceptions personnalisées pour la bibliothèque henrri-connect.

Exceptions: - HenrriError: Erreur de base pour la bibliothèque henrri-connect. - HenrriHTTPError: Erreur HTTP retournée par l’API Henrri. - HenrriAuthError: Erreur d’authentification (HTTP 401). - HenrriForbiddenError: Accès interdit (HTTP 403). - HenrriNotFoundError: Ressource introuvable (HTTP 404). - HenrriValidationError: Erreur de validation des données (HTTP 400 ou 422). - HenrriServerError: Erreur interne du serveur (HTTP 5xx).

exception henrri_connect.exc.HenrriError[source]

Bases : Exception

Erreur de base pour la bibliothèque henrri-connect.

Ces exceptions sont utilisées pour indiquer des erreurs dans la bibliothèque henrri-connect.

exception henrri_connect.exc.HenrriHTTPError(status_code, message)[source]

Bases : HenrriError

Erreur HTTP retournée par l’API Henrri.

Ces exceptions sont utilisées pour indiquer des erreurs HTTP retournées par l’API Henrri.

Arguments - status_code: Code de statut HTTP. - message: Message d’erreur.

exception henrri_connect.exc.HenrriAuthError(status_code, message)[source]

Bases : HenrriHTTPError

Erreur d’authentification (HTTP 401).

Ces exceptions sont utilisées pour indiquer des erreurs d’authentification (HTTP 401).

Arguments - status_code: Code de statut HTTP. - message: Message d’erreur.

exception henrri_connect.exc.HenrriForbiddenError(status_code, message)[source]

Bases : HenrriHTTPError

Accès interdit (HTTP 403).

Ces exceptions sont utilisées pour indiquer des accès interdits (HTTP 403).

Arguments - status_code: Code de statut HTTP. - message: Message d’erreur.

exception henrri_connect.exc.HenrriNotFoundError(status_code, message)[source]

Bases : HenrriHTTPError

Ressource introuvable (HTTP 404).

Ces exceptions sont utilisées pour indiquer des ressources introuvables (HTTP 404).

Arguments - status_code: Code de statut HTTP. - message: Message d’erreur.

exception henrri_connect.exc.HenrriValidationError(status_code, message)[source]

Bases : HenrriHTTPError

Erreur de validation des données (HTTP 400 ou 422).

Ces exceptions sont utilisées pour indiquer des erreurs de validation des données (HTTP 400 ou 422).

Arguments - status_code: Code de statut HTTP. - message: Message d’erreur.

exception henrri_connect.exc.HenrriServerError(status_code, message)[source]

Bases : HenrriHTTPError

Erreur interne du serveur (HTTP 5xx).

Ces exceptions sont utilisées pour indiquer des erreurs internes du serveur (HTTP 5xx).

Arguments - status_code: Code de statut HTTP. - message: Message d’erreur.

Modèles

Modèles Pydantic v2 pour l’API Henrri.

class henrri_connect.models.Address(**data)[source]

Bases : CamelModel

Représente une adresse d’entreprise.

Attributs: - id: Identifiant unique de l’adresse. - address: Adresse de l’entreprise. - city: Ville de l’entreprise. - post_code: Code postal de l’entreprise. - country: Pays de l’entreprise. - is_post_code_shared: Indique si le code postal est partagé avec d’autres adresses. - links: Liste de liens associés à l’adresse (si applicable).

id: int | None
address: str | None
city: str | None
post_code: str | None
country: str | None
is_post_code_shared: bool
links: list[Link] | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.AuthenticateRequest(**data)[source]

Bases : CamelModel

Représente une requête d’authentification pour obtenir un token d’accès.

Attributs: - client_id: Identifiant du client. - client_secret: Secret du client.

client_id: str
client_secret: str
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.Company(**data)[source]

Bases : CamelModel

Représente une entreprise dans l’API Henrri Connect.

Attributs: - id: Identifiant unique de l’entreprise. - name: Nom de l’entreprise. - logo_url: URL du logo de l’entreprise. - is_self_employed: Indique si l’entreprise est un travailleur indépendant. - siret: Numéro SIRET de l’entreprise (si applicable). - email: Adresse e-mail de l’entreprise (si applicable). - web_site: Site web de l’entreprise (si applicable). - ape_code: Code APE de l’entreprise (si applicable). - ape_label: Libellé du code APE de l’entreprise (si applicable). - global_id: Identifiant global de l’entreprise (si applicable). - address: Adresse de l’entreprise (si applicable). - links: Liste de liens associés à l’entreprise (si applicable).

id: int | None
name: str | None
logo_url: str | None
is_self_employed: bool
siret: str | None
email: str | None
web_site: str | None
ape_code: str | None
ape_label: str | None
global_id: int | None
address: Address | None
links: list[Link] | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.CompanyIdentifierType(*values)[source]

Bases : str, Enum

Type d’identifiant pour les entreprises.

Attributs - SIRET: SIRET. - BCE: BCE. - UNKNOWN: Inconnu.

SIRET = 'Siret'
BCE = 'Bce'
UNKNOWN = 'Unknown'
class henrri_connect.models.Contact(**data)[source]

Bases : CamelModel

Représente un contact d’entreprise.

Attributs: - id: Identifiant unique du contact. - title: Titre du contact. - first_name: Prénom du contact. - last_name: Nom de famille du contact. - email: Adresse e-mail du contact. - phone: Numéro de téléphone du contact. - mobile: Numéro de téléphone mobile du contact. - role: Rôle du contact dans l’entreprise. - is_primary: Indique si le contact est le contact principal de l’entreprise. - show_on_document: Indique si le contact doit être affiché sur les documents. - links: Liste de liens associés au contact (si applicable).

id: int | None
title: str | None
first_name: str | None
last_name: str | None
email: str | None
phone: str | None
mobile: str | None
role: str | None
is_primary: bool
show_on_document: bool
links: list[Link] | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.Customer(**data)[source]

Bases : CamelModel

Modèle pour les clients dans l’API Henrri Connect.

Attributs: - id: Identifiant unique du client. - name: Nom du client. - type: Type de client (individuel ou entreprise). - accounting_number: Numéro comptable du client. - company_identifier_type: Type d’identifiant de l’entreprise (SIRET, BCE, ou inconnu). - siret: Numéro SIRET de l’entreprise (si applicable). - trade_name: Nom commercial de l’entreprise (si applicable). - trade_name_extension: Extension du nom commercial de l’entreprise (si applicable). - ict: Identifiant de contact de l’entreprise (si applicable). - vat_number: Numéro de TVA du client (si applicable). - address: Adresse du client (si applicable). - contacts: Liste de contacts associés au client (si applicable). - days_number_before_payment_reminder_level1: Nb jours avant le premier rappel de paiement. - days_number_before_payment_reminder_level2: Nb jours avant le deuxième rappel de paiement. - days_number_before_payment_reminder_level3: Nb jours avant le troisième rappel de paiement. - days_number_before_payment_reminder_level4: Nb jours avant le quatrième rappel de paiement. - service_discount_percentage: Pourcentage de remise pour les services. - product_discount_percentage: Pourcentage de remise pour les produits. - customer_type_alert_enabled: Indique si les alertes de type de client sont activées. - is_deleted: Indique si le client est supprimé. - is_supplier: Indique si le client est également un fournisseur. - is_advisor: Indique si le client est également un conseiller. - import_date: Date d’importation du client. - comment: Commentaire sur le client. - website: Site web du client (si applicable). - creation_date: Date de création du client. - links: Liste de liens associés au client (si applicable).

id: int | None
name: str
type: CustomerType
accounting_number: str | None
company_identifier_type: CompanyIdentifierType | None
siret: str | None
trade_name: str | None
trade_name_extension: str | None
ict: str | None
vat_number: str | None
address: Address | None
contacts: list[Contact] | None
days_number_before_payment_reminder_level1: int | None
days_number_before_payment_reminder_level2: int | None
days_number_before_payment_reminder_level3: int | None
days_number_before_payment_reminder_level4: int | None
service_discount_percentage: float
product_discount_percentage: float
customer_type_alert_enabled: bool
is_deleted: bool
is_supplier: bool
is_advisor: bool | None
import_date: datetime | None
comment: str | None
website: str | None
creation_date: datetime | None
links: list[Link] | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.CustomerType(*values)[source]

Bases : str, Enum

Type de client pour les clients dans l’API Henrri Connect.

Attributs - INDIVIDUAL: Client individuel. - COMPANY: Client entreprise.

INDIVIDUAL = 'Individual'
COMPANY = 'Company'
class henrri_connect.models.CustomerRequest(**data)[source]

Bases : CamelModel

Modèle pour les requêtes de recherches clients dans l’API Henrri Connect.

Attributs: - page: Numéro de page (par défaut 1). - limit: Nombre de clients par page (par défaut 50). - search: Chaîne de recherche (obligatoire). - sort_by: Champ de tri. - sort_order: Ordre de tri (Ascending ou Descending). - min_id: Identifiant minimal de client (entre 1 et 2 147 483 647). - from_date: Date de début. - to_date: Date de fin.

page: int
limit: int
search: str
sort_by: str | None
sort_order: SortOrder | None
min_id: int | None
from_date: str
to_date: str
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.Document(**data)[source]

Bases : CamelModel

Représente un document dans l’API Henrri Connect.

Attributs: - id: Identifiant unique du document. - identity: Identité du document. - finalized: Indique si le document est finalisé. - type: Type du document. - document_type_id: Identifiant du type de document. - document_type: Type de document (si applicable). - title: Titre du document. - subtitle: Sous-titre du document (si applicable). - price_before_tax: Prix total avant taxe du document. - tax_amount: Montant total de la taxe du document. - price_after_tax: Prix total après taxe du document. - due_label: Libellé de l’échéance du document (si applicable). - last_modification_date: Date de dernière modification du document. - date: Date du document. - validated: Indique si le document est validé. - validation_date: Date de validation du document (si applicable). - validation_firstname: Prénom de la personne ayant validé le document (si applicable). - validation_lastname: Nom de la personne ayant validé le document (si applicable). - validation_email: E-mail de la personne ayant validé le document (si applicable). - validation_ip: IP de la personne ayant validé le document (si applicable). - lines: Liste de lignes de document associées au document (si applicable). - customer_id: Identifiant du client associé au document (si applicable). - customer: Client associé au document (si applicable). - customer_address: Adresse du client associée au document (si applicable). - user_can_validate: Indique si l’utilisateur peut valider le document. - footer_text: Texte de pied de page du document (si applicable). - bank_account_label: Libellé du compte bancaire associé au document (si applicable). - label_id: Identifiant de l’étiquette de document associée au document (si applicable). - links: Liste de liens associés au document (si applicable).

id: int | None
identity: str | None
finalized: bool
type: str | None
document_type_id: int
document_type: DocumentType | None
title: str | None
subtitle: str | None
price_before_tax: float
tax_amount: float
price_after_tax: float
due_label: str | None
last_modification_date: datetime | None
date: datetime | None
validated: bool
validation_date: datetime | None
validation_firstname: str | None
validation_lastname: str | None
validation_email: str | None
validation_ip: str | None
lines: list[DocumentLine] | None
customer_id: int
customer: Customer | None
customer_address: Address | None
user_can_validate: bool
footer_text: str | None
bank_account_label: str | None
label_id: int | None
links: list[Link] | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.DocumentLabel(**data)[source]

Bases : CamelModel

Représente une étiquette de document dans l’API Henrri Connect.

Attributs: - id: Identifiant unique de l’étiquette de document. - model_id: Id du modèle auquel appartient l’étiquette de document. - document_id: Id du document auquel appartient l’étiquette de document. - label: Libellé de l’étiquette de document. - elements: Liste d’éléments d’étiquette de doc associés à l’étiquette de doc (si applicable). - links: Liste de liens associés à l’étiquette de document (si applicable).

id: int | None
model_id: int | None
document_id: int | None
label: str | None
elements: list[DocumentLabelElement] | None
links: list[Link] | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.DocumentLabelElement(**data)[source]

Bases : CamelModel

Représente un élément d’étiquette de document dans l’API Henrri Connect.

Attributs: - id: Identifiant unique de l’élément d’étiquette. - model_element_id: Id de l’élément de modèle auquel appartient l’élément d’étiquette. - label: Libellé de l’élément d’étiquette. - value: Valeur de l’élément d’étiquette. - element_type: Type de l’élément d’étiquette. - is_main_element: Indique si l’élément d’étiquette est l’élément principal de l’étiquette. - size: Taille de l’élément d’étiquette. - index: Index de l’élément d’étiquette dans l’étiquette. - links: Liste de liens associés à l’élément d’étiquette (si applicable).

id: int | None
model_element_id: int | None
label: str | None
value: str | None
element_type: str | None
is_main_element: bool
size: int | None
index: int | None
links: list[Link] | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.DocumentLine(**data)[source]

Bases : CamelModel

Représente une ligne de document dans l’API Henrri Connect.

type_id peut être récupéré par un GET sur /documentlinetypes ou avec henrry_connect.<client>.document_line_types.list_document_line_types

Attributs: - id: Identifiant unique de la ligne de document. - document_id: Identifiant du document auquel appartient la ligne. - reference: Référence de la ligne de document. - description: Description de la ligne de document. - selling_price_without_tax: Prix de vente sans taxe de la ligne de document. - purchasing_price_without_tax: Prix d’achat sans taxe de la ligne de document. - vat_percent: Pourcentage de TVA appliqué à la ligne de document. - quantity: Quantité de l’article dans la ligne de document. - is_tax_included: Indique si les prix incluent la taxe. - total_without_tax: Total sans taxe pour la ligne de document. - total_with_tax: Total avec taxe pour la ligne de document. - are_elements_of_group_shown: Indique si les éléments du groupe sont affichés. - line_number: Numéro de la ligne dans le document. - is_a_group: Indique si la ligne est un groupe d’articles. - does_group_own_different_vat: Indique si le groupe a une TVA différente pour ses éléments. - is_member_of_a_group: Indique si la ligne est membre d’un groupe d’articles. - is_adjustment_of_group: Indique si la ligne est un ajustement d’un groupe d’articles. - type_id: Identifiant du type de ligne de document. - type: Type de ligne de document (si applicable). - group_id: Identifiant du groupe d’articles auquel appartient la ligne (si applicable). - item_id: Identifiant de l’article associé à la ligne (si applicable). - item: Article associé à la ligne (si applicable). - links: Liste de liens associés à la ligne de document (si applicable).

id: int | None
document_id: int | None
reference: str | None
description: str | None
selling_price_without_tax: float | None
purchasing_price_without_tax: float
vat_percent: float | None
quantity: float
is_tax_included: bool
total_without_tax: float | None
total_with_tax: float | None
are_elements_of_group_shown: bool
line_number: int | None
is_a_group: bool
does_group_own_different_vat: bool
is_member_of_a_group: bool
is_adjustment_of_group: bool
type_id: int
type: DocumentLineType | None
group_id: int | None
item_id: int | None
item: Item | None
links: list[Link] | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.DocumentLineListQueryParameters(**data)[source]

Bases : CamelModel

Représente les paramètres de requête pour obtenir une liste de lignes de document dans l’API Henrri Connect.

Attributs: - document_id: Identifiant du document auquel appartient la ligne.

page: int
limit: int
search: str | None
sort_by: str | None
sort_order: SortOrder | None
minId: int
from_date: str
to_date: str
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.DocumentLineMoveQueryParameters(**data)[source]

Bases : CamelModel

Représente les paramètres de requête pour déplacer une ligne de document dans l’API Henrri Connect.

Attributs: - to: Identifiant de la ligne de document vers laquelle déplacer la ligne.

to: int
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.DocumentLineType(**data)[source]

Bases : CamelModel

Représente un type de ligne de document dans l’API Henrri Connect.

Attributs: - id: Identifiant unique du type de ligne de document. - label: Libellé du type de ligne de document. - type: Type de ligne de document.

id: int | None
label: str | None
type: str
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.DocumentQuery(**data)[source]

Bases : CamelModel

Représente une requête de document dans l’API Henrri Connect.

Attributs: - finalized (bool) : Indique si le document est finalisé. - document_types (list[DocumentKind]) :: Type du document. - state (Optional[DocumentState]) : Etat du document. - page (int) : Numéro de page (de 1 à 2 147 483 647, défaut 1). - limit (int) : Nombre de documents par page (de 1 à 100, défaut 50). - search (str) : Chaine de recherche. - sort_by (str) : Champ de tri. - sort_order (SortOrder) : Ordre de tri (Ascending ou Descending). - min_id (int) : Identifiant minimum. - from_date (str) : Date de debut. - to_date (str) : Date de fin.

finalized: bool
document_types: list[DocumentKind] | None
state: DocumentState | None
page: int
limit: int
search: str | None
sort_by: str | None
sort_order: SortOrder | None
min_id: int | None
from_date: str | None
to_date: str | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.DocumentType(**data)[source]

Bases : CamelModel

Représente un type de document dans l’API Henrri Connect.

Attributs: - id: Identifiant unique du type de document. - label: Libellé du type de document. - short_label: Libellé court du type de document. - document_kind: Type de document. - is_accounting: Indique si le type de document est comptable.

id: int | None
label: str | None
short_label: str | None
document_kind: str
is_accounting: bool
is_managed: bool
is_mandatory: bool
is_visible: bool
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.Item(**data)[source]

Bases : CamelModel

Représente un article dans l’API Henrri Connect.

Attributs: - id: Identifiant unique de l’article. - reference: Référence de l’article. - description: Description de l’article. - is_tax_included: Indique si la taxe est incluse dans le prix. - selling_price_without_tax: Prix de vente hors taxe de l’article. - selling_price_with_tax: Prix de vente TTC de l’article. - purchase_price: Prix d’achat de l’article. - vat_percent: Taux de TVA de l’article. - is_a_group: Indique si l’article est un groupe d’articles. - item_category: Catégorie de l’article (si applicable). - item_category_id: Identifiant de la catégorie de l’article (si applicable). - unit_id: Identifiant de l’unité de l’article (si applicable). - parent_item_id: Id d’article parent si l’article est un élément d’un grp d’articles (si applicable). - creation_date: Date de création de l’article. - links: Liste de liens associés à l’article (si applicable).

id: int | None
reference: str | None
description: str | None
is_tax_included: bool
selling_price_without_tax: float | None
selling_price_with_tax: float | None
purchase_price: float
vat_percent: float
is_a_group: bool
item_category: ItemCategory | None
item_category_id: int | None
unit_id: int | None
parent_item_id: int | None
creation_date: str
links: list[Link] | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.ItemCategory(**data)[source]

Bases : CamelModel

Représente une catégorie d’article dans l’API Henrri Connect.

Attributs: - id: Identifiant unique de la catégorie d’article. - type: Type de la catégorie d’article. - label: Libellé de la catégorie d’article. - margin_percent: Pourcentage de marge de la catégorie d’article. - hourly_rate: Tarif horaire de la catégorie d’article. - vat: Taux de TVA de la catégorie d’article. - is_added_to_revenue: Indique si les articles de la cat. sont ajoutés au chiffre d’affaires. - is_default: Indique si la catégorie d’article est la catégorie par défaut. - is_deleted: Indique si la catégorie d’article est supprimée. - item_category_kind: Type de la catégorie d’article (service, produit, ou fourniture).

id: int | None
type: ItemCategoryType | None
label: str | None
margin_percent: float
hourly_rate: float
vat: float
is_added_to_revenue: bool
is_default: bool
is_deleted: bool
item_category_kind: str
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.ItemCategoryRequest(**data)[source]

Bases : CamelModel

Représente une requête de catégorie d’article dans l’API Henrri Connect.

page

Index de la page de la requête (entre 1 et 2 147 483 647, defaut 1).

Type:

int

limit

Nombre d’articles par page (entre 1 et 100, défaut 50).

Type:

int

search

Chaine de recherche.

Type:

str

sort_by

Champ de tri.

Type:

str

sort_order

Ordre de tri (Ascending ou Descending).

Type:

str

min_id

Identifiant minimal de l’article (entre 1 et 2 147 483 647).

Type:

int

from_date

Date de début.

Type:

str

to_date

Date de fin.

Type:

str

page: int
limit: int
search: str
sort_by: str | None
sort_order: str | None
min_id: int | None
from_date: str | None
to_date: str | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.ItemCategoryType(**data)[source]

Bases : CamelModel

Représente un type de catégorie d’article dans l’API Henrri Connect.

Attributs: - id: Identifiant unique du type de catégorie d’article. - label: Libellé du type de catégorie d’article. - item_category_content_kind: Type de contenu de la catégorie d’article. - item_category_kind: Type de catégorie d’article.

id: int | None
label: str | None
item_category_content_kind: str
item_category_kind: str
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.ItemsQuery(**data)[source]

Bases : CamelModel

Représente une requête de catégorie d’article dans l’API Henrri Connect.

Attributs: - page (int) : Index de la page de la requête (entre 1 et 2 147 483 647, defaut 1). - limit (int) : Nombre d’articles par page (entre 1 et 100, défaut 50). - search (str) : Chaine de recherche. - sort_by (str) : Champ de tri. - sort_order (SortOrder) : Ordre de tri (Ascending ou Descending). - min_id (int) : Identifiant minimal de l’article (entre 1 et 2 147 483 647). - from_date (str) : Date de début. - to_date (str) : Date de fin.

page: int
limit: int
search: str | None
sort_by: str | None
sort_order: SortOrder | None
min_id: int
from_date: str
to_date: str
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.Link(**data)[source]

Bases : CamelModel

Représente un lien hypertexte.

Attributs - href: URL du lien. - rel: Relation du lien. - method: Méthode HTTP du lien. - label: Libellé du lien.

href: str | None
rel: str | None
method: str | None
label: str | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.ListResponse(**data)[source]

Bases : CamelModel, Generic[T]

Réponse liste générique.

Attributs - elements: Liste d’éléments. - meta: Métadonnées de la réponse liste (si applicable).

elements: list[T] | None
meta: MetaListResponse | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.MonthlyRevenueStatistics(**data)[source]

Bases : CamelModel

Représente les statistiques de revenus mensuels dans l’API Henrri Connect.

Attributs: - month: Mois des statistiques. - year: Année des statistiques. - total_services_revenue: Revenu total des services. - total_products_revenue: Revenu total des produits. - total_products_margin: Marge totale sur les produits. - total_service_hours: Nombre total d’heures de service.

month: int
year: int
total_services_revenue: float
total_products_revenue: float
total_products_margin: float
total_service_hours: float
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.PagedListResponse(**data)[source]

Bases : CamelModel, Generic[T]

Réponse paginée générique.

Attributs - elements: Liste d’éléments de la page. - totals: Liste de cellules de total pour la page (si applicable). - display: Liste d’informations d’affichage pour les éléments de la page (si applicable). - meta: Métadonnées de la réponse paginée (si applicable).

elements: list[T] | None
totals: list[Cell] | None
display: list[ElementDisplay] | None
meta: MetaPagedListResponse | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.PaymentMilestone(**data)[source]

Bases : CamelModel

Représente une étape de paiement dans l’API Henrri Connect.

Attributs: - id: Identifiant unique de l’étape de paiement. - amount: Montant de l’étape de paiement. - percentage: Pourcentage de l’étape de paiement. - due_date: Date d’échéance de l’étape de paiement. - is_paid: Indique si l’étape de paiement est payée. - document_id: Identifiant du document associé à l’étape de paiement. - payment_id: Identifiant du paiement associé à l’étape de paiement (si applicable). - links: Liste de liens associés à l’étape de paiement (si applicable).

id: int | None
amount: float | None
percentage: float | None
due_date: datetime
is_paid: bool
document_id: int
payment_id: int | None
links: list[Link] | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.PdfUrlResponse(**data)[source]

Bases : CamelModel

Représente la réponse de l’API Henrri Connect pour une URL de PDF.

Attributs: - download_url: URL de téléchargement du PDF. - expires_at: Date d’expiration de l’URL de téléchargement du PDF. - file_name: Nom du fichier PDF (si applicable).

download_url: str | None
expires_at: datetime | None
file_name: str | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.RefreshTokenRequest(**data)[source]

Bases : CamelModel

Représente une requête de rafraîchissement du token d’accès.

Attributs: - refresh_token: Token de rafraîchissement. - client_id: Identifiant du client. - client_secret: Secret du client. - check_point: Point de contrôle (si applicable).

refresh_token: str
client_id: str | None
client_secret: str | None
check_point: str | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.RevenueStatistics(**data)[source]

Bases : CamelModel

Représente les statistiques de revenus dans l’API Henrri Connect.

Attributs: - year: Année des statistiques. - total_services_revenue: Revenu total des services. - total_products_revenue: Revenu total des produits. - total_products_margin: Marge totale sur les produits. - total_service_hours: Nombre total d’heures de service.

year: int
total_services_revenue: float
total_products_revenue: float
total_products_margin: float
total_service_hours: float
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.TaxDetail(**data)[source]

Bases : CamelModel

Représente les détails de taxe dans l’API Henrri Connect.

Attributs: - rate: Taux de taxe. - price_before_tax: Prix total avant taxe. - tax_amount: Montant total de la taxe. - price_after_tax: Prix total après taxe.

rate: float
price_before_tax: float
tax_amount: float
price_after_tax: float
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.TaxDetailArray(**data)[source]

Bases : CamelModel

Représente un tableau de détails de taxe dans l’API Henrri Connect.

Attributs: - tax_detail_array: Liste des détails de taxe. - document_id: Identifiant du document associé aux détails de taxe. - links: Liste de liens associés au tableau de détails de taxe (si applicable).

tax_detail_array: list[TaxDetail] | None
document_id: str | None
links: list[Link] | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.TokenResponse(**data)[source]

Bases : CamelModel

Représente la réponse d’une authentification réussie ou d’un rafraîchissement de token.

Attributs: - access_token: Token d’accès. - identity_token: Token d’identité. - scope: Portée du token. - token_type: Type du token. - refresh_token: Token de rafraîchissement. - expires_in: Durée de validité du token en secondes. - is_error: Indique si la réponse contient une erreur. - error: Code de l’erreur (si applicable). - error_description: Description de l’erreur (si applicable).

access_token: str | None
identity_token: str | None
scope: str | None
token_type: str | None
refresh_token: str | None
expires_in: int
is_error: bool
error: str | None
error_description: str | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.Unit(**data)[source]

Bases : CamelModel

Représente une unité dans l’API Henrri Connect.

Attributs: - id: Identifiant de l’unité. - name: Nom de l’unité. - unit_kind: Type de l’unité. - links: Liens associés à l’unité.

id: int | None
name: str
unit_kind: UnitKind | None
links: list[Link] | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.UnitKind(*values)[source]

Bases : str, Enum

Type d’unité pour les unités de mesure.

Attributs - HOURLY: Horaire. - METER: Mètre. - CENTIMETER: Centimètre. - SQUARE_CENTIMETER: Centimètre carré. - CUBIC_CENTIMETER: Centimètre cube. - DECIMETER: Décimètre. - SQUARE_METER: Mètre carré. - CUBIC_METER: Mètre cube. - MILLIMETER: Millimètre. - SQUARE_MILLIMETER: Millimètre carré. - CUBIC_MILLIMETER: Millimètre cube. - KILOGRAM: Kilogramme. - GRAM: Gramme. - METRIC_TON: Tonne métrique. - SPECIFIC: Spécifique. - FLAT_RATE: Forfait. - LINEAR_METER: Mètre linéaire. - UNIT: Unité. - CUSTOM: Personnalisé.

HOURLY = 'Hourly'
METER = 'Meter'
CENTIMETER = 'Centimeter'
SQUARE_CENTIMETER = 'SquareCentimeter'
CUBIC_CENTIMETER = 'CubicCentimeter'
DECIMETER = 'Decimeter'
SQUARE_METER = 'SquareMeter'
CUBIC_METER = 'CubicMeter'
MILLIMETER = 'Millimeter'
SQUARE_MILLIMETER = 'SquareMillimeter'
CUBIC_MILLIMETER = 'CubicMillimeter'
KILOGRAM = 'Kilogram'
GRAM = 'Gram'
METRIC_TON = 'MetricTon'
SPECIFIC = 'Specific'
FLAT_RATE = 'FlatRate'
LINEAR_METER = 'LinearMeter'
UNIT = 'Unit'
CUSTOM = 'Custom'
class henrri_connect.models.User(**data)[source]

Bases : CamelModel

Représente un utilisateur dans l’API Henrri Connect.

Attributs: - id: Identifiant de l’utilisateur. - email: Adresse email de l’utilisateur. - first_name: Prénom de l’utilisateur. - last_name: Nom de famille de l’utilisateur. - url_image: URL de l’image de profil de l’utilisateur. - first_connexion_date: Date de la première connexion de l’utilisateur. - last_connexion_date: Date de la dernière connexion de l’utilisateur. - connexion_count: Nombre de connexions de l’utilisateur. - created_from: Source de création de l’utilisateur. - phone_number: Numéro de téléphone de l’utilisateur. - creation_date: Date de création de l’utilisateur. - is_enabled: Indique si l’utilisateur est activé. - two_factor_enabled: Indique si l’authentification à deux facteurs est activée pour l’utilisateur. - address: Adresse de l’utilisateur (si applicable). - links: Liste de liens associés à l’utilisateur (si applicable).

id: int | None
email: str | None
first_name: str | None
last_name: str | None
url_image: str | None
first_connexion_date: datetime | None
last_connexion_date: datetime | None
connexion_count: str | None
created_from: str | None
phone_number: str | None
creation_date: datetime | None
is_enabled: bool
two_factor_enabled: bool
address: Address | None
links: list[Link] | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.UserAndCompany(**data)[source]

Bases : CamelModel

Représente un utilisateur et son entreprise dans l’API Henrri Connect.

Attributs:
  • user: Utilisateur de l’API Henrri Connect.

  • company: Entreprise associée à l’utilisateur dans l’API Henrri Connect.

user: User
company: Company
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.models.ValidateDocumentRequest(**data)[source]

Bases : CamelModel

Représente une requête de validation de document dans l’API Henrri Connect.

Attributs: - email: Adresse e-mail de la personne validant le document. - first_name: Prénom de la personne validant le document. - last_name: Nom de la personne validant le document. - validation_date: Date de validation du document. - time_offset: Décalage horaire par rapport à UTC. - ip: Adresse IP de la personne validant le document.

email: str
first_name: str
last_name: str
validation_date: str
time_offset: int
ip: str
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

Ressources

Sociétés

Sous-client pour les endpoints /v1/companies.

Classes: - SyncCompaniesClient : Accès synchrone aux endpoints entreprises. - AsyncCompaniesClient : Accès asynchrone aux endpoints entreprises.

Models: - Address : Adresse. - Company : Entreprise.

Notes: Utiliser de préférence les objets suivants pour acceder aux endpoints: - henrri_connect.SyncHenrriClient - henrri_connect.AsyncHenrriClient

class henrri_connect.companies.Address(**data)[source]

Bases : CamelModel

Représente une adresse d’entreprise.

Attributs: - id: Identifiant unique de l’adresse. - address: Adresse de l’entreprise. - city: Ville de l’entreprise. - post_code: Code postal de l’entreprise. - country: Pays de l’entreprise. - is_post_code_shared: Indique si le code postal est partagé avec d’autres adresses. - links: Liste de liens associés à l’adresse (si applicable).

id: int | None
address: str | None
city: str | None
post_code: str | None
country: str | None
is_post_code_shared: bool
links: list[Link] | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.companies.AsyncCompaniesClient(client)[source]

Bases : object

Accès asynchrone aux endpoints entreprises.

Arguments - client (AsyncHenrriClient) : Client Henrri Connect.

Methodes - get(self, company_id: int) : Récupère une entreprise par son identifiant. - get_address(self, company_id: int) : Récupère l’adresse d’une entreprise.

async get(company_id)[source]

Récupère une entreprise par son identifiant.

Arguments - company_id : Identifiant de l’entreprise.

Returns - henrri_connect.models.Company : Entreprise.

Type renvoyé:

Company

async get_address(company_id)[source]

Récupère l’adresse d’une entreprise.

Arguments - company_id : Identifiant de l’entreprise.

Returns - henrri_connect.models.Address : Adresse de l’entreprise.

Type renvoyé:

Address

class henrri_connect.companies.Company(**data)[source]

Bases : CamelModel

Représente une entreprise dans l’API Henrri Connect.

Attributs: - id: Identifiant unique de l’entreprise. - name: Nom de l’entreprise. - logo_url: URL du logo de l’entreprise. - is_self_employed: Indique si l’entreprise est un travailleur indépendant. - siret: Numéro SIRET de l’entreprise (si applicable). - email: Adresse e-mail de l’entreprise (si applicable). - web_site: Site web de l’entreprise (si applicable). - ape_code: Code APE de l’entreprise (si applicable). - ape_label: Libellé du code APE de l’entreprise (si applicable). - global_id: Identifiant global de l’entreprise (si applicable). - address: Adresse de l’entreprise (si applicable). - links: Liste de liens associés à l’entreprise (si applicable).

id: int | None
name: str | None
logo_url: str | None
is_self_employed: bool
siret: str | None
email: str | None
web_site: str | None
ape_code: str | None
ape_label: str | None
global_id: int | None
address: Address | None
links: list[Link] | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.companies.SyncCompaniesClient(client)[source]

Bases : object

Accès synchrone aux endpoints entreprises.

Arguments - client (SyncHenrriClient) : Client HTTP.

Methodes - get(self, company_id: int) : Récupère une entreprise par son identifiant. - get_address(self, company_id: int) : Récupère l’adresse d’une entreprise.

get(company_id)[source]

Récupère une entreprise par son identifiant.

Arguments - company_id : Identifiant de l’entreprise.

Returns - henrri_connect.models.Company : Entreprise.

Type renvoyé:

Company

get_address(company_id)[source]

Récupère l’adresse d’une entreprise.

Arguments - company_id : Identifiant de l’entreprise.

Returns - henrri_connect.models.Address : Adresse de l’entreprise.

Type renvoyé:

Address

Clients

Sous-client pour les endpoints /v1/customers.

Classes: - SyncCustomersClient : Accès synchrone aux endpoints clients. - AsyncCustomersClient : Accès asynchrone aux endpoints clients.

Notes: Utiliser de préférence les objets suivants pour acceder aux endpoints: - henrri_connect.SyncHenrriClient - henrri_connect.AsyncHenrriClient

class henrri_connect.customers.AsyncCustomersClient(client)[source]

Bases : object

Accès asynchrone aux endpoints clients.

Arguments - client (AsyncHenrriClient) : Client HTTP.

Methods - delete : Supprime un client. - delete_contact : Supprime un contact. - list_customers : Liste les clients avec pagination et filtres optionnels. - get_best_sales : Récupère les meilleurs clients. - get_last_used : Récupère le dernier client utilisé. - add : Crée un nouveau client. - get : Récupère un client par son identifiant. - modify : Met à jour un client. - get_address : Récupère l’adresse d’un client. - list_contacts : Liste les contacts d’un client. - add_contact : Crée un nouveau contact. - get_contact : Récupère un contact d’un client. - modify_contact : Met à jour un contact.

async list_customers(*, request, with_selected_fields=True, with_totals=False, only_current_page=True)[source]
Overloads:
  • self, request (CustomerRequest), with_selected_fields (bool), with_totals (bool), only_current_page (bool) → PagedListResponse[Customer]

  • self, request (CustomerRequest), with_selected_fields (bool), with_totals (None), only_current_page (None)

Liste les clients avec pagination et filtres optionnels.

Arguments - request (CustomerRequest) : Paramètres de recherche. - with_selected_fields (bool) : Si True, lance une requête de recherche avancée. - with_totals (bool) : Si True, renvoie les totaux. - only_current_page (bool) : Si True, renvoie uniquement les clients de la page actuelle.

Returns - PagedListResponse[Customer] : Liste paginée de clients.

async add(customer)[source]

Crée un nouveau client.

Arguments - customer (Customer) : Client à créer.

Returns - Customer : Client créé.

Type renvoyé:

Customer

async get_best_sales(*, year)[source]

Récupère les meilleurs clients.

Arguments - year (int) : Année concerne (minimum 2000, maximum 2100).

Returns - PagedListResponse[Customer] : Liste paginée de clients.

Type renvoyé:

PagedListResponse[Customer]

async get_last_used(customer_type, limit)[source]

Récupère les derniers clients utilisés.

Arguments - customer_type (CustomerType) : Type de client. - limit (int) : Nombre de clients maximum.

Returns - Customer : Derniers clients utilisés.

Type renvoyé:

Customer

async get(customer_id)[source]

Récupère un client par son identifiant.

Arguments - customer_id (int) : Identifiant du client.

Returns - Customer : Client.

Type renvoyé:

Customer

async modify(customer_id, customer)[source]

Met à jour un client existant.

Arguments - customer_id (int) : Identifiant du client. - customer (Customer) : Client à mettre à jour.

Returns - Customer : Client mis à jour.

Type renvoyé:

Customer

async delete(customer_id)[source]

Supprime un client.

Arguments - customer_id (int) : Identifiant du client.

Returns - None.

Type renvoyé:

None

async get_address(customer_id)[source]

Récupère l’adresse d’un client.

Arguments - customer_id (int) : Identifiant du client.

Returns - henrri_connect.models.Address : Adresse du client.

Type renvoyé:

Address

async list_contacts(customer_id)[source]

Liste les contacts d’un client.

Arguments - customer_id (int) : Identifiant du client.

Returns - list[Contact] : Liste de contacts.

Type renvoyé:

list[Contact]

async add_contact(customer_id, contact)[source]

Ajoute un contact à un client.

Arguments - customer_id (int) : Identifiant du client. - contact (Contact) : Contact à ajouter.

Returns - Contact : Contact ajouté.

Type renvoyé:

Contact

async get_contact(customer_id, contact_id)[source]

Récupère un contact d’un client.

Arguments - customer_id (int) : Identifiant du client. - contact_id (int) : Identifiant du contact.

Returns - Contact : Contact.

Type renvoyé:

Contact

async modify_contact(customer_id, contact_id, contact)[source]

Met à jour un contact d’un client.

Arguments - customer_id (int) : Identifiant du client. - contact_id (int) : Identifiant du contact. - contact (Contact) : Contact à mettre à jour.

Returns - Contact : Contact mis à jour.

Type renvoyé:

Contact

async delete_contact(customer_id, contact_id)[source]

Supprime un contact d’un client.

Arguments - customer_id (int) : Identifiant du client. - contact_id (int) : Identifiant du contact.

Returns - None.

Type renvoyé:

None

class henrri_connect.customers.CustomerRequest(**data)[source]

Bases : CamelModel

Modèle pour les requêtes de recherches clients dans l’API Henrri Connect.

Attributs: - page: Numéro de page (par défaut 1). - limit: Nombre de clients par page (par défaut 50). - search: Chaîne de recherche (obligatoire). - sort_by: Champ de tri. - sort_order: Ordre de tri (Ascending ou Descending). - min_id: Identifiant minimal de client (entre 1 et 2 147 483 647). - from_date: Date de début. - to_date: Date de fin.

page: int
limit: int
search: str
sort_by: str | None
sort_order: SortOrder | None
min_id: int | None
from_date: str
to_date: str
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.customers.CustomerType(*values)[source]

Bases : str, Enum

Type de client pour les clients dans l’API Henrri Connect.

Attributs - INDIVIDUAL: Client individuel. - COMPANY: Client entreprise.

INDIVIDUAL = 'Individual'
COMPANY = 'Company'
class henrri_connect.customers.SyncCustomersClient(client)[source]

Bases : object

Accès synchrone aux endpoints clients.

Arguments - client (SyncHenrriClient) : Client HTTP.

Methodes - list_customers : Liste les clients avec pagination et filtres optionnels. - add : Crée un nouveau client. - get_best_sales : Récupère les meilleurs clients. - get_last_used : Récupère le dernier client utilisé. - get : Récupère un client par son identifiant. - modify : Met à jour un client existant. - delete : Supprime un client. - get_address : Récupère l’adresse d’un client. - list_contacts : Liste les contacts d’un client avec pagination et filtres optionnels. - add_contact : Crée un nouveau contact. - get_contact : Récupère un contact d’un client. - modify_contact : Met à jour un contact existant. - delete_contact : Supprime un contact.

list_customers(*, request, with_selected_fields=True, with_totals=False, only_current_page=True)[source]
Overloads:
  • self, request (CustomerRequest), with_selected_fields (bool), with_totals (bool), only_current_page (bool) → PagedListResponse[Customer]

  • self, request (CustomerRequest), with_selected_fields (bool), with_totals (None), only_current_page (None)

Liste les clients avec pagination et filtres optionnels.

Arguments - request (CustomerRequest) : Paramètres de recherche. - with_selected_fields (bool) : Si True, lance une requête de recherche avancée. - with_totals (bool) : Si True, renvoie les totaux. - only_current_page (bool) : Si True, renvoie uniquement les clients de la page actuelle.

Returns - PagedListResponse[Customer] : Liste paginée de clients.

add(customer)[source]

Crée un nouveau client.

Arguments - customer (Customer) : Client à créer.

Returns - Customer : Client créé.

Type renvoyé:

Customer

get_best_sales(*, year)[source]

Récupère les meilleurs clients.

Arguments - year (int) : Année concerne (minimum 2000, maximum 2100).

Returns - PagedListResponse[Customer] : Liste de clients.

Type renvoyé:

PagedListResponse[Customer]

get_last_used(customer_type, limit)[source]

Récupère les derniers clients utilisés.

Arguments - customer_type (CustomerType) : Type de client. - limit (int) : Nombre de clients maximum.

Returns - Customer : Derniers clients utilisés.

Type renvoyé:

Customer

get(customer_id)[source]

Récupère un client par son identifiant.

Arguments - customer_id (int) : Identifiant du client.

Returns - Customer : Client.

Type renvoyé:

Customer

modify(customer_id, customer)[source]

Met à jour un client existant.

Arguments - customer_id (int) : Identifiant du client. - customer (Customer) : Client à mettre à jour.

Returns - Customer : Client mis à jour.

Type renvoyé:

Customer

delete(customer_id)[source]

Supprime un client.

Arguments - customer_id (int) : Identifiant du client.

Returns - None

Type renvoyé:

None

get_address(customer_id)[source]

Récupère l’adresse d’un client.

Arguments - customer_id (int) : Identifiant du client.

Returns - Address : Adresse du client.

Type renvoyé:

Address

list_contacts(customer_id)[source]

Liste les contacts d’un client.

Arguments - customer_id (int) : Identifiant du client.

Returns - list[Contact] : Liste de contacts.

Type renvoyé:

list[Contact]

add_contact(customer_id, contact)[source]

Ajoute un contact à un client.

Arguments - customer_id (int) : Identifiant du client. - contact (Contact) : Contact à ajouter.

Returns - Contact : Contact ajouté.

Type renvoyé:

Contact

get_contact(customer_id, contact_id)[source]

Récupère un contact d’un client.

Arguments - customer_id (int) : Identifiant du client. - contact_id (int) : Identifiant du contact.

Returns - Contact : Contact.

Type renvoyé:

Contact

modify_contact(customer_id, contact_id, contact)[source]

Met à jour un contact d’un client.

Arguments - customer_id (int) : Identifiant du client. - contact_id (int) : Identifiant du contact. - contact (Contact) : Contact à mettre à jour.

Returns - Contact : Contact mis à jour.

Type renvoyé:

Contact

delete_contact(customer_id, contact_id)[source]

Supprime un contact d’un client.

Arguments - customer_id (int) : Identifiant du client. - contact_id (int) : Identifiant du contact.

Returns - None

Type renvoyé:

None

Documents

Sous-client pour les endpoints /v1/documents.

Classes: - SyncDocumentsClient : Accès synchrone aux endpoints documents. - AsyncDocumentsClient : Accès asynchrone aux endpoints documents.

Notes: Utiliser de préférence les objets suivants pour acceder aux endpoints: - henrri_connect.SyncHenrriClient - henrri_connect.AsyncHenrriClient

class henrri_connect.documents.AsyncDocumentsClient(client)[source]

Bases : object

Accès asynchrone aux endpoints documents.

Arguments - client : Objet henrri_connect.AsyncHenrriClient.

Methods - list_documents : Liste tous les documents. - add : Ajoute un document. - get : Accès au document par son ID. - get_with_all : Accès au document par son ID avec toutes ses relations incluses. - get_all_included : Accès au document par son ID avec toutes ses données incluses. - modify : Modifie un document par son ID. - delete : Supprime un document par son ID. - get_tax_details : Accès aux taxes d’un document par son ID. - validate : Valide un document. - get_pdf_url : Accès au document par son ID et son GUID. - get_pdf_bytes : Accès au document par son ID et son GUID. - get_pdf_file : Accès au document par son ID et son GUID. - get_display : Accès aux données d’affichage d’un document par son ID. - get_payment_milestones : Accès aux milestones de paiement d’un document par son ID. - finalize : Finalise un document. - transform_to_invoice : Transforme un document (devis, bon de livraison…) en facture. - get_next_code_batch : Accès au code de batch suivant. - list_with_selected_fields : Liste les documents avec sélection de champs.

async list_documents(*, request)[source]

Liste les documents avec pagination et filtres optionnels.

Arguments - request (DocumentQuery) : Paramètres de recherche.

Returns - PagedListResponse[Document] : Liste paginée de documents.

Type renvoyé:

PagedListResponse[Document]

async add(document)[source]

Crée un nouveau document.

Arguments - document (Document) : Document à créer.

Returns - Document : Document créé.

Type renvoyé:

Document

async get(doc_id)[source]

Récupère un document par son identifiant.

Arguments - doc_id (int) : Identifiant du document.

Returns - Document : Document trouvé.

Type renvoyé:

Document

async get_with_all(doc_id)[source]

Récupère un document avec toutes ses relations incluses.

Arguments - doc_id (int) : Identifiant du document.

Returns - Document : Document avec toutes ses relations incluses.

Type renvoyé:

Document

async get_all_included(doc_id)[source]

Récupère un document avec toutes ses données incluses.

Arguments - doc_id (int) : Identifiant du document.

Returns - Document : Document avec toutes ses données incluses.

Type renvoyé:

Document

async modify(doc_id, document)[source]

Met à jour un document existant.

Arguments - doc_id (int) : Identifiant du document. - document (Document) : Document à mettre à jour.

Returns - Document : Document mis à jour.

Type renvoyé:

Document

async delete(doc_id)[source]

Supprime un document.

Arguments - doc_id (int) : Identifiant du document.

Type renvoyé:

None

async get_tax_details(doc_id)[source]

Récupère le détail des taxes d’un document.

Arguments - doc_id (int) : Identifiant du document.

Returns - TaxDetailArray : Détail des taxes du document.

Type renvoyé:

TaxDetailArray

async validate(doc_id, request)[source]

Valide électroniquement un document.

Arguments - doc_id (int) : Identifiant du document. - request (ValidateDocumentRequest) : Dossier à valider.

Returns - Document : Document validé.

Type renvoyé:

Document

async get_pdf_url(doc_id)[source]

Génère une URL de téléchargement pour le PDF d’un document.

Arguments - doc_id (int) : Identifiant du document.

Returns - PdfUrlResponse : URL de téléchargement du PDF du document.

Type renvoyé:

PdfUrlResponse

async get_pdf_bytes(doc_id)[source]

Télécharge le PDF d’un document (retourne les octets bruts).

Arguments - doc_id (int) : Identifiant du document.

Returns - bytes : Octets bruts du PDF du document.

Type renvoyé:

bytes

async get_pdf_file(doc_id, guid)[source]

Télécharge un fichier PDF identifié par son GUID.

Arguments - doc_id (int) : Identifiant du document. - guid (str) : GUID du fichier PDF.

Returns - bytes : Octets bruts du fichier PDF.

Type renvoyé:

bytes

async get_display(doc_id)[source]

Récupère les données d’affichage d’un document.

Arguments - doc_id (int) : Identifiant du document.

Returns - Document : Document avec les données d’affichage.

Type renvoyé:

Document

async get_payment_milestones(doc_id)[source]

Récupère les jalons de paiement d’un document.

Arguments - doc_id (int) : Identifiant du document.

Returns - ListResponse[PaymentMilestone] : Liste des jalons de paiement du document.

Type renvoyé:

ListResponse[PaymentMilestone]

async finalize(doc_id)[source]

Finalise un document.

Arguments - doc_id (int) : Identifiant du document.

Returns - Document : Document finalisé.

Type renvoyé:

Document

async transform_to_invoice(doc_id)[source]

Transforme un document (devis, bon de livraison…) en facture.

Arguments - doc_id (int) : Identifiant du document.

Returns - Document : Document transformé en facture.

Type renvoyé:

Document

async get_next_quote_batch()[source]

Récupère le prochain numéro de lot pour un devis.

Returns - object : Numéro de lot.

Type renvoyé:

object

async list_with_selected_fields(*, page=1, limit=50, fields=None, **kwargs)[source]

Liste les documents avec sélection de champs.

Arguments - page (int) : Numéro de page (par d&eacute;faut 1). - limit (int) : Nombre de documents par page (par d&eacute;faut 50). - fields (str | None) : Champs à retourner (par d&eacute;faut None). - **kwargs (object) : Autres paramètres.

Returns - PagedListResponse[Document] : Liste de documents.

Type renvoyé:

PagedListResponse[Document]

class henrri_connect.documents.Document(**data)[source]

Bases : CamelModel

Représente un document dans l’API Henrri Connect.

Attributs: - id: Identifiant unique du document. - identity: Identité du document. - finalized: Indique si le document est finalisé. - type: Type du document. - document_type_id: Identifiant du type de document. - document_type: Type de document (si applicable). - title: Titre du document. - subtitle: Sous-titre du document (si applicable). - price_before_tax: Prix total avant taxe du document. - tax_amount: Montant total de la taxe du document. - price_after_tax: Prix total après taxe du document. - due_label: Libellé de l’échéance du document (si applicable). - last_modification_date: Date de dernière modification du document. - date: Date du document. - validated: Indique si le document est validé. - validation_date: Date de validation du document (si applicable). - validation_firstname: Prénom de la personne ayant validé le document (si applicable). - validation_lastname: Nom de la personne ayant validé le document (si applicable). - validation_email: E-mail de la personne ayant validé le document (si applicable). - validation_ip: IP de la personne ayant validé le document (si applicable). - lines: Liste de lignes de document associées au document (si applicable). - customer_id: Identifiant du client associé au document (si applicable). - customer: Client associé au document (si applicable). - customer_address: Adresse du client associée au document (si applicable). - user_can_validate: Indique si l’utilisateur peut valider le document. - footer_text: Texte de pied de page du document (si applicable). - bank_account_label: Libellé du compte bancaire associé au document (si applicable). - label_id: Identifiant de l’étiquette de document associée au document (si applicable). - links: Liste de liens associés au document (si applicable).

id: int | None
identity: str | None
finalized: bool
type: str | None
document_type_id: int
document_type: DocumentType | None
title: str | None
subtitle: str | None
price_before_tax: float
tax_amount: float
price_after_tax: float
due_label: str | None
last_modification_date: datetime | None
date: datetime | None
validated: bool
validation_date: datetime | None
validation_firstname: str | None
validation_lastname: str | None
validation_email: str | None
validation_ip: str | None
lines: list[DocumentLine] | None
customer_id: int
customer: Customer | None
customer_address: Address | None
user_can_validate: bool
footer_text: str | None
bank_account_label: str | None
label_id: int | None
links: list[Link] | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.documents.ListResponse(**data)[source]

Bases : CamelModel, Generic[T]

Réponse liste générique.

Attributs - elements: Liste d’éléments. - meta: Métadonnées de la réponse liste (si applicable).

elements: list[T] | None
meta: MetaListResponse | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.documents.PagedListResponse(**data)[source]

Bases : CamelModel, Generic[T]

Réponse paginée générique.

Attributs - elements: Liste d’éléments de la page. - totals: Liste de cellules de total pour la page (si applicable). - display: Liste d’informations d’affichage pour les éléments de la page (si applicable). - meta: Métadonnées de la réponse paginée (si applicable).

elements: list[T] | None
totals: list[Cell] | None
display: list[ElementDisplay] | None
meta: MetaPagedListResponse | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.documents.PaymentMilestone(**data)[source]

Bases : CamelModel

Représente une étape de paiement dans l’API Henrri Connect.

Attributs: - id: Identifiant unique de l’étape de paiement. - amount: Montant de l’étape de paiement. - percentage: Pourcentage de l’étape de paiement. - due_date: Date d’échéance de l’étape de paiement. - is_paid: Indique si l’étape de paiement est payée. - document_id: Identifiant du document associé à l’étape de paiement. - payment_id: Identifiant du paiement associé à l’étape de paiement (si applicable). - links: Liste de liens associés à l’étape de paiement (si applicable).

id: int | None
amount: float | None
percentage: float | None
due_date: datetime
is_paid: bool
document_id: int
payment_id: int | None
links: list[Link] | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.documents.PdfUrlResponse(**data)[source]

Bases : CamelModel

Représente la réponse de l’API Henrri Connect pour une URL de PDF.

Attributs: - download_url: URL de téléchargement du PDF. - expires_at: Date d’expiration de l’URL de téléchargement du PDF. - file_name: Nom du fichier PDF (si applicable).

download_url: str | None
expires_at: datetime | None
file_name: str | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.documents.TaxDetailArray(**data)[source]

Bases : CamelModel

Représente un tableau de détails de taxe dans l’API Henrri Connect.

Attributs: - tax_detail_array: Liste des détails de taxe. - document_id: Identifiant du document associé aux détails de taxe. - links: Liste de liens associés au tableau de détails de taxe (si applicable).

tax_detail_array: list[TaxDetail] | None
document_id: str | None
links: list[Link] | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.documents.ValidateDocumentRequest(**data)[source]

Bases : CamelModel

Représente une requête de validation de document dans l’API Henrri Connect.

Attributs: - email: Adresse e-mail de la personne validant le document. - first_name: Prénom de la personne validant le document. - last_name: Nom de la personne validant le document. - validation_date: Date de validation du document. - time_offset: Décalage horaire par rapport à UTC. - ip: Adresse IP de la personne validant le document.

email: str
first_name: str
last_name: str
validation_date: str
time_offset: int
ip: str
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.documents.SyncDocumentsClient(client)[source]

Bases : object

Accès synchrone aux endpoints documents.

Arguments - client : Objet henrri_connect.AsyncHenrriClient.

Methods - list_documents : Liste tous les documents. - add : Ajoute un document. - get : Accès au document par son ID. - get_with_all : Accès au document par son ID avec toutes ses relations incluses. - get_all_included : Accès au document par son ID avec toutes ses données incluses. - modify : Modifie un document par son ID. - delete : Supprime un document par son ID. - get_tax_details : Accès aux taxes d’un document par son ID. - validate : Valide un document. - get_pdf_url : Accès au document par son ID et son GUID. - get_pdf_bytes : Accès au document par son ID et son GUID. - get_pdf_file : Accès au document par son ID et son GUID. - get_display : Accès aux données d’affichage d’un document par son ID. - get_payment_milestones : Accès aux milestones de paiement d’un document par son ID. - finalize : Finalise un document. - transform_to_invoice : Transforme un document (devis, bon de livraison…) en facture. - get_next_code_batch : Accès au code de batch suivant. - list_with_selected_fields : Liste les documents avec sélection de champs.

list_documents(*, request)[source]

Liste les documents avec pagination et filtres optionnels.

Arguments - request (DocumentQuery) : Paramètres de recherche.

Returns - PagedListResponse[Document] : Liste paginée de documents.

Type renvoyé:

PagedListResponse[Document]

add(document)[source]

Crée un nouveau document. Les champs unset ou None du document sont exclus de la requête.

Args - document (Document) : Document à créer.

Returns - Document: Le document créé avec les données retournées par l’API.

Raises - HTTPError: Si la requête échoue (code de statut 4xx ou 5xx).

Type renvoyé:

Document

get(doc_id)[source]

Récupère un document par son identifiant.

Arguments - doc_id (int) : Identifiant du document à reafficher.

Returns - Document: Le document retourné par l’API.

Raises - HTTPError: Si la requête échoue (code de statut 4xx ou 5xx).

Type renvoyé:

Document

get_with_all(doc_id)[source]

Récupère un document avec toutes ses relations incluses.

Arguments - doc_id (int) : Identifiant du document à reafficher.

Returns - Document: Le document retourné par l’API.

Type renvoyé:

Document

get_all_included(doc_id)[source]

Récupère un document avec toutes ses données incluses.

Arguments - doc_id (int) : Identifiant du document à reafficher.

Returns - Document: Le document retourné par l’API.

Type renvoyé:

Document

modify(doc_id, document)[source]

Met à jour un document existant.

Arguments - doc_id (int) : Identifiant du document à mettre à jour. - document (Document) : Document à mettre à jour.

Returns - Document: Le document mis à jour par l’API.

Type renvoyé:

Document

delete(doc_id)[source]

Supprime un document.

Arguments - doc_id (int) : Identifiant du document à supprimer.

Type renvoyé:

None

get_tax_details(doc_id)[source]

Récupère le détail des taxes d’un document.

Arguments - doc_id (int) : Identifiant du document.

Returns - TaxDetailArray: Le détail des taxes retourné par l’API.

Type renvoyé:

TaxDetailArray

validate(doc_id, request)[source]

Valide électroniquement un document.

Arguments - doc_id (int) : Identifiant du document à valider. - request (ValidateDocumentRequest) : La requête de validation du document.

Returns - Document: Le document validé par l’API.

Type renvoyé:

Document

get_pdf_url(doc_id)[source]

Génère une URL de téléchargement pour le PDF d’un document.

Arguments - doc_id (int) : Identifiant du document.

Returns - PdfUrlResponse: L’URL de téléchargement du PDF retourné par l’API.

Type renvoyé:

PdfUrlResponse

get_pdf_bytes(doc_id)[source]

Télécharge le PDF d’un document (retourne les octets bruts).

Arguments - doc_id (int) : Identifiant du document.

Returns - bytes: Les octets bruts du PDF retourné par l’API.

Type renvoyé:

bytes

get_pdf_file(doc_id, guid)[source]

Télécharge un fichier PDF identifié par son GUID.

Arguments - doc_id (int) : Identifiant du document. - guid (str) : GUID du fichier PDF.

Returns - bytes: Les octets bruts du fichier PDF retourné par l’API.

Type renvoyé:

bytes

get_display(doc_id)[source]

Récupère les données d’affichage d’un document.

Arguments - doc_id (int) : Identifiant du document.

Returns - Document: Les données d’affichage du document retourné par l’API.

Type renvoyé:

Document

get_payment_milestones(doc_id)[source]

Récupère les jalons de paiement d’un document.

Arguments - doc_id (int) : Identifiant du document.

Returns - ListResponse[PaymentMilestone]: La liste des jalons de paiement du document retourné par l’API.

Type renvoyé:

ListResponse[PaymentMilestone]

finalize(doc_id)[source]

Finalise un document.

Arguments - doc_id (int) : Identifiant du document à finaliser.

Returns - Document: Le document finalisé par l’API.

Type renvoyé:

Document

transform_to_invoice(doc_id)[source]

Transforme un document (devis, bon de livraison…) en facture.

Arguments - doc_id (int) : Identifiant du document à transformer en facture.

Returns - Document: Le document transformé en facture par l’API.

Type renvoyé:

Document

get_next_quote_batch()[source]

Récupère le prochain numéro de lot pour un devis.

Returns - object: Le numéro de lot retourné par l’API.

Type renvoyé:

object

list_with_selected_fields(*, page=1, limit=50, fields=None, **kwargs)[source]

Liste les documents avec sélection de champs.

Arguments - page (int) : Numéro de page. - limit (int) : Nombre d’articles par page. - fields (str | None) : Champs à retourner.

Returns - PagedListResponse[Document]: La liste des documents retourné par l’API.

Type renvoyé:

PagedListResponse[Document]

Lignes de document

Sous-client pour les endpoints /v1/document-lines.

Classes: - SyncDocumentLinesClient : Accès synchrone aux endpoints lignes de documents. - AsyncDocumentLinesClient : Accès asynchrone aux endpoints lignes de documents.

Notes: Utiliser de préférence les objets suivants pour acceder aux endpoints: - henrri_connect.SyncHenrriClient - henrri_connect.AsyncHenrriClient

class henrri_connect.document_lines.AsyncDocumentLinesClient(client)[source]

Bases : object

Accès asynchrone aux lignes de document.

Arguments - client : Objet henrri_connect.AsyncHenrriClient.

Methods - list_document_lines : Liste les lignes d’un document. - add : Ajoute une ligne à un document. - get : Récupère une ligne de document par son identifiant. - modify : Modifie une ligne de document par son identifiant. - delete : Supprime une ligne de document par son identifiant. - move : Déplace une ligne vers une position donnée.

async list_document_lines(document_id, query_params=None)[source]

Liste les lignes d’un document.

Arguments - document_id (int) : Identifiant du document (min 1 et max 2 147 483 647). - query_params (DocumentLineListQueryParameters, optional) : Paramètres de requête.

Returns - ListResponse[DocumentLine] : Liste de lignes de document.

Type renvoyé:

ListResponse[DocumentLine]

async add(document_id, line)[source]

Ajoute une ligne à un document.

Arguments - document_id : Identifiant du document. - line : Ligne de document.

Returns - DocumentLine : Ligne de document ajoutée.

Type renvoyé:

DocumentLine

async get(document_id, line_id)[source]

Récupère une ligne de document par son identifiant.

Arguments - document_id : Identifiant du document. - line_id : Identifiant de la ligne de document.

Returns - DocumentLine : Ligne de document.

Type renvoyé:

DocumentLine

async modify(document_id, line_id, line)[source]

Met à jour une ligne de document.

Arguments - document_id : Identifiant du document. - line_id : Identifiant de la ligne de document. - line : Ligne de document.

Returns - DocumentLine : Ligne de document modifiée.

Type renvoyé:

DocumentLine

async delete(document_id, line_id)[source]

Supprime une ligne de document.

Arguments - document_id : Identifiant du document. - line_id : Identifiant de la ligne de document.

Returns - None

Type renvoyé:

None

async move(document_id, line_id, to)[source]

Déplace une ligne vers une position donnée.

Arguments - document_id : Identifiant du document. - line_id : Identifiant de la ligne de document. - to : Position de destination.

Returns - None

Type renvoyé:

None

class henrri_connect.document_lines.DocumentLine(**data)[source]

Bases : CamelModel

Représente une ligne de document dans l’API Henrri Connect.

type_id peut être récupéré par un GET sur /documentlinetypes ou avec henrry_connect.<client>.document_line_types.list_document_line_types

Attributs: - id: Identifiant unique de la ligne de document. - document_id: Identifiant du document auquel appartient la ligne. - reference: Référence de la ligne de document. - description: Description de la ligne de document. - selling_price_without_tax: Prix de vente sans taxe de la ligne de document. - purchasing_price_without_tax: Prix d’achat sans taxe de la ligne de document. - vat_percent: Pourcentage de TVA appliqué à la ligne de document. - quantity: Quantité de l’article dans la ligne de document. - is_tax_included: Indique si les prix incluent la taxe. - total_without_tax: Total sans taxe pour la ligne de document. - total_with_tax: Total avec taxe pour la ligne de document. - are_elements_of_group_shown: Indique si les éléments du groupe sont affichés. - line_number: Numéro de la ligne dans le document. - is_a_group: Indique si la ligne est un groupe d’articles. - does_group_own_different_vat: Indique si le groupe a une TVA différente pour ses éléments. - is_member_of_a_group: Indique si la ligne est membre d’un groupe d’articles. - is_adjustment_of_group: Indique si la ligne est un ajustement d’un groupe d’articles. - type_id: Identifiant du type de ligne de document. - type: Type de ligne de document (si applicable). - group_id: Identifiant du groupe d’articles auquel appartient la ligne (si applicable). - item_id: Identifiant de l’article associé à la ligne (si applicable). - item: Article associé à la ligne (si applicable). - links: Liste de liens associés à la ligne de document (si applicable).

id: int | None
document_id: int | None
reference: str | None
description: str | None
selling_price_without_tax: float | None
purchasing_price_without_tax: float
vat_percent: float | None
quantity: float
is_tax_included: bool
total_without_tax: float | None
total_with_tax: float | None
are_elements_of_group_shown: bool
line_number: int | None
is_a_group: bool
does_group_own_different_vat: bool
is_member_of_a_group: bool
is_adjustment_of_group: bool
type_id: int
type: DocumentLineType | None
group_id: int | None
item_id: int | None
item: Item | None
links: list[Link] | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.document_lines.DocumentLineListQueryParameters(**data)[source]

Bases : CamelModel

Représente les paramètres de requête pour obtenir une liste de lignes de document dans l’API Henrri Connect.

Attributs: - document_id: Identifiant du document auquel appartient la ligne.

page: int
limit: int
search: str | None
sort_by: str | None
sort_order: SortOrder | None
minId: int
from_date: str
to_date: str
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.document_lines.ListResponse(**data)[source]

Bases : CamelModel, Generic[T]

Réponse liste générique.

Attributs - elements: Liste d’éléments. - meta: Métadonnées de la réponse liste (si applicable).

elements: list[T] | None
meta: MetaListResponse | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.document_lines.SyncDocumentLinesClient(client)[source]

Bases : object

Accès synchrone aux lignes de document.

Arguments - client : Objet henrri_connect.SyncHenrriClient.

Methods - list_document_lines : Liste les lignes d’un document. - add : Ajoute une ligne à un document. - get : Récupère une ligne de document par son identifiant. - modify : Met à jour une ligne de document. - delete : Supprime une ligne de document. - move : Déplace une ligne vers une position donnée.

list_document_lines(document_id, query_params=None)[source]

Liste les lignes d’un document.

Arguments - document_id (int) : Identifiant du document (min 1 et max 2 147 483 647). - query_params (DocumentLineListQueryParameters, optional) : Paramètres de requête.

Returns - ListResponse[DocumentLine] : Liste de lignes de document.

Type renvoyé:

ListResponse[DocumentLine]

add(document_id, line)[source]

Ajoute une ligne à un document.

Arguments - document_id : Identifiant du document. - line : Ligne de document.

Returns - DocumentLine : Ligne de document ajoutée.

Type renvoyé:

DocumentLine

get(document_id, line_id)[source]

Récupère une ligne de document par son identifiant.

Arguments - document_id : Identifiant du document. - line_id : Identifiant de la ligne de document.

Returns - DocumentLine : Ligne de document.

Type renvoyé:

DocumentLine

modify(document_id, line_id, line)[source]

Met à jour une ligne de document.

Arguments - document_id : Identifiant du document. - line_id : Identifiant de la ligne de document. - line : Ligne de document.

Returns - DocumentLine : Ligne de document modifiée.

Type renvoyé:

DocumentLine

delete(document_id, line_id)[source]

Supprime une ligne de document.

Arguments - document_id : Identifiant du document. - line_id : Identifiant de la ligne de document.

Returns - None

Type renvoyé:

None

move(document_id, line_id, to)[source]

Déplace une ligne vers une position donnée.

Arguments - document_id : Identifiant du document. - line_id : Identifiant de la ligne de document. - to : Position de destination.

Returns - None

Type renvoyé:

None

Types de document

Sous-client pour les endpoints /v1/documenttypes.

Classes: - SyncDocumentTypesClient : Accès synchrone aux endpoints types de documents. - AsyncDocumentTypesClient : Accès asynchrone aux endpoints types de documents.

Notes: Utiliser de préférence les objets suivants pour acceder aux endpoints: - henrri_connect.SyncHenrriClient - henrri_connect.AsyncHenrriClient

class henrri_connect.document_types.AsyncDocumentTypesClient(client)[source]

Bases : object

Accès asynchrone aux types de documents.

Arguments - client : Objet henrri_connect.AsyncHenrriClient.

Methods - list_document_types : Liste tous les types de documents.

async list_document_types()[source]

Liste tous les types de documents.

Arguments - None

Returns - ListResponse[DocumentType] : Liste de types de documents.

Type renvoyé:

ListResponse[DocumentType]

class henrri_connect.document_types.DocumentType(**data)[source]

Bases : CamelModel

Représente un type de document dans l’API Henrri Connect.

Attributs: - id: Identifiant unique du type de document. - label: Libellé du type de document. - short_label: Libellé court du type de document. - document_kind: Type de document. - is_accounting: Indique si le type de document est comptable.

id: int | None
label: str | None
short_label: str | None
document_kind: str
is_accounting: bool
is_managed: bool
is_mandatory: bool
is_visible: bool
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.document_types.ListResponse(**data)[source]

Bases : CamelModel, Generic[T]

Réponse liste générique.

Attributs - elements: Liste d’éléments. - meta: Métadonnées de la réponse liste (si applicable).

elements: list[T] | None
meta: MetaListResponse | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.document_types.SyncDocumentTypesClient(client)[source]

Bases : object

Accès synchrone aux types de documents.

Arguments - client : Objet henrri_connect.SyncHenrriClient.

Methods - list_document_types : Liste tous les types de documents.

list_document_types()[source]

Liste tous les types de documents.

Arguments - None

Returns - ListResponse[DocumentType] : Liste de types de documents.

Type renvoyé:

ListResponse[DocumentType]

Types de ligne de document

Sous-client pour les endpoints /v1/document-line-types.

Classes: - SyncDocumentLineTypesClient : Accès synchrone aux endpoints types de lignes de documents. - AsyncDocumentLineTypesClient : Accès asynchrone aux endpoints types de lignes de documents.

Notes: Utiliser de préférence les objets suivants pour acceder aux endpoints: - henrri_connect.SyncHenrriClient - henrri_connect.AsyncHenrriClient

class henrri_connect.document_line_types.AsyncDocumentLineTypesClient(client)[source]

Bases : object

Accès asynchrone aux types de lignes de document.

Arguments - client : Objet henrri_connect.AsyncHenrriClient.

Methods - list_document_line_types : Liste tous les types de lignes de document.

async list_document_line_types()[source]

Liste tous les types de lignes de document.

Arguments - None

Returns - ListResponse[DocumentLineType] : Liste de types de lignes de document.

Type renvoyé:

ListResponse[DocumentLineType]

class henrri_connect.document_line_types.DocumentLineType(**data)[source]

Bases : CamelModel

Représente un type de ligne de document dans l’API Henrri Connect.

Attributs: - id: Identifiant unique du type de ligne de document. - label: Libellé du type de ligne de document. - type: Type de ligne de document.

id: int | None
label: str | None
type: str
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.document_line_types.ListResponse(**data)[source]

Bases : CamelModel, Generic[T]

Réponse liste générique.

Attributs - elements: Liste d’éléments. - meta: Métadonnées de la réponse liste (si applicable).

elements: list[T] | None
meta: MetaListResponse | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.document_line_types.SyncDocumentLineTypesClient(client)[source]

Bases : object

Accès synchrone aux types de lignes de document.

Arguments - client : Objet henrri_connect.SyncHenrriClient.

Methods - list_document_line_types : Liste tous les types de lignes de document.

list_document_line_types()[source]

Liste tous les types de lignes de document.

Arguments - None

Returns - ListResponse[DocumentLineType] : Liste de types de lignes de document.

Type renvoyé:

ListResponse[DocumentLineType]

Articles

Sous-client pour les endpoints /v1/items.

Classes: - henrri_connect.items.asynchro.AsyncItemsClient : Accès asynchrone aux endpoints articles. - henrri_connect.items.synchro.SyncItemsClient : Accès synchrone aux endpoints articles.

Notes: - Utiliser de préférence l’objet henrri_connect.SyncHenrriClient pour acceder aux endpoints. - Utiliser de préférence l’objet henrri_connect.AsyncHenrriClient pour acceder aux endpoints.

class henrri_connect.items.AsyncItemsClient(client)[source]

Bases : object

Accès asynchrone aux endpoints articles.

Arguments - client : Objet henrri_connect.AsyncHenrriClient pour acceder aux endpoints.

Methods - list_items : Liste les articles avec pagination et filtres optionnels. - add : Crée un nouvel article. - get : Récupère un article par son identifiant. - modify : Modifie un article par son identifiant. - delete : Supprime un article par son identifiant. - get_most_used : Récupère les articles les plus utilisés. - get_best_sales : Récupère les articles les plus vendus. - list_with_selected_fields : Liste les articles avec sélection de champs.

async list_items(*, request, with_selected_fields=True, with_totals=False, only_current_page=True)[source]
Overloads:
  • self, request (ItemsQuery), with_selected_fields (bool), with_totals (bool), only_current_page (bool) → PagedListResponse[Item]

  • self, request (ItemsQuery), with_selected_fields (bool), with_totals (None), only_current_page (None) → PagedListResponse[Item]

Liste les articles avec pagination et filtres optionnels.

Arguments - request (ItemsQuery) : Paramètres de recherche. - with_selected_fields (bool) : Si True, lance une requête de recherche avancée. - with_totals (bool) : Si True, renvoie les totaux. - only_current_page (bool) : Si True, renvoie uniquement les articles de la page actuelle.

Returns - PagedListResponse[Item] : Liste paginée d’articles.

async add(item)[source]

Crée un nouvel article.

Arguments - item (Item) : Article à créer.

Returns - Item : Article créé.

Type renvoyé:

Item

async get(item_id)[source]

Récupère un article par son identifiant.

Arguments - item_id (int) : Identifiant de l’article.

Returns - Item : Article trouvé.

Type renvoyé:

Item

async modify(item_id, item)[source]

Met à jour un article existant.

Arguments - item_id (int) : Identifiant de l’article. - item (Item) : Article à mettre à jour.

Returns - Item : Article mis à jour.

Type renvoyé:

Item

async delete(item_id)[source]

Supprime un article.

Arguments - item_id (int) : Identifiant de l’article à supprimer.

Returns - None : Article supprimé.

Type renvoyé:

None

async get_most_used()[source]

Récupère les articles les plus utilisés.

Arguments - None

Returns - PagedListResponse[Item] : Liste paginée d’articles.

Type renvoyé:

PagedListResponse[Item]

async get_best_sales(*, year)[source]

Récupère les articles les plus vendus.

Arguments - year (int) : Année de recherche.

Returns - PagedListResponse[Item] : Liste paginée d’articles.

Type renvoyé:

PagedListResponse[Item]

class henrri_connect.items.Item(**data)[source]

Bases : CamelModel

Représente un article dans l’API Henrri Connect.

Attributs: - id: Identifiant unique de l’article. - reference: Référence de l’article. - description: Description de l’article. - is_tax_included: Indique si la taxe est incluse dans le prix. - selling_price_without_tax: Prix de vente hors taxe de l’article. - selling_price_with_tax: Prix de vente TTC de l’article. - purchase_price: Prix d’achat de l’article. - vat_percent: Taux de TVA de l’article. - is_a_group: Indique si l’article est un groupe d’articles. - item_category: Catégorie de l’article (si applicable). - item_category_id: Identifiant de la catégorie de l’article (si applicable). - unit_id: Identifiant de l’unité de l’article (si applicable). - parent_item_id: Id d’article parent si l’article est un élément d’un grp d’articles (si applicable). - creation_date: Date de création de l’article. - links: Liste de liens associés à l’article (si applicable).

id: int | None
reference: str | None
description: str | None
is_tax_included: bool
selling_price_without_tax: float | None
selling_price_with_tax: float | None
purchase_price: float
vat_percent: float
is_a_group: bool
item_category: ItemCategory | None
item_category_id: int | None
unit_id: int | None
parent_item_id: int | None
creation_date: str
links: list[Link] | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.items.ItemsQuery(**data)[source]

Bases : CamelModel

Représente une requête de catégorie d’article dans l’API Henrri Connect.

Attributs: - page (int) : Index de la page de la requête (entre 1 et 2 147 483 647, defaut 1). - limit (int) : Nombre d’articles par page (entre 1 et 100, défaut 50). - search (str) : Chaine de recherche. - sort_by (str) : Champ de tri. - sort_order (SortOrder) : Ordre de tri (Ascending ou Descending). - min_id (int) : Identifiant minimal de l’article (entre 1 et 2 147 483 647). - from_date (str) : Date de début. - to_date (str) : Date de fin.

page: int
limit: int
search: str | None
sort_by: str | None
sort_order: SortOrder | None
min_id: int
from_date: str
to_date: str
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.items.PagedListResponse(**data)[source]

Bases : CamelModel, Generic[T]

Réponse paginée générique.

Attributs - elements: Liste d’éléments de la page. - totals: Liste de cellules de total pour la page (si applicable). - display: Liste d’informations d’affichage pour les éléments de la page (si applicable). - meta: Métadonnées de la réponse paginée (si applicable).

elements: list[T] | None
totals: list[Cell] | None
display: list[ElementDisplay] | None
meta: MetaPagedListResponse | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.items.SyncItemsClient(client)[source]

Bases : object

Accès synchrone aux endpoints articles.

Arguments - client : Objet henrri_connect.SyncHenrriClient pour acceder aux endpoints.

Methods - list_items : Liste les articles avec pagination et filtres optionnels. - add : Crée un nouvel article. - get : Récupère un article par son identifiant. - modify : Modifie un article par son identifiant. - delete : Supprime un article par son identifiant. - get_most_used : Récupère les articles les plus utilisés. - get_best_sales : Récupère les articles les plus vendus. - list_with_selected_fields : Liste les articles avec sélection de champs.

list_items(*, request, with_selected_fields=True, with_totals=False, only_current_page=True)[source]
Overloads:
  • self, request (ItemsQuery), with_selected_fields (bool), with_totals (bool), only_current_page (bool) → PagedListResponse[Item]

  • self, request (ItemsQuery), with_selected_fields (bool), with_totals (None), only_current_page (None) → PagedListResponse[Item]

Liste les articles avec pagination et filtres optionnels.

Arguments - request (ItemsQuery) : Paramètres de recherche. - with_selected_fields (bool) : Si True, lance une requête de recherche avancée. - with_totals (bool) : Si True, renvoie les totaux. - only_current_page (bool) : Si True, renvoie uniquement les articles de la page actuelle.

Returns - PagedListResponse[Item] : Liste paginée d’articles.

add(item)[source]

Crée un nouvel article.

Arguments - item (Item) : Article à créer.

Returns - Item : Article créé.

Type renvoyé:

Item

get(item_id)[source]

Récupère un article par son identifiant.

Arguments - item_id (int) : Identifiant de l’article.

Returns - Item : Article rencontré.

Type renvoyé:

Item

modify(item_id, item)[source]

Met à jour un article existant.

Arguments - item_id (int) : Identifiant de l’article. - item (Item) : Article à mettre à jour.

Returns - Item : Article mis à jour.

Type renvoyé:

Item

delete(item_id)[source]

Supprime un article.

Arguments - item_id (int) : Identifiant de l’article à supprimer.

Returns - None : Article supprimé.

Type renvoyé:

None

get_most_used()[source]

Récupère les articles les plus utilisés.

Arguments - None

Returns - PagedListResponse[Item] : Liste paginée d’articles.

Type renvoyé:

PagedListResponse[Item]

get_best_sales(*, year)[source]

Récupère les articles les plus vendus.

Arguments - year (int) : Année de recherche.

Returns - PagedListResponse[Item] : Liste paginée d’articles.

Type renvoyé:

PagedListResponse[Item]

Catégories d’articles

Sous-client pour les endpoints /v1/item-categories.

Classes: - henrri_connect.item_categories.synchro.SyncItemCategoriesClient : Accès synchrone aux endpoints categories d’articles.

  • AsyncItemCategoriesClient : Accès asynchrone aux endpoints categories d’articles.

Notes: - Utiliser de préférence l’objet henrri_connect.SyncHenrriClient pour acceder aux endpoints. - Utiliser de préférence l’objet henrri_connect.AsyncHenrriClient pour acceder aux endpoints.

class henrri_connect.item_categories.SyncItemCategoriesClient(client)[source]

Bases : object

Accès synchrone aux catégories d’articles.

Arguments - client : Objet henrri_connect.SyncHenrriClient pour acceder aux endpoints.

Methodes - list_item_categories : Liste les catégories d’articles avec pagination.

list_item_categories(*, request)[source]

Liste les catégories d’articles avec pagination.

Arguments - request (ItemCategoryRequest) : Paramètres de recherche.

Returns - PagedListResponse[ItemCategory] : Liste paginée de catégories d’articles.

Type renvoyé:

PagedListResponse[ItemCategory]

class henrri_connect.item_categories.AsyncItemCategoriesClient(client)[source]

Bases : object

Accès asynchrone aux catégories d’articles.

Arguments - client : Objet henrri_connect.AsyncHenrriClient pour acceder aux endpoints.

Methodes - list_item_categories : Liste les catégories d’articles avec pagination.

async list_item_categories(*, request)[source]

Liste les catégories d’articles avec pagination.

Arguments - request (ItemCategoryRequest) : Paramètres de recherche.

Returns - PagedListResponse[ItemCategory] : Liste paginée de catégories d’articles.

Type renvoyé:

PagedListResponse[ItemCategory]

Revenus

Sous-client pour les endpoints /v1/revenues.

Classes: - henrri_connect.revenues.synchro.SyncRevenuesClient : Accès synchrone aux endpoints revenus. - henrri_connect.revenues.asynchro.AsyncRevenuesClient : Accès asynchrone aux endpoints revenus.

Notes: - Utiliser de préférence l’objet henrri_connect.SyncHenrriClient pour acceder aux endpoints. - Utiliser de préférence l’objet henrri_connect.AsyncHenrriClient pour acceder aux endpoints.

class henrri_connect.revenues.AsyncRevenuesClient(client)[source]

Bases : object

Accès asynchrone aux statistiques de revenus.

Parameters: - client (AsyncHenrriClient) : Client HTTP.

Methods: - get_annual(self, year: int) : Récupère les statistiques de revenus annuelles. - get_monthly(self, year: int) : Récupère les statistiques de revenus mensuelles pour une année.

async get_annual(year)[source]

Récupère les statistiques de revenus annuelles.

Arguments: - year (int) : Année de recherche.

Returns: - RevenueStatistics : Statistiques de revenus annuelles.

Type renvoyé:

RevenueStatistics

async get_monthly(year)[source]

Récupère les statistiques de revenus mensuelles pour une année.

Arguments: - year (int) : Année de recherche.

Returns: - list[MonthlyRevenueStatistics] : Statistiques de revenus mensuelles.

Type renvoyé:

list[MonthlyRevenueStatistics]

class henrri_connect.revenues.MonthlyRevenueStatistics(**data)[source]

Bases : CamelModel

Représente les statistiques de revenus mensuels dans l’API Henrri Connect.

Attributs: - month: Mois des statistiques. - year: Année des statistiques. - total_services_revenue: Revenu total des services. - total_products_revenue: Revenu total des produits. - total_products_margin: Marge totale sur les produits. - total_service_hours: Nombre total d’heures de service.

month: int
year: int
total_services_revenue: float
total_products_revenue: float
total_products_margin: float
total_service_hours: float
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.revenues.RevenueStatistics(**data)[source]

Bases : CamelModel

Représente les statistiques de revenus dans l’API Henrri Connect.

Attributs: - year: Année des statistiques. - total_services_revenue: Revenu total des services. - total_products_revenue: Revenu total des produits. - total_products_margin: Marge totale sur les produits. - total_service_hours: Nombre total d’heures de service.

year: int
total_services_revenue: float
total_products_revenue: float
total_products_margin: float
total_service_hours: float
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.revenues.SyncRevenuesClient(client)[source]

Bases : object

Accès synchrone aux statistiques de revenus.

Parameters: - client (SyncHenrriClient) : Client HTTP.

Methods: - get_annual(self, year: int) : Récupère les statistiques de revenus annuelles. - get_monthly(self, year: int) : Récupère les statistiques de revenus mensuelles pour une année.

get_annual(year)[source]

Récupère les statistiques de revenus annuelles.

Arguments: - year (int) : Année de recherche.

Returns: - RevenueStatistics : Statistiques de revenus annuelles.

Type renvoyé:

RevenueStatistics

get_monthly(year)[source]

Récupère les statistiques de revenus mensuelles pour une année.

Arguments: - year (int) : Année de recherche.

Returns: - list[MonthlyRevenueStatistics] : Statistiques de revenus mensuelles.

Type renvoyé:

list[MonthlyRevenueStatistics]

Unités

Sous-client pour les endpoints /v1/units.

Classes: - henrri_connect.units.asynchro.AsyncUnitsClient : Accès asynchrone aux endpoints unités. - henrri_connect.units.synchro.SyncUnitsClient : Accès synchrone aux endpoints unités.

Notes: - Utiliser de préférence l’objet henrri_connect.AsyncHenrriClient pour acceder aux endpoints. - Utiliser de préférence l’objet henrri_connect.SyncHenrriClient pour acceder aux endpoints.

class henrri_connect.units.AsyncUnitsClient(client)[source]

Bases : object

Accès asynchrone aux unités.

Arugments - client (AsyncHenrriClient) : Client asynchrone pour acceder aux endpoints.

Methods - list_units() : Liste toutes les unités disponibles. - add(unit: Unit) : Crée une nouvelle unité. - get(unit_id: int) : Récupère une unité par son identifiant.

async list_units()[source]

Liste toutes les unités disponibles.

Arguments - None

Returns - ListResponse[Unit] : Liste de unités.

Type renvoyé:

ListResponse[Unit]

async add(unit)[source]

Crée une nouvelle unité.

Arguments - unit: Unit : Unité à crée.

Returns - Unit : Unité crée.

Type renvoyé:

Unit

async get(unit_id)[source]

Récupère une unité par son identifiant.

Arguments - unit_id (int) : Identifiant de l’unité.

Returns - Unit : Unité.

Type renvoyé:

Unit

class henrri_connect.units.ListResponse(**data)[source]

Bases : CamelModel, Generic[T]

Réponse liste générique.

Attributs - elements: Liste d’éléments. - meta: Métadonnées de la réponse liste (si applicable).

elements: list[T] | None
meta: MetaListResponse | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.units.SyncUnitsClient(client)[source]

Bases : object

Accès synchrone aux unités.

Arguments - client (SyncHenrriClient) : Client synchrone pour acceder aux endpoints.

Methods - list_units() : Liste toutes les unités disponibles. - add(unit: Unit) : Crée une nouvelle unité. - get(unit_id: int) : Récupère une unité par son identifiant.

list_units()[source]

Liste toutes les unités disponibles.

Arguments - None

Returns - ListResponse[Unit] : Liste de unités.

Type renvoyé:

ListResponse[Unit]

add(unit)[source]

Crée une nouvelle unité.

Arguments - unit: Unit : Unité à crée.

Returns - Unit : Unité crée.

Type renvoyé:

Unit

get(unit_id)[source]

Récupère une unité par son identifiant.

Arguments - unit_id (int) : Identifiant de l’unité.

Returns - Unit : Unité.

Type renvoyé:

Unit

class henrri_connect.units.Unit(**data)[source]

Bases : CamelModel

Représente une unité dans l’API Henrri Connect.

Attributs: - id: Identifiant de l’unité. - name: Nom de l’unité. - unit_kind: Type de l’unité. - links: Liens associés à l’unité.

id: int | None
name: str
unit_kind: UnitKind | None
links: list[Link] | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

Utilisateurs

Sous-client pour les endpoints /v1/users.

Classes: - henrri_connect.users.asynchro.AsyncUsersClient : Accès asynchrone aux endpoints utilisateurs. - henrri_connect.users.synchro.SyncUsersClient : Accès synchrone aux endpoints utilisateurs.

Notes: - Utiliser de préférence l’objet henrri_connect.AsyncHenrriClient pour acceder aux endpoints. - Utiliser de préférence l’objet henrri_connect.SyncHenrriClient pour acceder aux endpoints.

class henrri_connect.users.Address(**data)[source]

Bases : CamelModel

Représente une adresse d’entreprise.

Attributs: - id: Identifiant unique de l’adresse. - address: Adresse de l’entreprise. - city: Ville de l’entreprise. - post_code: Code postal de l’entreprise. - country: Pays de l’entreprise. - is_post_code_shared: Indique si le code postal est partagé avec d’autres adresses. - links: Liste de liens associés à l’adresse (si applicable).

id: int | None
address: str | None
city: str | None
post_code: str | None
country: str | None
is_post_code_shared: bool
links: list[Link] | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.users.AsyncUsersClient(client)[source]

Bases : object

Accès asynchrone aux endpoints utilisateurs.

Arguments - client (AsyncHenrriClient) : Client asynchrone pour acceder aux endpoints.

Methods - get(user_id: int) : Récupère un utilisateur par son identifiant. - get_address(user_id: int) : Récupère l’adresse d’un utilisateur. - get_companies() : Récupère les entreprises associées à l’utilisateur courant. - authenticate() : Authentifie via les identifiants du client. - refresh_token(refresh_token: str) : Rafraîchit le token d’accès.

async get(user_id)[source]

Récupère un utilisateur par son identifiant.

Arguments - user_id (int) : Identifiant de l’utilisateur.

Returns - User : Utilisateur.

Type renvoyé:

User

async get_address(user_id)[source]

Récupère l’adresse d’un utilisateur.

Arguments: - user_id (int) : Identifiant de l’utilisateur.

Returns: - henrri_connect.models.Address : Adresse de l’utilisateur.

Type renvoyé:

Address

async get_companies()[source]

Récupère les entreprises associées à l’utilisateur courant.

Returns: - list[UserAndCompany] : Entreprises.

Type renvoyé:

list[UserAndCompany]

async authenticate()[source]

Authentifie via les identifiants du client.

Returns: - henrri_connect.models.TokenResponse : Objet contenant access_token et refresh_token.

Type renvoyé:

TokenResponse

async refresh_token(refresh_token)[source]

Rafraîchit le token d’accès.

Arguments: - refresh_token (str) : Token de rafraîchissement.

Returns: - henrri_connect.models.TokenResponse : Objet contenant access_token et refresh_token.

Type renvoyé:

TokenResponse

class henrri_connect.users.SyncUsersClient(client)[source]

Bases : object

Accès synchrone aux endpoints utilisateurs.

Arguments: - client (SyncHenrriClient) : Client synchrone pour acceder aux endpoints.

Methods: - get(user_id: int) : Récupère un utilisateur par son identifiant. - get_address(user_id: int) : Récupère l’adresse d’un utilisateur. - get_companies() : Récupère les entreprises associées à l’utilisateur courant. - authenticate() : Authentifie via les identifiants du client. - refresh_token(refresh_token: str) : Rafraîchit le token d’accès.

get(user_id)[source]

Récupère un utilisateur par son identifiant.

Arguments: - user_id (int) : Identifiant de l’utilisateur.

Returns: - User : Utilisateur.

Type renvoyé:

User

get_address(user_id)[source]

Récupère l’adresse d’un utilisateur.

Arguments: - user_id (int) : Identifiant de l’utilisateur.

Returns: - henrri_connect.models.Address : Adresse de l’utilisateur.

Type renvoyé:

Address

get_companies()[source]

Récupère les entreprises associées à l’utilisateur courant.

Returns: - list[UserAndCompany] : Entreprises.

Type renvoyé:

list[UserAndCompany]

authenticate()[source]

Authentifie via les identifiants du client.

Returns: - henrri_connect.models.TokenResponse : Objet contenant access_token et refresh_token.

Type renvoyé:

TokenResponse

refresh_token(refresh_token)[source]

Rafraîchit le token d’accès.

Arguments: - refresh_token (str) : Token de rafraîchissement.

Returns: - henrri_connect.models.TokenResponse : Objet contenant access_token et refresh_token.

Type renvoyé:

TokenResponse

class henrri_connect.users.TokenResponse(**data)[source]

Bases : CamelModel

Représente la réponse d’une authentification réussie ou d’un rafraîchissement de token.

Attributs: - access_token: Token d’accès. - identity_token: Token d’identité. - scope: Portée du token. - token_type: Type du token. - refresh_token: Token de rafraîchissement. - expires_in: Durée de validité du token en secondes. - is_error: Indique si la réponse contient une erreur. - error: Code de l’erreur (si applicable). - error_description: Description de l’erreur (si applicable).

access_token: str | None
identity_token: str | None
scope: str | None
token_type: str | None
refresh_token: str | None
expires_in: int
is_error: bool
error: str | None
error_description: str | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.users.User(**data)[source]

Bases : CamelModel

Représente un utilisateur dans l’API Henrri Connect.

Attributs: - id: Identifiant de l’utilisateur. - email: Adresse email de l’utilisateur. - first_name: Prénom de l’utilisateur. - last_name: Nom de famille de l’utilisateur. - url_image: URL de l’image de profil de l’utilisateur. - first_connexion_date: Date de la première connexion de l’utilisateur. - last_connexion_date: Date de la dernière connexion de l’utilisateur. - connexion_count: Nombre de connexions de l’utilisateur. - created_from: Source de création de l’utilisateur. - phone_number: Numéro de téléphone de l’utilisateur. - creation_date: Date de création de l’utilisateur. - is_enabled: Indique si l’utilisateur est activé. - two_factor_enabled: Indique si l’authentification à deux facteurs est activée pour l’utilisateur. - address: Adresse de l’utilisateur (si applicable). - links: Liste de liens associés à l’utilisateur (si applicable).

id: int | None
email: str | None
first_name: str | None
last_name: str | None
url_image: str | None
first_connexion_date: datetime | None
last_connexion_date: datetime | None
connexion_count: str | None
created_from: str | None
phone_number: str | None
creation_date: datetime | None
is_enabled: bool
two_factor_enabled: bool
address: Address | None
links: list[Link] | None
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class henrri_connect.users.UserAndCompany(**data)[source]

Bases : CamelModel

Représente un utilisateur et son entreprise dans l’API Henrri Connect.

Attributs:
  • user: Utilisateur de l’API Henrri Connect.

  • company: Entreprise associée à l’utilisateur dans l’API Henrri Connect.

user: User
company: Company
model_config: ClassVar[ConfigDict] = {'alias_generator': <function to_camel>, 'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

Sécurité

Sous-client pour les endpoints /v1/secures.

Classes: - henrri_connect.secures.asynchro.AsyncSecuresClient Accès asynchrone aux endpoints safeguards (santé). - henrri_connect.secures.synchro.SyncSecuresClient Accès synchrone aux endpoints safeguards (santé).

Notes: - Utiliser de préférence l’objet henrri_connect.AsyncHenrriClient pour acceder aux endpoints. - Utiliser de préférence l’objet henrri_connect.SyncHenrriClient pour acceder aux endpoints.

class henrri_connect.secures.AsyncSecuresClient(client)[source]

Bases : object

Accès asynchrone aux endpoints sécurisés (santé).

Arguments

client : AsyncHenrriClient Client asynchrone pour acceder aux endpoints.

Methods

hello_world() Vérifie la connexion authentifiée à l’API (endpoint de santé).

async hello_world()[source]

Vérifie la connexion authentifiée à l’API (endpoint de santé).

Type renvoyé:

str

Arguments

None

Returns

str : Texte de la réponse.

class henrri_connect.secures.SyncSecuresClient(client)[source]

Bases : object

Accès synchrone aux endpoints sécurisés (santé).

Arguments - client : SyncHenrriClient Client synchrone pour acceder aux endpoints.

Methods - hello_world() Vérifie la connexion authentifiée à l’API (endpoint de santé).

hello_world()[source]

Vérifie la connexion authentifiée à l’API (endpoint de santé).

Arguments - None

Returns - str : Texte de la réponse.

Type renvoyé:

str

Utilitaires

Module utilitaire pour les clients Henrri Connect.

Fournit l’ensemble des fonctions utilitaires nécessaires au package henrri_connect.

Functions:

  • raise_for_status: Levé une exception appropriée selon le code HTTP de la réponse.

  • clean: Nettoie un dictionnaire en supprimant les clés dont la valeur est None.

henrri_connect.utils.raise_for_status(resp)[source]

Lève une exception appropriée selon le code HTTP de la réponse.

Correspondance des codes HTTP :

  • 400 : HenrriValidationError

  • 401 : HenrriAuthError

  • 403 : HenrriForbiddenError

  • 404 : HenrriNotFoundError

  • 5xx : HenrriServerError

  • Autres : HenrriHTTPError

Tente d’extraire un message d’erreur détaillé depuis la réponse JSON, ou utilise le texte brut de la réponse si le JSON est invalide.

Paramètres:

resp (Response) – La réponse HTTP httpx à analyser.

Lève:
  • HenrriValidationError – Si le code HTTP est 400.

  • HenrriAuthError – Si le code HTTP est 401.

  • HenrriForbiddenError – Si le code HTTP est 403.

  • HenrriNotFoundError – Si le code HTTP est 404.

  • HenrriServerError – Si le code HTTP est >= 500.

  • HenrriHTTPError – Pour tout autre code d’erreur.

Type renvoyé:

None

henrri_connect.utils.clean(params)[source]

Supprime les valeurs None d’un dictionnaire

Paramètres:

params (dict[str, Any]) – Dictionnaire contenant des valeurs None

Renvoie:

Dictionnaire sans valeurs None

Type renvoyé:

dict[str, Any]