Event catalogue

Everything Hela announces to the outside. A type missing from this list cannot be emitted — the code refuses — and the list is served as is by GET /companies/{companyId}/events/catalogue, with descriptions in each language.

An event always carries id, type, createdAt, companyId, object, objectId and data (see Webhooks). The content of data is described, type by type, in the OpenAPI schema.

Sales and invoices

Type When
sale.created A sale or receipt is recorded, at the counter, online or through the API.
sale.cancelled A sale is cancelled.
invoice.issued A sale becomes an invoice: addressed to a partner or leaving a balance due.
invoice.partially_paid A payment is recorded but the balance is not zero.
invoice.paid The balance reaches zero.
invoice.refunded A refund is recorded.
delivery.created A delivery note is issued.

Quotes

Type When
quote.created A quote is created.
quote.accepted The customer accepts it (from their client space or by hand).
quote.declined The customer declines it.
quote.signed It comes back signed from a signature provider.
quote.converted It becomes a sale.

Purchases

Type When
purchase.created A supplier order is created.
purchase.received It is received, in full or in part.
purchase.paid It is paid.
purchase.cancelled It is cancelled.
expense.created An expense is recorded.

Treasury

Type When
payment.received Money comes in, whatever the origin (sale, payment link, mobile money).
payment.failed An online payment fails or expires.
transaction.created A free movement is recorded in a wallet.
transaction.voided A movement is voided.
transfer.completed A transfer between wallets is done.
cash_session.opened A till is opened.
cash_session.closed A till is closed; data carries the count and the differences.
bank_transaction.imported A bank statement line enters reconciliation, from a file or a feed (GoCardless, Ponto, Plaid).

Stock

Type When
stock.low An item falls under its alert threshold.

Partners and orders

Type When
partner.created, partner.updated A customer or supplier is created or edited.
order_request.received An order arrives from the public menu or the online shop.

Hotel

Type When
stay.checked_in, stay.checked_out A stay begins, ends.

Time

Type When
time_entry.created Hours are logged or imported.

Compliance

Type When
fiscal.accepted An invoice is accepted by the authority; data carries its reference and, where applicable, the QR code.
fiscal.rejected It is refused; data.error says why.

Integrations and system

Type When
integration.connected, integration.disconnected A partner is plugged in, unplugged.
integration.failed A partner or a webhook fails repeatedly.
rate.updated An exchange rate is updated (by hand or by a feed).

| invoice.overdue | An invoice's due date has passed without full payment. Emitted once per invoice, by an hourly sweep, for companies where a webhook or a connector listens. | | stock.movement | An adjustment, a loss, a return or a validated count changed stock. Shopify and WooCommerce use it to rewrite quantities in the shop. |

Reserved

These types are in the catalogue — a webhook can subscribe to them now — but no code emits them yet. They will arrive without a version change.

Type When it will be emitted
supplier_invoice.received A supplier invoice arrives through a connector.
fiscal.submitted An invoice leaves for the authority (today only accepted and rejected are emitted).
export.ready A requested export is ready.

Conventions

  • Names are <aggregate>.<past participle>: the thing, then what happened to it.
  • data is a stable view: fields may be added, none disappears or changes meaning within one API version.
  • Amounts in data are { amount, currency } objects in minor units.
  • data.actor says who caused the event: { "kind": "user", "id": "…" } or { "kind": "api_key", "id": "…" }.

¿Algo incorrecto o ausente? Escríbanos.