Property charges

List a property's charges

Returns a page of charges booked against the property, plus the properties, units, leases, transactions, bank accounts and ledger accounts they point at.

GET
https://api.portal.magicdoor.com/company-app/properties/{propertyId}/bills

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.

Path parameters

propertyIdstringrequired

Snowflake id of the property the charge belongs to.

example: 1830472847398404097

Query parameters

pageinteger

Which page to return. Starts at 1.

default: 1
pageSizeinteger

How many records per page. Between 1 and 100. Defaults to 50.

default: 50
portfolioIdstring

Narrow to charges in this portfolio.

propertyIdstring

Ignored on this route. The property in the path always wins.

unitIdstring

Narrow to charges booked against this unit.

leaseIdstring

Narrow to charges booked against this lease.

chartOfAccountIdstring

Narrow to charges booked to this revenue account.

chargeDate.startstring · date

Earliest charge date to include, as YYYY-MM-DD. Give at least one end of the range if you use it at all.

chargeDate.endstring · date

Latest charge date to include, inclusive of the whole day.

amount.fromnumber

Smallest amount to include. Give at least one end of the range if you use it at all.

amount.tonumber

Largest amount to include.

amount.includeFromboolean

Whether amount.from itself counts as a match.

default: true
amount.includeToboolean

Whether amount.to itself counts as a match.

default: true

Response

200 · One page of charges, plus the records they reference.

itemsPropertyCharge[]

The charges on this page, in the plain shape — no expanded property, unit or lease. Fetch a single charge for those.

currentPageinteger

The page you asked for. Note the name: this endpoint calls it currentPage, not page.

totalPagesinteger

How many pages the filtered set fills at this page size.

pageSizeinteger

How many records a page holds.

totalCountinteger

How many records match the filter across every page.

propertiesProperty[]

Each property referenced by the page, once.

unitsUnit[]

Each unit referenced by the page, once.

leasesLease[]

Each lease referenced by the page, once.

transactionsTransaction[]

Each transaction referenced by the page, once.

bankAccountsBankAccount[]

Each bank account referenced by those transactions, once.

chartOfAccountsChartOfAccount[]

Each ledger account referenced by the page, once.

400 · A query parameter failed validation — `page` below 1, `pageSize` outside 1 to 100, a date range with neither end set or with `start` after `end`, or an amount range with neither end set. The response carries an `errors` member mapping each rejected field name to its message.

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

What a property charge is

A property charge is income a property earns outside the rent — laundry, vending, parking, amenity and service fees. It is booked against the property, and optionally against one of its units or leases, and it always produces a transaction on a bank account. Rent and other tenant charges are lease charges and live on the leases endpoints instead.

The same operation answers on two paths

This controller is registered on both /company-app/properties/{propertyId}/bills and /company-app/properties/{propertyId}/charges. Both paths reach the same code and behave identically. The pages here document the /bills form.

This envelope names the page `currentPage`

The rest of the MagicDoor API returns page in its pagination envelope. The legacy Portal endpoints, including this one, return currentPage instead. The request parameter is still page.