Lease renewals

Create a renewal offer

Creates a renewal offer on the lease: a new end date and the rent changes that go with it. The offer is only a proposal — the lease does not change until the offer is applied.

POST
https://api.portal.magicdoor.com/company-app/leases/{leaseId}/renewals

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

leaseIdstringrequired

The lease to make the offer on. A Snowflake id, sent as a decimal string.

example: 1830472847398404096

Body

application/json

recurringChargeChangesobject[]required

Changes to the lease's existing recurring charges. Send an empty array to leave them alone.

newEndDatestring · date

The end date the lease should get. Leave it out to renew onto month to month.

newRecurringChargesobject[]

Recurring charges to add when the renewal is applied.

customLeaseTextstring

Extra wording for the renewal document. Up to 500 characters.

offerExpiresstring · date-time

When the offer stops being open to the tenant.

requiresSigningboolean

Whether the tenant has to sign a document before the renewal can be applied.

templatesobject[]

Templates to build the renewal document from.

Response

200 · The offer that was created.

idstring

Id of the renewal offer. A Snowflake id, sent as a decimal string.

statusenum<string>

Where the offer stands: offered while the tenant has not answered, signing once the document has gone out for signature, finalized once it has been applied to the lease, rejected if the tenant turned it down, retracted if it was pulled.

offeredsigningfinalizedrejectedretracted
requiresSigningboolean

Whether the tenant has to sign a document before the offer can be applied.

recurringChargeChangesRecurringChargeChange[]

Changes to the lease's existing recurring charges. One entry per charge you are changing.

newRecurringChargesNewRecurringCharge[]

Recurring charges to add when the renewal is applied.

newEndDatestring · date

The end date the lease would get. Absent means the renewal makes the lease month to month.

customLeaseTextstring

Extra wording to put on the renewal document. Up to 500 characters.

leaseDocumentIdstring

The renewal document created for signing. A Snowflake id, sent as a decimal string.

finalizedboolean

Whether the offer has been applied to the lease.

offerExpiresstring · date

The date the offer stops being open to the tenant.

currentChargesRecurringLeaseCharge[]

The lease's recurring charges as they stand today, so the offer can be shown against them.

templatesTemplateRef[]

Templates to build the renewal document from.

chartOfAccountsChartOfAccount[]

Chart-of-account records referenced above.

400 · The body failed validation, or the new end date is not after the lease's current end date.

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

404 · No lease matched the id, or it belongs to another company.

Offers and the standing policy are different things

A renewal offer is one proposal on one lease: a new end date and the rent changes that go with it. The automatic-renewal settings are a standing policy for a portfolio, a property, or the whole company, which MagicDoor uses to raise those offers for you. Changing the policy does not change offers that already exist. The two live under different endpoints — see Automatic renewals.