deposit-settlement

Settle a security deposit after move-out

Security deposit settlement for a US rental under the state's statute (and a covered city's ordinance): the date to return the deposit and itemized statement, each intended deduction assessed (allowed or not, prorated by useful life, documentation needed), interest owed, refund due, penalty exposure, a draft itemized statement and a citation for every rule. Covers all 50 states and DC, with city overlays for Chicago, San Francisco, Berkeley, Los Angeles, Seattle, Portland, Minneapolis and Saint Paul. When to use: A landlord or property manager is closing a move-out and asks when the deposit must be returned, what they may deduct (carpet, paint, cleaning, unpaid rent), how much interest is owed, what to put in the itemized statement, or what happens if they are late. Not for: Not legal advice and not a tenant demand letter. It does not price repairs (use property_turnover_quick_estimate for that), hold or account for deposits, or cover pet deposits, last-month's rent handling or non-US rentals. Where the statute sets no deadline (Kentucky, Tennessee) it says so; never present a guessed date as the rule. Tip: Send as_of (today's date) for a repeatable answer; it defaults to today in UTC. Tip: Give item_installed_on or item_age_years for carpet, paint, blinds and appliances; without them the tenancy length is assumed. Tip: Mark normal wear with caused_by_tenant false; it is never deductible. Tip: Relay deadline.return_by and its status, totals.refund_due_usd, penalty_exposure and the citations; say it is not legal advice. Tip: Offer statement.text as the draft itemized statement (no names or addresses); in the copy for the tenant keep only the statement.notes whose audience is tenant. Tip: For a printable statement to sign and send (HTML or PDF) or the deductions ledger (CSV), POST the same arguments as JSON to links.downloads; do not build the file yourself. Tip: For a tenant (arguments with returned), links.downloads tenant_pdf or tenant_html is a neutral summary of the facts and the rule to send to the landlord; give the user that, not the landlord's statement. Tip: Relay warnings, assumptions and unknowns (for example the Texas forwarding address). Tip: Send the start-event dates a state needs when known (forwarding_address_received_on, demand_received_on, new_tenant_moved_in_on, claim_notice_sent_on in Florida); without them the clock is not_started. Tip: deadline.status none_in_statute means no statutory deadline; deadline.extended_to is the statute's weekend roll-forward, but advise acting by return_by. Deterministic: the same input returns the same result_hash. Capability deposit-settlement v0.1.0 (experimental).

post/v1/deposit-settlement/settle

Request

  • Base URL: https://tektolo.com (the document declares no server; this is the origin it was published from)
  • URL: https://tektolo.com/v1/deposit-settlement/settle
  • Auth: none declared

Headers

Tektolo-Rulesetstring nullable

Optional. The ruleset version you built against, as results carry it in provenance.ruleset_version (e.g. 'sd-2026.11.14'), or its sha256: hash. If the rules have changed since, the call fails (nothing computed, nothing charged) and says what is in force now, so you upgrade on your own schedule. Leave it out to answer under the current rules.

Tektolo-Ruleset-Modestring nullable

Optional, with Tektolo-Ruleset. 'serve' asks us to answer under the ruleset version you named even when the rules have changed since, from that version's signed bundle. The answer says so (run.served_from_bundle and the Tektolo-Ruleset-Served header). We refuse (412, with a reason) a version older than 12 months, one a later correction or law change replaced for your state, or one we have no bundle for. Leave it out to be refused whenever the rules have changed.

Request body

client_refsobject nullable

Your own reference ids (e.g. unit_id, job_id). Echoed back, never used.

statestring required

US state, 2-letter code (e.g. 'CA'); a state name also works.

citystring nullable

City, for a city overlay where covered (e.g. 'Chicago'). Optional.

building_unitsinteger nullable

Units in the building. Some interest rules depend on it (NY 6+, IL 25+).

move_in_onstring date nullable

Tenancy start (YYYY-MM-DD). Used for interest and, when an item's age is unknown, for depreciation.

tenancy_ended_onstring date nullable

When the tenancy actually ended (YYYY-MM-DD): the lease's end, or an earlier termination or accepted surrender. Deadlines that run from the end of the tenancy use it. For a tenant who left before the lease was due to end, send the scheduled end as lease_end_on (older callers sent it here, which still works: the deadline is then counted from it, with the move-out date as an earlier alternative where the facts point to one).

lease_end_onstring date nullable

Day the lease was scheduled to end (YYYY-MM-DD), when it differs from when the tenancy actually ended (a broken lease). Lost rent and lease-break charges run to it; deadlines do not (they follow tenancy_ended_on, else the move-out, with the scheduled end as a later alternative).

vacated_onstring date required

Day the tenant moved out and returned possession (YYYY-MM-DD).

forwarding_address_received_onstring date nullable

Day you received the tenant's written forwarding address (YYYY-MM-DD). Several states start or hold the clock on it (Texas, Connecticut, Iowa, Minnesota).

tenant_gave_forwarding_addressboolean nullable

False when the tenant never gave a forwarding address in writing (not just 'not yet known'). Illinois, Pennsylvania, Ohio, Delaware, South Carolina and New Hampshire then relieve the landlord of the penalty. Implied true by forwarding_address_received_on.

demand_received_onstring date nullable

Day you received the tenant's demand for the deposit (YYYY-MM-DD; written in Oklahoma, by first-class mail in Maryland 8-203(h)). Arizona, Kansas, Oklahoma, South Carolina and Mississippi start the clock on it.

new_tenant_moved_in_onstring date nullable

Day a new tenant moved in, if the unit was re-rented (YYYY-MM-DD). West Virginia and Wisconsin can end the period earlier; rent claimed for days from it on is not recoverable (re-rent mitigation).

statement_sent_onstring date nullable

Day you sent (or delivered) the itemized statement (YYYY-MM-DD). With it the statement is judged on time or late; documentation.itemized_statement alone cannot tell.

claim_notice_sent_onstring date nullable

Day you sent the written notice of intent to impose a claim on the deposit (YYYY-MM-DD). Florida (due within 30 days of termination) and the District of Columbia (within 45 days): the balance is due 30 days after it; a late notice does not count.

lease_return_daysinteger nullable

Return period the lease sets, in days, where the statute lets a lease set one (Colorado up to 60, Idaho up to 30, Maine shorter).

tenant_gave_proper_noticeboolean nullable

A termination notice that meets the statute was given (Alaska: 14 days instead of 30 when nothing is deducted for damage).

interest_paid_throughstring date nullable

Interest already paid or credited to the tenant up to this day (annual-payment rules: San Francisco, Los Angeles, Berkeley, Connecticut, Massachusetts, ...): interest is counted from it.

nonstandard_provision_signedboolean nullable

Wisconsin: the tenant signed a separate NONSTANDARD RENTAL PROVISIONS document covering the charge (ATCP 134.06(3)(b)); false makes such charges 'no'.

tenant_age_62_plusboolean nullable

The tenant is 62 or older (Connecticut: a one-month cap).

tenant_age_60_plusboolean nullable

A person 60 or older occupies the unit (New Hampshire 540-A:5, I: the owner-occupied exemption does not reach the unit). tenant_age_62_plus true implies it.

small_landlordboolean nullable

California AB 12 small landlord (a natural person or an LLC of natural persons owning at most two properties with at most four units; not for a service member): a two-month cap.

owner_occupiedboolean nullable

The landlord lives in the building (ME, NH, NJ and Chicago exempt small owner-occupied buildings; with building_units).

landlord_units_ownedinteger nullable

Rental units the landlord owns in all (Arkansas 5 or fewer, Georgia 10 or fewer, with third_party_managed, may be exempt).

third_party_managedboolean nullable

A third party manages the unit or collects rent for a fee.

tenancy_type'written_lease' | 'at_will' nullable

written_lease or at_will (Maine 6033(2): a written agreement's period, at most 30 days, or 21 days for a tenancy at will; Massachusetts 15B(4): at will, 30 days after the move-out, a written lease, 30 days after its end). Left out with a move-out before tenancy_ended_on: the earlier (at-will) date leads and the other is listed.

tenant_abandonedboolean nullable

The tenant abandoned the unit or was evicted (Maryland 8-203(h): the clock runs from the tenant's written demand; Washington 59.18.280: from when the landlord learns of it; Louisiana 9:3251(C): the one-month rule does not apply). Left out: inferred from tenant_gave_proper_notice: false; with a move-out before tenancy_ended_on the earlier abandonment clock leads and the other date is listed.

contractor_neededboolean nullable

Damage exceeds the deposit and needs a third-party contractor, and you said so in writing in time (Virginia, West Virginia: 15 more days).

deposit_collected_onstring date nullable

Day the deposit was collected (YYYY-MM-DD); defaults to move_in_on. California (AB 12, from 2024-07-01) and Colorado caps depend on it.

lease_signed_or_renewed_onstring date nullable

Day the current lease was signed or last renewed (YYYY-MM-DD). Georgia (2024-07-01) and Maryland (2024-10-01) caps apply to leases from then; defaults to move_in_on, with a warning that a later renewal may bring the new cap.

lease_term_monthsinteger nullable

Term of the lease in months (0 for month-to-month). Delaware's cap applies to leases of a year or more, New Mexico's to shorter ones.

furnishedboolean nullable

The unit is rented furnished (California before AB 12: 3 months; Kansas: 1.5 months; Delaware: no cap).

rent_ordinance_coveredboolean nullable

The unit is covered by the city's rent ordinance (Los Angeles RSO, Berkeley Rent Ordinance). Their deposit interest is owed only then; unknown: the amount is shown beside the refund, not in it.

as_ofstring date

Today's date (YYYY-MM-DD) for the deadline status. Defaults to today (UTC); send it for repeatable results.

Example request

{
  "state": "CA"
}

Response

Successful Response

client_refsobject
input_hashstring required

Hash of the question the rules answered: the request, or when free text was read by AI, the request with the read findings (reading.findings) in its place.

request_hashstring nullable

Hash of the request as sent; equal to input_hash when nothing was read by AI.

result_hashstring required

Changes

No recorded changes to this operation across all 1 revision of this API.