Summarise cash flow
What the cash flow screen shows, decomposed, per period bucket and at most one more
dimension. Give period, or both from and to.
Each period has an actual half and a forecast half. The actual half is the
transactions dated in the period, counted as /transactions/summary counts them:
transfers between the workspace’s own accounts and excluded movements are left out,
and split transactions count through their pieces. The forecast half is the remaining
amount of the unrealised forecasts dated in the period. A partly matched forecast
counts only what is still expected, and its linked transactions count as actuals.
inflow, outflow and net add the two halves and equal the screen.
Forecasts dated before today and still unrealised are overdue. They are left out of
the rows unless include_overdue=true. totals.overdue_inflow and totals.overdue_outflow
always report the remaining amount of the overdue forecasts the rows did not count.
Amounts convert to currency at the rate of each movement’s own date. Buckets are
calendar aligned and clipped to the window. totals covers the whole window.
Rows grouped by period alone also carry the period’s starting balance, opened
accounts, transfers, excluded movements and final balance. The final balance of a
future period is the projected balance. Those five are null when group_by or
direction is given.
A bank_id or account_id filter narrows the actual half and the balances, never the
forecasts, which have no account and always cover the whole workspace. A bank_id
that matches no account returns the empty result: no rows and zero totals.
group_by=account is rejected with 400 for the same reason.
Grouped rows are ordered by absolute net, largest first. A period keeps at most 50
groups; the rest fold into one row labelled other. Transactions and forecasts with
no counterparty or no label fall in a none row, and one with several labels counts
once per label. Here category_id also covers subcategories.
Filters combine with AND; a filter that takes a list combines its values with OR.
Cash flow per month for the next quarter
Expected inflows per counterparty next month
Authorizations
A workspace API key created in ThinkOut settings. One key reads one workspace.
Query Parameters
A named window, resolved against the workspace's local day and echoed in the response. Takes precedence over from and to.
A named window resolved on the server. last_30_days and last_90_days end today and include it; last_12_months starts the day after today minus twelve months. next_month, next_quarter and next_year cover the whole next calendar month, quarter or year.
this_month, last_month, this_quarter, last_quarter, this_year, last_year, month_to_date, quarter_to_date, year_to_date, last_30_days, last_90_days, last_12_months, next_month, next_quarter, next_year First day of the window, inclusive. Required with to unless period is given.
Last day of the window, inclusive. Required with from unless period is given.
The period bucket rows are grouped into. A period bucket for report rows.
day, week, month A second dimension to group by, alongside the period bucket. Omit it for one row per period.
A dimension to group cash flow rows by, alongside the period bucket. There is no account, because forecasts have none.
category, counterparty, label, activity, direction Currency to report in. Defaults to the workspace currency. An unknown code is rejected. ISO 4217 alphabetic currency code.
^[A-Z]{3}$"RON"
Only rows on the accounts fed by these bank connections. Comma-separated for several.
Only rows on these accounts. Comma-separated for several.
Only rows in these categories. Comma-separated for several. On /transactions this
also matches a split transaction whose pieces are in one of them. Subcategories are
included only on the summaries.
Only rows carrying at least one of these labels. Comma-separated for several.
Only rows attributed to these counterparties. Comma-separated for several.
Whether money comes in or goes out. On a transaction or forecast it follows the sign of amount.
inflow, outflow Only rows whose category sits in these cash flow statement sections. Comma-separated for several.
Cash flow statement section the category belongs to.
operating, investing, financing Whether overdue forecasts, those dated before today and still unrealised, count in the rows of the periods they fall in. Off, they only appear in totals.overdue_inflow and totals.overdue_outflow.
Response
The summary.
"cash_flow_summary"The window actually computed.
What was done to make amounts comparable.
A dimension to group cash flow rows by, alongside the period bucket. There is no account, because forecasts have none.
category, counterparty, label, activity, direction The bank_id filter echoed, empty when none was given.
The account_id filter echoed, empty when none was given.
What the forecast half and the overdue totals cover. Always the whole workspace: a forecast has no account, so bank_ids and account_ids narrow only the actual half and the balances.
"workspace"Whether overdue forecasts counted in the rows, as requested.
false when no transaction and no forecast matched.
The whole window added up, over the same transactions and forecasts as the rows.