Skip to content

Data model

COMMITLY plans cash flow with the direct method: money in and money out, per category, over time. The API exposes the same building blocks you see in the app.

Company
├── Categories (tree) what money is for
├── Banks → Accounts where money is
│ └── Transactions what actually happened
├── Invoices (open items) what is due
├── Plans → Plan budgets what you committed to
├── Scenarios → Budgets what could happen
└── Forecast → Forecast budgets what you expect now

API credentials belong to one company. All company-level endpoints return and change data of that company only. Groups with several companies use the group-level endpoints.

Categories form a tree (parent) and structure every amount in COMMITLY: transactions, open items and budgets are all mapped to a category.

Field Meaning
is_category true: you can map transactions and budgets to it. false: a grouping node.
is_obsolete true: archived. Do not map new data to it.
is_default true: a system category. Do not use it for budgets.

Budgets, invoices and transactions are mapped to leaf categories, i.e. categories without subcategories. Pick one with is_category: true, is_obsolete: false and is_default: false. order is the display position; is_aggregating marks grouping categories.

A bank groups the accounts of one bank connection. Accounts can be online (connected to the bank) or offline (maintained manually or through the API).

The accounts endpoint also returns figures for the company, in the company currency: total (sum of all balances), available_limit (overdraft limits today), and the forecast balance with the matching limit at the end of the current month, next month, in three months and at the end of the fiscal year (current_month_balance/current_month_limit and so on). The forecast balances are null if the company has no current forecast.

Transactions are actual bookings on an account. Negative amounts are outflows, positive amounts inflows. Each transaction carries its category (and, where COMMITLY suggests one, a predicted_category) and can be linked to an invoice.

You can list and filter transactions, change their category (one at a time or up to 1,000 per call) and create transactions on offline accounts, for example to feed them from another system. You can create offline accounts through the API as well. Accounts connected to a bank do not accept transactions through the API. A new transaction gets a default category; assign the right one afterwards.

Invoices are receivables and payables that are not settled yet. COMMITLY uses them in the open items part of the plan, on their expected payment date.

  • Required: reference (your invoice number), name, amount, due_date.
  • type is RE (receivable) or PA (payable). If you leave it out, a positive amount makes a receivable, anything else a payable.
  • status shows where the invoice stands, for example PL expected, PP partially paid, PD paid, OD overdue, CA cancelled; status_label gives the readable name.
  • paid_amount is deducted from amount; the result is amount_due.
  • expected_date is the date you expect the payment. Without it, COMMITLY uses the due date, or today if the due date is in the past.
  • category maps the invoice directly; alternatively, tags can carry information for your mapping rules.

Your reference identifies the invoice for updates and deletion. COMMITLY also links invoices to the matching bank transactions (transactions).

A plan is a budget over one or more years (first_year to last_year). type is REGULAR for a plan, FORECAST for the forecast and SCENARIO for a scenario. is_committed shows whether a plan is committed, is_active whether it is in use. Plan budgets are the planned amounts per category and date.

A scenario is a plan layer on top of the forecast. It holds alternative assumptions, such as a worst case or a new hire. Scenario budgets change only their own scenario: the forecast and all other plans stay as they are.

The forecast is COMMITLY’s current expectation of future cash flow. It combines actual data with planned and expected amounts. Forecast budgets add expected amounts directly to it.