Reports

General ledger report

Intended to list every posting in a date range, grouped by chart of account, with a running balance. The Portal implementation is currently a stub and always returns an empty report.

GET
https://api.portal.magicdoor.com/company-app/reports/general-ledger

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

dateRange.startstring · daterequired

First day of the period. Read in the company's timezone.

example: 2026-01-01
dateRange.endstring · daterequired

Last day of the period, included in the range.

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.

includeChartOfAccountIdsstring[]

Only include these accounts. Repeat the parameter once per id.

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.

includeSubsidiesboolean

Whether housing-authority subsidy postings appear in the ledger.

default: true

Response

200 · The ledger. Every array comes back empty while the report is stubbed.

propertiesobject[]

Every property referenced by a ledger row. Always empty at present.

vendorsobject[]

Every vendor referenced by a ledger row. Always empty at present.

tenantsobject[]

Every tenant referenced by a ledger row. Always empty at present.

chartOfAccountsobject[]

One entry per account, holding that account's rows and totals. 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 general ledger 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 dateRange is still required and a portfolio, property or owner id that does not exist still returns 404. Everything else is ignored.

The field list below describes the shape the report is meant to return, taken from the response contract. It is documented so a client can be written against it, not because the data arrives today.