Reports

Bank account activity report

Lists everything that moved through one bank account over a date range, with a running balance. One row is one cleared transaction: its date, who it was with, cash in or cash out, and the balance after it.

GET
https://api.portal.magicdoor.com/company-app/reports/bank-account-activity/{bankAccountId}

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

bankAccountIdstringrequired

The bank account to report on. A Snowflake id sent as a decimal string.

example: 1830472847398416016

Query parameters

dateRange.startstring · date

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

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

Last day of the period, included in the range.

example: 2026-03-31

Response

200 · The account's activity for the period.

accountobject

The bank account itself. Account and routing numbers are masked to their last four digits.

dateRangeobject

The period actually reported on, after any defaulting.

startingBalancenumber

The account's balance immediately before the period.

netChangenumber

How much the balance moved over the period.

activitiesobject[]

One row per transaction, in date order.

activitiesTotalobject

Cash in and cash out added across every row.

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

404 · No bank account with that id exists in the caller's company.

What happens when you leave the range out

Send both dateRange.start and dateRange.end and they are used as sent. Send only one and the other is filled in a month away from it. Send neither and the report covers the month up to now.

Only finalised transactions appear

Each row is dated by when the transaction finalised, so a payment that has not settled yet is not in the report at all.