Catalogue des événements

Tout ce que Hela annonce vers l'extérieur. Un type absent de cette liste ne peut pas être émis — le code refuse — et la liste est servie telle quelle par GET /companies/{companyId}/events/catalogue, avec les descriptions dans chaque langue.

Un événement porte toujours id, type, createdAt, companyId, object, objectId et data (voir Webhooks). Le contenu de data est décrit, type par type, dans le schéma OpenAPI.

Ventes et factures

Type Quand
sale.created Une vente ou un ticket est enregistré, au comptoir, en ligne ou par l'API.
sale.cancelled Une vente est annulée.
invoice.issued Une vente devient une facture : elle est adressée à un partenaire ou laisse un reste à payer.
invoice.partially_paid Un paiement est enregistré mais le solde n'est pas nul.
invoice.paid Le solde atteint zéro.
invoice.refunded Un remboursement est enregistré.
delivery.created Un bon de livraison est émis.

Devis

Type Quand
quote.created Un devis est créé.
quote.accepted Le client l'accepte (depuis son espace client ou à la main).
quote.declined Le client le refuse.
quote.signed Il revient signé d'un fournisseur de signature.
quote.converted Il devient une vente.

Achats

Type Quand
purchase.created Une commande fournisseur est créée.
purchase.received Elle est réceptionnée, en tout ou partie.
purchase.paid Elle est réglée.
purchase.cancelled Elle est annulée.
expense.created Une dépense est enregistrée.

Trésorerie

Type Quand
payment.received De l'argent entre, quelle qu'en soit l'origine (vente, lien de paiement, mobile money).
payment.failed Un paiement en ligne échoue ou expire.
transaction.created Un mouvement libre est enregistré dans un portefeuille.
transaction.voided Un mouvement est annulé.
transfer.completed Un virement entre portefeuilles est fait.
cash_session.opened Une caisse est ouverte.
cash_session.closed Une caisse est clôturée ; data porte le comptage et les écarts.
bank_transaction.imported Une ligne de relevé bancaire entre dans le rapprochement, par fichier ou par un flux (GoCardless, Ponto, Plaid).

Stock

Type Quand
stock.low Un article passe sous son seuil d'alerte.

Partenaires et commandes

Type Quand
partner.created, partner.updated Un client ou fournisseur est créé ou modifié.
order_request.received Une commande arrive depuis la carte publique ou la boutique en ligne.

Hôtel

Type Quand
stay.checked_in, stay.checked_out Un séjour commence, se termine.

Temps

Type Quand
time_entry.created Des heures sont saisies ou importées.

Conformité

Type Quand
fiscal.accepted Elle est acceptée ; data porte la référence de l'autorité et, le cas échéant, le code QR.
fiscal.rejected Elle est refusée ; data.error dit pourquoi.

Intégrations et système

Type Quand
integration.connected, integration.disconnected Un partenaire est branché, débranché.
integration.failed Un partenaire ou un webhook échoue de façon répétée.
rate.updated Un taux de change est mis à jour (à la main ou par un flux).
invoice.overdue L'échéance d'une facture est passée sans paiement complet. Émis une fois par facture, par un passage horaire, pour les entreprises où un webhook ou un connecteur l'écoute.
stock.movement Un ajustement, une perte, un retour ou un inventaire validé a changé le stock. Shopify et WooCommerce s'en servent pour réécrire les quantités en boutique.

Réservés

Ces types figurent dans le catalogue — un webhook peut s'y abonner dès maintenant — mais aucun code ne les émet encore. Ils arriveront sans changement de version.

Type Quand il sera émis
supplier_invoice.received Une facture fournisseur arrive par un connecteur.
fiscal.submitted Une facture part vers l'autorité (aujourd'hui, seuls accepted et rejected sont émis).
export.ready Un export demandé est prêt.

Conventions

  • Les noms sont <aggregat>.<participe passé> : la chose, puis ce qui lui est arrivé.
  • data est une vue stable : des champs peuvent s'ajouter, aucun ne disparaît ni ne change de sens dans une même version de l'API.
  • Les montants dans data sont des objets { amount, currency } en unité mineure.
  • data.actor dit qui a provoqué l'événement : { "kind": "user", "id": "…" } ou { "kind": "api_key", "id": "…" }.

Un passage est faux ou manquant ? Écrivez-nous.