Reports

Balance sheet report

Intended to show what the scoped properties own, owe and hold in equity as at one date. The Portal implementation is currently a stub and always returns an empty report.

GET
https://api.portal.magicdoor.com/company-app/reports/balance-sheet

Authorization

Authorizationstringrequired
Bearer token — Send your API token in the Authorization header as Bearer <token>. Requests without a valid token are rejected with 401 Unauthorized.

Query parameters

reportAsOffstring · date

The date to report as at, included. Read in the company's timezone. Accepted and validated, but ignored while the report is stubbed.

example: 2026-03-31
portfolioIdsstring[]

Narrow the report to these portfolios. Repeat the parameter once per id. An id that does not exist returns 404.

propertyIdsstring[]

Narrow the report to these properties. Repeat the parameter once per id. An id that does not exist returns 404.

ownerIdsstring[]

Narrow the report to properties these owners have a stake in. Repeat the parameter once per id. An id that does not exist returns 404.

companyBillsboolean

Filter on who pays. Leave it out to include everything, set it true for bills the management company pays, false for bills the owner pays.

accountingBasisenum<string>

Whether to count money when it moves (cash) or when it is earned or owed (accrual).

default: cashcashaccrual

Response

200 · The balance sheet. Every array and every total comes back empty while the report is stubbed.

groupHeadersobject[]

The money columns. Always empty at present.

assetsobject[]

Asset accounts. Always empty at present.

totalAssetsobject

Total assets per column. Always empty at present.

liabilitiesobject[]

Liability accounts. Always empty at present.

totalLiabilitiesobject

Total liabilities per column. Always empty at present.

equityobject[]

Equity accounts. Always empty at present.

totalEquityobject

Total equity per column. Always empty at present.

401 · The access token is missing, expired, or not valid for this company.

404 · A portfolio, property or owner id in the query does not exist in the caller's company.

This report is not implemented yet

The balance sheet builder in the Portal service is a stub: it returns empty arrays and empty totals whatever you send it, and it does not read any accounting data. The endpoint answers 200 with a well-formed but empty report, so a client cannot tell the difference from a company with no data. Do not build against it until it is finished.

The query parameters are still bound and validated, so a portfolio, property or owner id that does not exist still returns 404. Everything else is ignored.

When the report is finished it will use the same shape as the cash flow and income statement reports: groupHeaders naming the money columns, and every amount an object keyed by those column ids.