Owners

Deactivate an owner

Marks an owner inactive so they can no longer sign in to the owner portal. Nothing is deleted, and the owner can be reactivated later. It is refused while the owner still holds a stake in any property.

DELETE
https://api.portal.magicdoor.com/company-app/owners/{ownerId}/deactivate

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

ownerIdstringrequired

The owner. A Snowflake id, sent as a decimal string.

example: 1830472847398404097

Response

200 · The owner, now with `active` set to `false`.

idstring

The owner.

activeboolean

false once the owner has been deactivated. A deactivated owner cannot sign in and cannot be given a new password.

emailstring

Email address. Absent when none is on file.

firstNamestring

Given name, or the company name when isCompany is true.

lastNamestring

Family name. Absent for a company, or when only a first name is on file.

isCompanyboolean

true when the owner is a business rather than a person.

phonestring

Phone number, formatted for reading. Absent when none is on file.

federalTaxInformationobject

Tax identification used for the owner's 1099. Absent when none is on file.

createdstring · date-time

When the owner record was created.

updatedstring · date-time

When the owner record was last changed.

lastSeenstring · date-time

When the owner last used the owner portal. Absent when they never have.

lastPortalInvitestring · date-time

When a portal invite was last sent. Absent when none ever was.

chatIdstring

The owner's conversation with the company. Absent when no conversation exists.

languagestring

ISO 639-1 language code used for messages to this owner. Defaults to en.

iconsstring[]

Icon keys a property manager has pinned to the owner. Always present, possibly empty.

addressobject

The owner's mailing address.

portalStatusenum<string>

Where the owner is in getting onto the owner portal: notInvited, invited (invited but never signed in), active (has signed in).

notInvitedinvitedactive
ownerPropertiesobject[]

This owner's stake in each property they own, as a link record.

portfoliosobject[]

The portfolios holding those properties.

propertiesobject[]

The properties themselves.

paymentAccountsobject[]

The accounts MagicDoor can pay this owner through. Account and card numbers are reduced to their last four digits.

401 · The access token is missing, expired, or does not belong to a property manager.

404 · No owner with that id exists for the calling company. A record that belongs to another company is reported the same way as one that does not exist. The id you asked for is in `entityId`; `detail` names only the kind of record.

409 · The owner still holds a stake in at least one property. Remove their ownership first. The count is in `title`, and `instance` carries the exception name rather than a request path — this response is assembled by the controller rather than by the usual problem-details machinery.

Deactivating sets active to false on the owner and disables their MagicDoor sign-in. That is the whole of it.

What changes: the owner can no longer sign in to the owner portal. Lists that filter on active=true stop returning them.

What does not change: the owner record, their contact details, their tax information, their payment accounts, their distributions and their statement history are all untouched and still readable through this API.

There is no endpoint in this section that erases an owner. Reactivate an owner puts them back.

Unlike tenants, there is no force option

The tenant equivalent can move a tenant off their leases on the way through. This one has no such switch: you have to unwind the owner's property stakes yourself before it will go through.

Calling it twice is harmless

Deactivating an already-inactive owner returns the owner unchanged rather than failing.