Application payments

Record an offline application fee

Records that the applicant paid their fee outside MagicDoor — cash, cheque, or a transfer — and books it to accounting. If the applicant had a card payment in flight, that payment is cancelled first so it cannot also go through. Requires the rental_applications:write permission.

POST
https://services.magicdoor.com/leasing/company-portal/rental-applications/{applicationId}/payment/offline

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

applicationIdstringrequired

The rental application to work with. A Snowflake id, sent as a decimal string.

example: 1830472847398404096

Body

application/json

The whole body may be omitted, in which case the company's configured application fee is recorded with no method or reference.

methodstring

How the applicant paid, in your own words, for example "Cheque". Stored as the payment memo. At most 1000 characters.

referencestring

Cheque number, transfer reference, or similar. At most 100 characters.

amountnumber

What was actually collected, as a decimal amount. Omit it and the company's configured application fee is used. Rounded to two decimal places, and must round to more than zero. Between 0.01 and 999999999.99.

reasonenum<string>

Why the amount differs from the configured fee. Required whenever you send an amount that is not equal to the configured fee, and ignored otherwise.

partialPaymentdiscountoverpaymentother

Response

204 · The payment was recorded. The response has no body — re-read the application to see the new payment record.

400 · The amount rounds to zero or less, or it differs from the configured fee and no `reason` was given.

409 · The fee is already settled — the payment status is `paid`, `refunded`, or `skipped`. An `unpaid`, `intentCreated`, or `failed` payment is overwritten instead of conflicting.

422 · The company does not collect application fees, or its configured fee is below the minimum MagicDoor allows. There is nothing to record.

401 · The access token is missing, expired, or not valid.

403 · The caller is authenticated but does not hold the `rental_applications:write` permission.

404 · No rental application with this id exists, or it belongs to another company. Both cases look identical so that ids cannot be probed across companies.

An in-flight card payment is cancelled

If the applicant had already started paying by card and had not finished, that payment is cancelled with the processor before the offline record is written. Without this the applicant could still complete the card payment and be charged twice.