Developers
API reference

Statements

get/v1/statements/balance-sheet

Balance sheet

statements.balance_sheetread tokenidempotent

The balance sheet at the end of each of the last months months (the last column is today): every asset, liability and equity account's balance, with retained earnings derived so the statement balances, and a currency translation adjustment when foreign balances moved with the rates.

Parameters

months
integer · query
How many calendar months, ending with the current one (1–24).
X-Organization-Id
string | null · header

Returns 200 · BalanceSheet

assets
currency
string · required
The ledger's base currency.
dates
array of date · required
Month-ends, oldest first; the last is today.
equity
liabilities
unconverted_currencies
array of string · required
Currencies with no stored exchange rate, shown 1:1.
Example
curl -X GET "https://api.lumaledger.app/v1/statements/balance-sheet" \
  -H "Authorization: Bearer $LUMALEDGER_TOKEN"
get/v1/statements/cash-flow

Cash flow statement

statements.cash_flowread tokenidempotent

Money in and out of each real account in each of the last months months, translated to the base currency at each month's own rate.

Parameters

months
integer · query
How many calendar months, ending with the current one (1–24).
X-Organization-Id
string | null · header

Returns 200 · CashFlow

accounts
array of CashFlowAccount · required
currency
string · required
months
array of string · required
YYYY-MM, oldest first.
totals
array of Flow · required
One per month.
unconverted_currencies
array of string · required
Example
curl -X GET "https://api.lumaledger.app/v1/statements/cash-flow" \
  -H "Authorization: Bearer $LUMALEDGER_TOKEN"
get/v1/statements/income

Income statement

statements.incomeread tokenidempotent

The income statement: what each income and expense category took in or spent in each of the last months calendar months, their totals, and net income (income − expenses).

Parameters

months
integer · query
How many calendar months, ending with the current one (1–24).
purpose
string | null · query
Only the personal or the business side of the ledger. Both when omitted.
X-Organization-Id
string | null · header

Returns 200 · IncomeStatement

currency
string · required
The ledger's base currency.
expenses
income
months
array of string · required
YYYY-MM, oldest first; the last is the current month.
net_income
NetIncome · required
Example
curl -X GET "https://api.lumaledger.app/v1/statements/income" \
  -H "Authorization: Bearer $LUMALEDGER_TOKEN"
get/v1/statements/income/breakdown

Income statement row by counterparty

statements.income_breakdownread tokenidempotent

One row of the income statement split by who the money went to or came from, over the same months. A category id that is not in this ledger has no activity and answers no rows.

Parameters

category_id
integer · query · required
The income or expense account to split (category_id of a row).
months
integer · query
How many calendar months, ending with the current one (1–24).
purpose
string | null · query
Only the personal or the business side of the ledger. Both when omitted.
X-Organization-Id
string | null · header

Returns 200 · IncomeStatementBreakdown

currency
string · required
months
array of string · required
rows
array of StatementBreakdownRow · required
Largest first.
Example
curl -X GET "https://api.lumaledger.app/v1/statements/income/breakdown" \
  -H "Authorization: Bearer $LUMALEDGER_TOKEN"

Objects

BalanceSheet

Assets, liabilities and equity at each month-end. It balances by construction: assets = liabilities + equity in every column.

Fields

assets
currency
string · required
The ledger's base currency.
dates
array of date · required
Month-ends, oldest first; the last is today.
equity
liabilities
unconverted_currencies
array of string · required
Currencies with no stored exchange rate, shown 1:1.

BalanceSheetRow

Fields

account_id
integer | null · required
Null for a derived equity row (retained earnings, currency translation adjustment), which no account carries.
code
string · required
mask
string | null · required
name
string · required
native_latest
Money | null · required
The latest balance in the account's own currency; null for a derived row.
role
string | null · required
values
array of Money · required
One per date in dates, in the base currency.

BalanceSheetSection

Fields

rows
array of BalanceSheetRow · required
totals
array of Money · required
One per date.

CashFlow

What went in and out of each real account (bank, card, brokerage, loan) by month. Opening balances and valuation marks are position, not flow, and are left out.

Fields

accounts
array of CashFlowAccount · required
currency
string · required
months
array of string · required
YYYY-MM, oldest first.
totals
array of Flow · required
One per month.
unconverted_currencies
array of string · required

CashFlowAccount

Fields

account_id
integer · required
code
string · required
is_liability
boolean · required
mask
string | null · required
name
string · required
role
string | null · required
series
array of Flow · required
One per month in months.

Flow

Fields

inflow
Money · required
Movements that grew the balance (for a card: charges).
net
Money · required
outflow
Money · required
Movements that shrank it (for a card: payments).

IncomeStatement

Income and expenses by category and month (the P&L), and the net.

Fields

currency
string · required
The ledger's base currency.
expenses
income
months
array of string · required
YYYY-MM, oldest first; the last is the current month.
net_income
NetIncome · required

IncomeStatementBreakdown

One category of the income statement, split by counterparty.

Fields

currency
string · required
months
array of string · required
rows
array of StatementBreakdownRow · required
Largest first.

IncomeStatementRow

Fields

category_id
integer · required
The income or expense account.
code
string · required
name
string · required
parent_id
integer | null · required
The row this one is a subcategory of.
total
Money · required
values
array of Money · required
One per month in months.

IncomeStatementSection

Fields

rows
array of IncomeStatementRow · required
In chart order, each subcategory after its parent.
total
Money · required
totals
array of Money · required
One per month.

Money

An amount and its currency. `amount` is a base-10 string with two decimal places and an optional leading minus sign. Parse it with a decimal type, not a float.

Fields

amount
string · required
Pattern: ^-?\d+\.\d{2}$.
currency
string · required
ISO 4217 code. Pattern: ^[A-Z]{3}$.

NetIncome

Fields

total
Money · required
values
array of Money · required

StatementBreakdownRow

Fields

description
string · required
Who the money went to or came from, as the entries describe it.
entries
integer · required
How many transactions it sums.
total
Money · required
values
array of Money · required
One per month in months.