Update an existing contract's information. All fields are optional - only include fields you want to change.
Use Cases:
- Update contract value or dates
- Change assigned user
- Set, replace, or clear buyer and seller representatives
- Update property information
- Modify commission details
- Update referral details
- Update custom field values
Updatable Fields:
- Basic info (name, assigned user)
- Buyer and seller representatives (
buyerRepresentativeUserId,sellerRepresentativeUserId; null clears user reps on that side) - Property details
- Contract value and dates (scheduled closing, inspection, actual closing)
- Commission fields (total, buyer, seller with types)
- Referral information
- Custom fields
Write Validation:
Unsupported aliases (amount, close_date, address, property_address, person_id, people, and stage_id, including camelCase variants) return 422 before any changes are saved. Use contractValue, scheduledClosingDate, the split property fields, and primaryPipelineStageId. Contact association writes (contactIds, contactRoleIds, people/person ID aliases) are not supported on update; manage contacts in the contract's settings. Cross-pipeline stages return 422 on every processed attempt, including retries. Custom field keys resolve against the contract type's current fields (the same ones GET returns). An unknown key, a non-scalar value, or a dropdown value outside the field's choices returns 422 naming each rejected key, and nothing in the request is saved. Sending back a dropdown's currently stored value is always accepted.
Note: To change the contract type, create a new contract instead.
Example:
{
"contractValue": 475000,
"scheduledClosingDate": "2026-01-15",
"totalCommission": 14250
}| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
