Update a contract

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
}
Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Path Params
uuid
required

Contract ID

Body Params
string

Contract name

uuid

Reassign to different user

uuid | null

Active subteam in your team (discover IDs with GET /subteams). Requires contract assignment management permission (user-scoped tokens return 403). Send null to clear; omit to preserve. Invalid, foreign, or deactivated subteam IDs return 422. Aliases: assigned_subteam_id, assignedToSubteamId, assigned_to_subteam_id; multiple aliases must agree.

uuid | null

Team user representing the buyer. Replaces user representatives on this side; null clears them. Omit to preserve. The same user may represent both sides.

uuid | null

Team user representing the seller. Replaces user representatives on this side; null clears them. Omit to preserve. Person/company representative flags are preserved.

date

Updated scheduled closing date

date

Updated home inspection date

date

Updated actual closing date

number

Updated contract value

number

Updated total commission

number

Updated buyer commission

string
enum

Updated buyer commission type

Allowed:
number

Updated seller commission

string
enum

Updated seller commission type

Allowed:
string

Property street address

string

Property unit/apt number

string

Property city

string

Property state

string

Property ZIP code

string

Referral source

uuid

Update the primary pipeline stage. Must belong to the contract type primary pipeline; returns 422 otherwise.

uuid | null

Update the secondary pipeline stage. Sending explicit null clears the secondary pipeline status entirely. Must belong to the contract type secondary pipeline; returns 422 otherwise.

Responses

Language
Credentials
Bearer
JWT
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json