contracts
Update Contract Term
Edit a term's dates or renewal settings and resync its reminders.
patch/contracts/{contract_id}/terms/{term_id}
Path parameters
contract_idstring uuid required
term_idstring uuid required
Request body
start_datestring date nullable
end_datestring date nullable
termination_notice_datestring date nullable
notice_date_source'derived' | 'extracted' | 'manual'
Where a term's termination_notice_date came from.
Drives whether moving end_date recomputes the notice date: only DERIVED dates are recomputed, so a human-entered or document-stated date is never silently overwritten.
notice_period_valueinteger nullable
notice_period_unit'days' | 'months'
Unit of a termination-notice period.
Months are not 30 days: 3 months before 2026-05-31 is 2026-02-28, while 90 days before it is 2026-03-02. This generates a legal deadline, so the unit is stored rather than normalized to days (see backend.helpers.contract_terms.derive_notice_date).
renewal_term_monthsinteger nullable
auto_renewsboolean nullable
notice_reminders_enabledboolean nullable
renewal_reminders_enabledboolean nullable
Response
Successful Response
contract_idstring uuid required
company_idstring uuid required
vendor_idstring uuid nullable
titlestring required
status'draft' | 'active' | 'expired' | 'terminated' required
DRAFT and TERMINATED are human judgments; the derivation in recompute_contract_status overwrites neither.
effective_datestring date nullable
expiration_datestring date nullable
auto_renewsboolean nullable
obligationsstring[]
latest_extraction_run_idstring uuid nullable
latest_summary_run_idstring uuid nullable
summary_run_status'pending' | 'running' | 'completed' | 'failed'
base_file_idstring uuid nullable
base_filenamestring nullable
base_upload_idstring uuid nullable
createdstring date-time nullable
modifiedstring date-time nullable