Lease charges

Attach files to a charge

Attaches one or more already-stored files to a charge. Each entry gives either a fileId for a file already in MagicDoor or an uploadSessionId from the charge's upload-session endpoint — exactly one of the two.

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

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 the charge is on. A Snowflake id, sent as a decimal string.

example: 1830472847398404096
chargeIdstringrequired

The charge to attach to. A Snowflake id, sent as a decimal string.

example: 1834920184756201984

Body

application/json

filesobject[]required

The files to attach. At least one.

Response

200 · The charge, with the new files attached.

idstring

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

createdstring · date-time

When the charge was created, in the company's timezone.

updatedstring · date-time

When the charge last changed.

companyChargeboolean

Whether the company keeps this charge rather than passing it through to the owner.

billDatestring · date

The date the charge is booked into the ledger.

dueDatestring · date

The date the tenant has to pay by.

totalAmountnumber

What the charge is for in total, as a decimal amount.

allocatedAmountnumber

How much of it has been covered by payments or credits.

dueAmountnumber

What is still owing on it.

memostring

Free-text note on the charge.

referencestring

External reference carried on the charge.

portfolioIdstring

Portfolio the charge rolls up to. A Snowflake id, sent as a decimal string.

propertyIdstring

Property the charge is on. A Snowflake id, sent as a decimal string.

unitIdstring

Unit the charge is on. A Snowflake id, sent as a decimal string.

leaseIdstring

Lease the charge is on. A Snowflake id, sent as a decimal string.

recurringChargeIdstring

The recurring charge that raised this one. Absent on a one-off charge. A Snowflake id, sent as a decimal string.

leaseSubsidyIdstring

The lease subsidy that raised this one. A Snowflake id, sent as a decimal string.

lineItemsLeaseChargeLineItem[]

What the charge is made up of.

filesLeaseChargeFile[]

Files attached to the charge, by id.

metadataobject

Free-form key/value data carried on the charge.

creatorobject

Who created the record.

portfolioobject

The portfolio the lease rolls up to.

propertyobject

The property the lease's unit sits in.

unitobject

The unit the lease is for.

leaseobject

The lease the charge is on.

transactionsTransaction[]

The transactions referenced by the allocations above.

bankAccountsBankAccount[]

Bank accounts referenced above.

chartOfAccountsChartOfAccount[]

Chart-of-account records referenced above.

hydratedFilesFile[]

The files listed in files, resolved to full file records.

creatorInfoobject

The full record of whoever created this, under whichever one key matches the creator's type.

400 · The body failed validation — for example a file entry gave both `fileId` and `uploadSessionId`, or neither.

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

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

Where a file id comes from

This endpoint does not upload anything. A fileId is the id of a file already stored in MagicDoor, and an uploadSessionId comes from the charge's upload-session endpoint after you have sent the bytes there.