Create contract
Create a contract on an application instance, together with its seat items, fixed items and subscription. The new contract becomes the active one for that application instance, and the contract it replaces becomes inactive.
curl -X POST "https://api.corma.io/v1/contracts" \
-H "x-corma-api-key: $CORMA_OPEN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"applicationInstanceId": -9007199254740991,
"currency": "string",
"renewalType": "fixed"
}'Authorization
x-corma-api-keystringheaderrequiredColon-separated API key ID and secret:
API_KEY_ID:API_KEY_SECRET
Parameters
x-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
applicationInstanceIdintegerrequiredcurrencystringrequiredrenewalTypeenum<string>requiredOne of:fixedsubscriptionsupplierNamestring | nullstageenum<string> | nullOne of:livecancellednegotiatingrollouttestingpaymentMethodenum<string> | nullOne of:wirecarddirect_debitownerIdstring | nullstartDateany of | nullrenewalDateany of | nullnoticeDateany of | nulllastPaymentDateany of | nullsubscriptionContractSubscriptionBody | nullseatItemsContractSeatItemBody[] | nullfixedItemsContractFixedItemBody[] | null
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"
}