Updates a contract.
PUT vs PATCH
PUT is used to fully update an existing resource. It replaces the entire resource with the data provided.
🔸 Any fields not included in the request body will be overwritten to null or their default value.
🔹 Use PUT when you are sending the complete updated object.PATCH is used to partially update a resource. It modifies only the specified fields without affecting others.
🔸 Fields not included in the PATCH request body will be left unchanged.
🔹 Use PATCH when you only need to update a few fields.✅ Tip: Always double-check which method to use based on your update logic. Use PUT carefully to avoid unintentionally nulling out data.
The
contract_type
field cannot be updated.
Endpoint URL
https://{{base_url}}/api/v2/contract
Authentication and rate limits
Item | Details |
---|---|
Authentication method | OAuth 2.0 Bearer token |
Rate limit | Rate Limit |
Requests Example
curl --request PUT \
--url "https://{{baser_url}}/api/v2/contract/{id}" \
--header "Authorization: Bearer $BEARER_TOKEN" \
--header "Content-Type: application/json" \
--data-raw "$JSON"
Request Syntax
{
"company": integer,
"name": "string",
"number": "string",
"parent_contract":integer,
"first_offer_value":decimal,
"cost_avoidance_value":decimal,
"contract_risk_value":decimal,
"customer": integer,
"supplier": integer,
"country": integer,
"status": "active" | "archived",
"category": {
"id": integer,
"subcategory": "string"
},
"description": "string",
"business_unit": integer,
"contract_start_date": "string",
"contract_end_date": "string",
"notice_period": integer,
"service_start_date": "string",
"end_of_term_clause": "auto_expires" | "auto_renewed",
"end_of_term_action": "allow_auto_renew" | "allow_expiration" | "disallow_auto_renew" | "renegotiate",
"timeline_notes": "string",
"total_contract_spend_value": decimal,
"mrc": decimal,
"nrc": decimal,
"expenditure_type":
{
"type": "blended" | "capex" | "opex",
"capex_actual": decimal,
"opex_actual": decimal
},
"payment_terms": "custom" | "net_30" | "net_45" | "net_60",
"financing": "custom" | "financed" | "leased" | "self_paid",
"financial_notes": "string",
"template": {
"id": integer,
"fields": [
{
"id": integer,
"value": decimal | integer | "string"
},
]
}
}
Body Parameters
- id (integer) --
[REQUIRED] The ID of the contract.
The id parameter is passed as part of the request url/contract/$id
.
To lookup a specific contract ID, see the List Contract API. - company (integer) --
[REQUIRED]
The ID of the specific company your API is calling. For accounts with only one company, the default value is1
.
To lookup a specific company ID, see the List Company API. - name (string) --
[REQUIRED]
The name of the contract.
Max characters =50
- number (string) --
[REQUIRED]
The number of the contract.
Max characters =50
- parent_contract (integer) --
The ID of the parent contract.
- first_offer_value (decimal) --
The first offer value of the contract.
Min value =0.00
Max value =999999999999999.00
- cost_avoidance_value (decimal) --
The cost avoidance value of the contract.
Min value =0.00
Max value =999999999999999.00
- contract_risk_value (decimal) --
The contract risk value of the contract.
Min value =0.00
Max value =999999999999999.00
- customer (integer) --
[REQUIRED if contract type is sell-side]
The ID of the customer.
To lookup a specific customer ID, see the List Customer API. - supplier (integer) --
[REQUIRED if contract type is buy-side]
The ID of the supplier.
To lookup a specific supplier ID, see the List Supplier API. - country (integer) --
[REQUIRED]
The numeric code of the country.
To lookup a specific country numeric code, see the List Country API. - status (string) --
[REQUIRED]
The status of the contract.
Options:active
|archived
- category (dict) --
- id (integer) --
[REQUIRED]
The ID of the category.
To lookup a specific category ID, see the List Category API. - subcategory (string) --
The name of the subcategory.
To lookup a specific subcategory, see the List Category API.
- id (integer) --
- description (string) --
The description of the contract.
Max characters =1000
- business_unit (integer) --
The ID of the business unit.
To lookup a specific business unit ID, see the List Business Unit API. - contract_start_date (string) --
[REQUIRED]
The start date of the contract.
Format =yyyy-MM-dd
The contract start date must be before the contract end date. - contract_end_date (string) --
[REQUIRED]
The end date of the contract.
Format =yyyy-MM-dd
The contract start date must be before the contract end date. - notice_period (integer) --
The notice period (in days) of the contract.
The notice period must be less than duration of contract. - service_start_date (string) --
The service start date of the contract.
Format =yyyy-MM-dd
The service start date must be equal to or after the contract start date and before the contract end date. - end_of_term_clause (string) --
The end of term clause of the contract.
Options:auto_expires
|auto_renewed
- end_of_term_action (string) --
The end of term action of the contract.
Options:allow_auto_renew
|allow_expiration
|disallow_auto_renew
|renegotiate
- timeline_notes (string) --
The timeline notes of the contract.
Max characters =1000
- total_contract_spend_value (decimal) --
[REQUIRED]
The total contract spend or value of the contract.
Min value =0.00
Max value =999999999999999.00
- mrc (decimal) --
The monthly recurring cost (MRC) of the contract.
Min value =0.00
Max value =999999999999999.00
- nrc (decimal) --
The non recurring cost (NRC) of the contract.
Min value =0.00
Max value =999999999999999.00
The non recurring cost cannot be greater than the total contract spend. - expenditure_type (dict) --
- type (string) --
The expenditure type of the contract.
Options:blended
|capex
|opex
- capex_actual (decimal) --
[REQUIRED] for
blended
expenditure type
The capital expenditure (CapEx) value of the contract.
Min value =0.00
Max value =999999999999999.00
The sum of the capital expenditure value and the operating expense value must equal the total contract spend. - opex_actual (decimal) --
[REQUIRED] for
blended
expenditure type
The operating expense (OpEx) value of the contract.
Min value =0.00
Max value =999999999999999.00
The sum of the capital expenditure value and the operating expense value must equal the total contract spend.
- type (string) --
- payment_terms (string) --
The payment terms of the contract.
Options:custom
|net_30
|net_45
|net_60
- financing (string) --
The financing of the contract.
Options:custom
|financed
|leased
|self_paid
- financial_notes (string) --
The financial notes of the contract.
Max characters =1000
- template (dict) --
- id (integer) --
The ID of the custom field template.
To lookup a specific custom field template ID, see the List Custom Field Template API. - fields (dict) --
- id (integer) --
The ID of the custom field.
To lookup a specific field ID, see the List Custom Field Template API. - value (decimal | integer | string) --
The value of the custom field.
- If the value data-type is
money
(decimal) --Min value =
0.00
Max value =999999999999999.00
- If the value data-type is
number
(integer) --Min value =
-999999999999999
Max value =999999999999999
- If the value data-type is
date
(string) --Format =
yyyy-MM-dd
- If the value data-type is
text
(string) --Max characters =
50
- If the value data-type is
- id (integer) --
- id (integer) --