Owners

Create an owner

Creates an owner and the MagicDoor sign-in that goes with them. The response carries the password the owner will sign in with — it is the only time you can read it.

POST
https://api.portal.magicdoor.com/company-app/owners

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.

Body

application/json

Only firstName is required. Email and phone, if sent, must not already belong to another owner in the company.

firstNamestringrequired

Given name, or the company name when isCompany is true. 1 to 150 characters.

lastNamestring

Family name. 1 to 150 characters.

isCompanyboolean

true when the owner is a business rather than a person. Defaults to false when omitted.

emailstring · email

Email address. Up to 250 characters, and must be unique within the company.

phonestring

Phone number. Must be a valid number and unique within the company.

federalTaxInformationobject

Tax identification for the owner's 1099. Sending it stores a government identifier.

languagestring

ISO 639-1 language code for messages to this owner. Stored as en when omitted.

addressobject

The owner's mailing address. Sending this replaces the whole address.

passwordstring

The password to give the owner. 5 to 150 characters. Leave it out and MagicDoor generates one, which comes back in the response.

Response

200 · The new owner, plus the password they will sign in with.

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.

passwordstring

The password the owner can now sign in with — either the one you sent or the one MagicDoor generated. Returned here and nowhere else. No example value is shown.

409 · The email address or phone number already belongs to another owner in the company. `errors` maps the offending field to its message. This particular response is built by hand rather than by the usual problem-details machinery, so unlike every other error on this page it carries no `type`, no `instance` and no `traceId`.

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

The password is in the response

The password field of the response holds the owner's sign-in password in clear text. It is returned once, at creation. Hand it to the owner over a channel you trust and do not write it to logs. The example above deliberately leaves it out.

Creating an owner does not give them a property

A new owner holds no stake in anything. Ownership links are created through the property endpoints, not here.