Update contract
Partially update a contract by its ID. seatItems, fixedItems and subscription replace what the contract holds today, so send the complete set; omit them to leave them untouched. Moving renewalType to fixed retires the subscription. Clearing the date the contract renews on turns its renewal reminder off.
curl -X PATCH "https://api.corma.io/v1/contracts/-9007199254740991" \
-H "x-corma-api-key: $CORMA_OPEN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"currency": "string",
"renewalType": "fixed",
"supplierName": "string",
"stage": "live",
"paymentMethod": "wire",
"ownerId": "string",
"startDate": "2026-01-15T09:30:00Z",
"renewalDate": "2026-01-15T09:30:00Z",
"noticeDate": "2026-01-15T09:30:00Z",
"lastPaymentDate": "2026-01-15T09:30:00Z",
"subscription": {
"frequency": "monthly",
"nextRenewalDate": "2026-01-15T09:30:00Z"
},
"seatItems": [
{
"licenseTypeKey": "string",
"quantity": 0,
"billingPeriod": "monthly"
}
],
"fixedItems": [
{
"unitPeriodPrice": "string",
"billingPeriod": "monthly"
}
]
}'Authorization
x-corma-api-keystringheaderrequiredColon-separated API key ID and secret:
API_KEY_ID:API_KEY_SECRET
Parameters
idintegerpathrequiredx-corma-idempotency-keystringheaderOptional client-generated key. Reusing the same key with an identical request replays the original response instead of enqueueing a duplicate task.
Body
currencystringrenewalTypeenum<string>One of:fixedsubscriptionsupplierNamestring | nullstageenum<string> | nullOne of:livecancellednegotiatingrollouttestingpaymentMethodenum<string> | nullOne of:wirecarddirect_debitownerIdstring | nullstartDateany of | nullrenewalDateany of | nullnoticeDateany of | nulllastPaymentDateany of | nullsubscriptionContractSubscriptionBody | nullseatItemsContractSeatItemBody[]fixedItemsContractFixedItemBody[]
Response
OK
idintegerrequiredapplicationInstanceIdintegerrequiredsupplierNamestring | nullrequiredcurrencystringrequiredstageenum<string> | nullrequiredOne of:livecancellednegotiatingrollouttestingrenewalTypeenum<string> | nullrequiredOne of:fixedsubscriptionpaymentMethodenum<string> | nullrequiredOne of:wirecarddirect_debitownerIdstring | nullrequiredThe workspace member who owns the contract.
startDatestring<date-time> | nullrequiredrenewalDatestring<date-time> | nullrequirednoticeDatestring<date-time> | nullrequiredlastPaymentDatestring<date-time> | nullrequiredactiveAtstring<date-time> | nullrequiredWhen set, this is the contract in force for the application instance. Only one contract per application instance is active.
totalCoststring | nullrequiredA decimal number serialized as a string, so no precision is lost.
subscriptionContractSubscription | nullrequiredseatItemsContractSeatItem[]requiredfixedItemsContractFixedItem[]requiredcreatedAtstring<date-time>requiredThe timestamp of when this resource was created. ISO 8601 format.
updatedAtstring<date-time>requiredThe timestamp of the last update to this resource. ISO 8601 format.
{
"id": -9007199254740991,
"applicationInstanceId": -9007199254740991,
"supplierName": "string",
"currency": "string",
"stage": "live",
"renewalType": "fixed",
"paymentMethod": "wire",
"ownerId": "string",
"startDate": "2026-01-15T09:30:00Z",
"renewalDate": "2026-01-15T09:30:00Z",
"noticeDate": "2026-01-15T09:30:00Z",
"lastPaymentDate": "2026-01-15T09:30:00Z",
"activeAt": "2026-01-15T09:30:00Z",
"totalCost": "string",
"subscription": {
"frequency": "monthly",
"customFrequency": "weekly",
"customFrequencyFactor": -9007199254740991,
"nextRenewalDate": "2026-01-15T09:30:00Z"
},
"seatItems": [
{
"id": -9007199254740991,
"licenseTypeKey": "string",
"quantity": -9007199254740991,
"unitPeriodPrice": "string",
"billingPeriod": "monthly",
"isAutoAdjust": true
}
],
"fixedItems": [
{
"id": -9007199254740991,
"name": "string",
"quantity": -9007199254740991,
"unitPeriodPrice": "string",
"billingPeriod": "monthly"
}
],
"createdAt": "2026-01-15T09:30:00Z",
"updatedAt": "2026-01-15T09:30:00Z"
}