Accounting reports

Get a rent payments report

Lists the tenant payment transactions in a date range, one row each, with the property, unit, lease and payer resolved. Requires the reports:read permission.

GET
https://services.magicdoor.com/accounting/company-portal/reports/rent-payments

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 transaction date to include, read in the company's timezone.

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

Last transaction date to include, read in the company's timezone. It may be at most 92 days after dateRange.start.

example: 2026-07-31
dateRange.startInclusiveboolean

Whether dateRange.start itself is included.

default: true
dateRange.endInclusiveboolean

Whether dateRange.end itself is included.

default: true
portfolioIdsstring[]

Only these portfolios.

propertyIdsstring[]

Only these properties.

externalTransactionTypesenum<string>[]

Only payments taken through these channels. offline is the offline-recorded ones; the rest are online.

plaidstripezelleofflinemagicDoor
paymentMethodsenum<string>[]

Only payments made this way.

achdebitCardwalletcreditCardcheckcashiersCheckmoneyOrdercashzelleothercredittransfer
statusesenum<string>[]

Only payments in these states.

pendingfailedsuccesscancelledreturnedrefundeddisputingdisputed
identitiesenum<string>[]

Which kinds of lease payment to include. Omit for all lease-related kinds.

leaseChargeleaseDepositleaseProcessingFee

Response

200 · The matching payments and their totals.

entriesEntry[]

One row per transaction.

totalAmountnumber

The sum of the entries' amounts, as a decimal.

totalCountinteger

How many entries there are.

400 · `dateRange` is missing, spans more than 92 days, or an id is not a Snowflake.

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

403 · The caller does not hold the `reports:read` permission.

The range is capped at three months

A dateRange spanning more than 92 days is rejected with a 400. Ask for a longer history in several calls.

The report is not paginated — every matching transaction comes back in one response.