Bank accounts

Update a bank account

Changes the fields you send and leaves the rest alone. Requires the bank_accounts:write permission.

PATCH
https://services.magicdoor.com/accounting/company-portal/bank-accounts/{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

Snowflake id of the bank account.

example: 1830472847398404096

Body

application/json

Only the fields present in the body are applied. accountNumber, routingNumber and type are write-once: if the account already has a value the one you send is silently ignored, so they can only ever be filled in, never corrected. chartOfAccountIds replaces the whole list rather than adding to it.

namestring

Display name, 1 to 200 characters.

descriptionstring

Free-text note, up to 1000 characters.

accountNumberstring

The bank account number: 4 to 17 digits. Applied only if the account does not already have one.

routingNumberstring

The nine-digit ABA routing number, check digit verified. Applied only if the account does not already have one.

typeenum<string>

Applied only if the account does not already have a type.

checkingsavings
scheduledSweepDaysinteger[]

Replaces the sweep days. Values 1 to 31, no duplicates.

chartOfAccountIdsstring[]

Replaces the linked asset chart-of-account entries. Every id must be an asset account in the same company. An entry can only be dropped if no transaction on this bank account uses it and neither the rent nor the deposit payment settings still point at the pair.

Response

200 · The bank account after the change. Sending a body with no fields returns it unchanged.

idstring

Snowflake id of the bank account.

createdstring · date-time

When the bank account was created, in the company's timezone.

updatedstring · date-time

When the bank account was last changed, in the company's timezone.

namestring

The name property managers see in account pickers, for example "Operating — Chase".

descriptionstring

Free-text note about the account. Absent when none was set.

accountNumberstring

The bank account number, 4 to 17 digits. Absent when the account was created without one.

routingNumberstring

The nine-digit ABA routing number. Absent when the account was created without one.

typeenum<string>

What kind of account this is at the bank. Absent when it was never set.

checkingsavings
companyAccountboolean

true when the money in this account belongs to the management company itself rather than to owners or tenants. Fixed at creation; no endpoint changes it.

activeboolean

false after a deactivate call. An inactive account stays readable and keeps its history, and its routing and account number no longer block another account from using the same pair.

scheduledSweepDaysinteger[]

Days of the month, 1 to 31, on which a sweep is scheduled for this account. Empty when no sweep is scheduled.

chartOfAccountIdsstring[]

Snowflake ids of the asset chart-of-account entries this bank account posts its cash side to. Always at least one.

creatorobject

Who last touched the bank account. Deprecated mirrors of id — propertyManagerId, tenantId, vendorId, ownerId — are also present, whichever matches type.

400 · A field failed validation — name length, account number, routing number checksum, or a duplicate or out-of-range sweep day.

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

403 · The caller does not hold the `bank_accounts:write` permission.

404 · No bank account with this id belongs to the caller's company, or it has been deleted.

409 · Filling in the account and routing number would duplicate an active bank account in this company that already uses that pair.

422 · A chart-of-account id is not an asset account in this company, or one you dropped is still used by a transaction on this bank account or still referenced by the rent or deposit payment settings.