Data model

The main Horus Office entities and how they relate to each other.

Understanding a few Horus Office concepts will make the API Reference much easier to navigate. If you are familiar with Belgian accounting, most of them will sound natural.

License (fiduciary / SMB)
 └── Users
 └── Folders  ─────────────── one per company whose accounts are kept
      ├── Fiscal years
      ├── Daybooks            (purchases, sales, bank, misc. operations…)
      ├── Accounts            (the folder's chart of accounts)
      ├── Companies           (customers, suppliers, beneficiaries) ── IBANs
      ├── Vehicles
      ├── Cost schemas ── Cost sections          (analytics)
      ├── Book entries ── Account history lines ── Cost histories
      │        └── Documents (main document + annexes)
      └── Library documents

Licenses and users

A license represents a Horus Office customer: a fiduciary (accounting firm) or an SMB. Each license has its own database and its own API endpoint (see Authentication overview).

  • licenses.main returns the main license, i.e. the fiduciary/SMB license.
  • licenses.me returns the license linked to the authenticated user.

Users are either accountants using Horus Office (IsAccountant: true) or entrepreneurs using Horus Mobile. What a user can see through the API depends on their access in Horus.

Folders

A folder is the accounting record of one company: its configuration, chart of accounts, daybooks and entries. Almost every endpoint requires a FolderId.

folders.list takes a Mode:

ModeAccountantEntrepreneur
0 — All foldersAll folders.All folders they have access to.
1 — My foldersFolders they are responsible for.All folders they have access to.

Folders also tell you which optional modules are enabled, such as WithAssets and WithAnalytics.

Fiscal years

A fiscal year (accounting exercise) belongs to a folder and describes its closing status: start and end dates, last VAT closure date, last closure dates per type of daybook (purchases, sales, financials, miscellaneous operations), and whether the year IsClosed.

📘

Check closure dates before posting

Before pushing entries, check the relevant closure dates with fiscal-years.list to avoid posting into a period that has already been closed by the accountant.

Daybooks

A daybook is an accounting journal. Every book entry is stored in one, depending on its type. The daybook Type drives which endpoint you use to post entries:

Daybook typeValueEndpoint to post entries
Purchase / Purchase credit note100 / 150invoices.purchases.new
Sale / Sale credit note200 / 250invoices.sales.new
Bank500book-entries.banks.new
Financial590book-entries.financials.new
Miscellaneous operation600book-entries.miscellaneous-operations.new

Other types exist (cash, temporary or system miscellaneous operations, budget, external). See the daybooks.info reference for the full list. Daybooks are identified by a SearchKey (e.g. ACH, VEN).

Accounts

Every folder has its own chart of accounts. Each account is identified by a unique search key, which is usually the account number (e.g. 400000, 604000, 700000). When posting entries, you reference accounts by their search key.

Accounts carry their category, VAT settings, matchability (IsMatchable), personal share settings, and more.

Companies

Companies are the legal entities a folder deals with: customers, suppliers and beneficiaries (e.g. employees receiving salaries). They are usually identified by a VAT number and/or a local business number, and by a SearchKey.

A company has:

  • its customer and supplier concentration accounts (e.g. 400000 and 440000),
  • payment terms and usual payment modes,
  • one or more IBANs, managed with the ibans.* endpoints.

Book entries and account histories

A book entry (accounting entry) is an accounting transaction in a folder, in a daybook, at a given date. It may be linked to a dematerialised document (PDF, image…).

The entry's detailed lines are its account history lines: one line per account movement, with debit/credit amounts, VAT information, matching number, etc.

  • book-entries.list returns entries for a daybook and a period.
  • account-histories.list returns every entry line of a folder over a period. This is the general ledger view.
  • account-balance.list returns the debit/credit state of each account over a period.

Confirmed and unconfirmed entries

Entries can be confirmed or not. Entries pushed through the API are unconfirmed by default (Confirmed: false), which lets the accountant review them in Horus Office before confirming them. Some operations, such as deleting a miscellaneous operation, are only possible on unconfirmed entries.

Analytics: cost schemas, sections and histories

When the analytics module is enabled (WithAnalytics), entry lines can be distributed across analytical dimensions:

  • a cost schema is an analytical dimension (e.g. DEPARTMENT). A folder can use up to 8 cost schemas;
  • a cost section is a value within a schema (e.g. OFFICE);
  • cost histories are the analytical distribution of account history lines;
  • a cost distribution key is a predefined distribution, configured in Horus Office, that you can reference instead of detailing cost lines.

Vehicles

Vehicles are tracked for accounts that require them (car expenses, for example). When posting purchases or operations, you can pass a VehicleId so that it is associated with the relevant lines.

Documents and library documents

  • A document is a dematerialised file linked to a book entry, as its main document or as an annex.
  • A library document is a file stored in the folder's library, not linked to any book entry.

See Documents & attachments.

Search keys and Ids

Entities are identified by a GUID Id, used in API references (FolderId, CompanyId, DaybookId…). Many of them also have a human-readable search key (SearchKey), unique within the folder. Accounts and cost schemas/sections are referenced by search key in posting endpoints.


Did this page help you?