expireContract
expireContractExpire an active or paused contract by setting its end date. Once expired, the contract cannot be reactivated.
Instructions
Expire an ACTIVE or PAUSED contract by adjusting its end_date. Allowed status transitions: ACTIVE→EXPIRED, PAUSED→EXPIRED. EXPIRED is terminal — calling on an already-expired contract returns 400; do NOT retry, do NOT escalate to deleteContract or any other destructive tool as a fallback. Verify contract.status via getContractById before calling. Idempotency: NO. The contract expires at end of day 23:59:59.999999. Host enforces user confirmation via the approval gate; do NOT ask the user to re-confirm before calling.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| contractId | Yes | The unique identifier (UUID) of the contract to expire. | |
| expiry_date | No | Date to expire the contract (e.g. 2026-12-31). Defaults to today if not provided. Must not be earlier than contract.start_date. | |
| __userContext | No | Internal user context for multi-tenant authentication and approval workflow |