/owner/reports/journal_transactions?report_type=cat&type=trial-balance¤cy=-1.journal_cat_id or level they are the top level only, as the page opens; a row with has_children can be opened by repeating the request with journal_cat_id. With level, has_children can be true where the page hides the expand button (it hides it whenever a level is chosen); this is a known, harmless difference. rows[].node_id (cat:41 / account:41) is unique; plain ids collide between main accounts and accounts. Figures are raw numbers in the base currency. columns.*.displayed says which of the four column groups the page would print for these filters; net is always 0 and columns.net.displayed is false: ignore it. totals is the sum of the rows returned, as on the page.400 rather than truncated; narrow with journal_cat_id, level or accounts_display.curl --location '/api2/reports/trial_balance?date_from=2025-01-01&date_to=2025-12-31&journal_cat_id=&journal_account_id=&accounts_display=&level=&cost_center_id=&fy_id=&staff_id=&before_balance_display_type=&journals_branch_id=&accounts_branch=' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer ' \
--header 'apikey: ' \
--header 'Content-Type: application/json'{
"result": "successful",
"code": 200,
"data": {
"report": {
"key": "trial_balance",
"title": "string",
"currency": "string"
},
"filters": {
"date_from": "2019-08-24",
"date_to": "2019-08-24",
"journal_cat_id": 0,
"journal_account_id": [
0
],
"accounts_display": "string",
"level": 0,
"cost_center_id": [
0
],
"fy_id": [
0
],
"staff_id": 0,
"before_balance_display_type": "string",
"journals_branch_id": [
0
],
"accounts_branch": 0
},
"columns": {
"before": {
"displayed": true,
"basis": "net"
},
"period": {
"displayed": true
},
"after": {
"displayed": true
},
"net": {
"displayed": true
}
},
"rows": [
{
"node_id": "cat:41",
"id": 0,
"type": "cat",
"name": "string",
"code": "string",
"has_children": true,
"before": {
"debit": 0,
"credit": 0
},
"period": {
"debit": 0,
"credit": 0
},
"after": {
"debit": 0,
"credit": 0
},
"net": {
"debit": 0,
"credit": 0
}
}
],
"totals": {
"before": {
"debit": 0,
"credit": 0
},
"period": {
"debit": 0,
"credit": 0
},
"after": {
"debit": 0,
"credit": 0
},
"net": {
"debit": 0,
"credit": 0
}
},
"meta": {
"row_count": 0,
"max_level": 0
}
}
}