Association violations

Charge the association's fine

Raises a vendor bill against the property for the association's fine and, when the violation is tied to a lease and the company's settings say so, also charges the tenant. Can only be done once per violation.

POST
https://api.portal.magicdoor.com/company-app/associations/violations/{violationId}/fine

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

violationIdstringrequired

The association violation to act on. A Snowflake id sent as a decimal string.

example: 1830472847398407007

Body

application/json

dueDatestring · date

When the vendor bill falls due. Defaults to today in the company's timezone.

Response

200 · The violation, now with `propertyFineBill` set and, when the tenant was charged too, `leaseFineBill`.

idstring

The violation. A Snowflake id sent as a decimal string.

portfolioIdstring

The portfolio the violation was raised against.

propertyIdstring

The property the violation was raised against.

unitIdstring

The unit the violation was raised against. Absent when the violation is property-wide.

leaseIdstring

The lease the violation was raised against. Absent when no lease is involved.

statusenum<string>

Where the violation sits in its workflow.

receivedinProgressresolved
hoaVendorIdstring

The vendor record for the homeowners association that issued the violation.

referencestring

The association's own reference for the violation. Generated automatically when the caller did not supply one.

violationReceivedDatestring · date

The day the association's notice reached the property manager.

violationDatestring · date

The day the violation itself happened.

fixByDatestring · date

The deadline the association gave for putting it right. Absent when no deadline was given.

associationFinenumber

The fine the association charges, for example 250.00. Absent when no fine was recorded.

titlestring

Short title. Written by an AI summary of the description when the caller did not supply one.

descriptionstring

What the association says is wrong.

notificationSentAtstring · date-time

When a notice was last sent to the lease or the owners, in the company's timezone. Absent while no notice has been sent.

filesobject[]

Files attached to the violation, such as the association's own notice.

propertyFineBillobject

The vendor bill raised against the property for the association's fine. Absent until the fine is charged.

leaseFineBillobject

The lease charge raised when the fine was passed on to the tenant. Absent when the fine was not passed on.

portfolioobject

The portfolio the violation belongs to.

propertyobject

The property the violation was raised against.

unitobject

The unit the violation was raised against. Absent when the violation is property-wide.

leaseobject

The lease the violation was raised against. Absent when no lease is involved.

workOrdersobject[]

Work orders raised from this violation.

leaseBillsobject[]

Extra lease charges added against this violation, beyond the fine itself.

ownersobject[]

Owners of the property, as used when sending an owner notice.

workOrderVendorsobject[]

Vendors assigned to the work orders above.

400 · The violation has no `associationFine` set, or its fine has already been charged.

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

404 · No association violation with that id exists in the caller's company.

Two things can come out of this call.

  • Always: a vendor bill owed to the association vendor, for the violation's associationFine, against the property. It comes back as propertyFineBill.
  • Sometimes: a charge on the tenant's lease, which comes back as leaseFineBill. This only happens when the violation has a leaseId and the company's association-violation settings are not set to charge nothing. Those same settings decide the amount: the fine itself, the fine plus a management fee, or a fixed amount.
Charging twice is refused

Once propertyFineBill is set, calling this again returns 400. Delete that bill first if you need to redo it.