Create a contract

Create a new contract in your team. Contracts track business deals through customizable pipelines with milestones and tasks.

Use Cases:

  • Create new real estate transactions
  • Track service agreements
  • Monitor project deals
  • Initialize contract workflows with milestones

Required Fields:

  • name: Contract name/identifier
  • contractTypeId: The contract type template to use

Optional Fields:

  • Property information (address, value)
  • Referral tracking
  • People (contacts or legacy contactIds/contactRoleIds; do not send both)
  • Buyer and seller representatives (buyerRepresentativeUserId, sellerRepresentativeUserId; the same user may represent both sides)
  • Custom fields defined by the contract type

Write Validation:
Unsupported aliases (amount, close_date, address, property_address, person_id, people, and stage_id, including camelCase variants) return 422 before creating a contract. Use contractValue, scheduledClosingDate, the split propertyStreet/propertyUnit/propertyCity/propertyState/propertyZip fields, contactIds (an array of person IDs), and primaryPipelineStageId. Optional contactRoleIds must also be an array. Stage IDs must belong to the configured pipeline. Custom field keys (customXxx or customFields: { ... }) must name a field on the contract type, values must be single values, and dropdown values must be one of the field's choices (matched case-insensitively); otherwise the request returns 422 naming each rejected key and no contract is created.

Automatic Initialization:

  • Milestones defined in the contract type are automatically created
  • Tasks associated with milestones are auto-generated
  • Primary pipeline stage is set from the contract type

Example - Basic Contract:

{
  "name": "123 Main St Sale",
  "contractTypeId": "uuid-here",
  "assignedUserId": "uuid-here"
}

Example - Full Contract:

{
  "name": "456 Oak Ave Listing",
  "contractTypeId": "uuid-here",
  "assignedUserId": "uuid-here",
  "contractValue": 450000,
  "scheduledClosingDate": "2025-12-31",
  "homeInspectionDate": "2025-12-15",
  "totalCommission": 13500,
  "buyerCommission": 3,
  "buyerCommissionType": "percentage",
  "sellerCommission": 3,
  "sellerCommissionType": "percentage",
  "propertyStreet": "456 Oak Ave",
  "propertyCity": "Portland",
  "propertyState": "OR",
  "propertyZip": "97201",
  "referralSource": "Past Client",
  "contacts": [{ "personId": "person-uuid-1", "roleId": "role-uuid", "isPrimary": true }],
  "buyerRepresentativeUserId": "user-uuid",
  "sellerRepresentativeUserId": "user-uuid"
}
Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Body Params
string
required

Contract name (required)

uuid
required

Contract type ID (required)

uuid | null

Assign to specific 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

Scheduled closing date

date

Home inspection date

date

Actual closing date

number

Contract value in dollars

number

Total commission in dollars

number

Buyer commission (percentage or dollar amount)

string
enum

Buyer commission type

Allowed:
number

Seller commission (percentage or dollar amount)

string
enum

Seller commission type

Allowed:
string

Property street address

string

Property unit/apt number

string

Property city

string

Property state (2-letter code)

string

Property ZIP code

string

How this contract was referred

uuid

Person who referred this contract

uuid

Company that referred this contract

contacts
array of objects

Attach people with roles and an optional primary flag. Use this or the legacy contactIds/contactRoleIds arrays — sending both returns 400. Only one participant may be primary; invalid entries roll back the entire create.

contacts
contactRoleIds
array of uuids

Legacy role IDs, matched to contactIds by position. Roles must be active and belong to your team.

contactRoleIds
contactIds
array of uuids

Person IDs to associate as contacts

contactIds
uuid

Set the primary pipeline stage on creation. Must belong to the contract type primary pipeline; returns 422 otherwise.

uuid

Set the secondary pipeline stage on creation (when configured for the contract type). 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