Contract

Creates a Contract

Required permission: Contracts - Edit

A complete contract — top-level attributes, covered items with their contracted rates, the block-list and the non-billable products — is created in this one call.

Covered items are part of the contract payload:

  • product_price_overrides — the covered products with their contracted rate (price_retail_cents or discount_percentage) and their block-list status (blacklisted, meaning the product is billed separately from the contract).
  • non_billable_product_ids — products covered by the contract and therefore not billed on their own.
  • schedule_ids — the recurring invoice schedules this contract governs. Link a schedule to a contract by sending contract_id to the Schedule endpoints.
post/contracts

Request body

contract_amountstring
customer_idinteger required
descriptionstring
start_datestring date
end_datestring date
namestring
primary_contactstring
statusstring
likelihoodinteger
apply_to_allboolean
sla_idinteger
tag_liststring[]
non_billable_product_idsinteger[]

Products covered by the contract and therefore not billed separately. Replaces the whole set; omit the key to leave it untouched. Must be a JSON array of integers — anything else, including an array containing null, is rejected with 422 rather than treated as an empty set. Clearing the set requires a JSON body, since a form-encoded empty array cannot be transmitted.

Response

successful

Changes