---
title: "Update contract custom properties"
method: PUT
path: "/api/v2/organizations/{orgSlug}/contracts/{contractId}"
tags: ["Contracts"]
---

# Update contract custom properties

`PUT /api/v2/organizations/{orgSlug}/contracts/{contractId}`

Update custom properties on a contract. Only the properties field is accepted. Provided keys are added or updated; keys not included in the request are preserved. 

 Required scopes: `flex.community.contracts.update`

## Path parameters

- `contractId` string, required
- `orgSlug` string, required

## Request body

- UpdateContractDto
  - `properties` object, required — Custom properties to add or update on the contract. Keys not included in this object are preserved.

## Response `200`

- ContractResultDto
  - `notice` NoticeMonthsDto
    - `months` number — The number of months notice period for the contract.
  - `properties` object — An object that contains all custom properties that can be applied to the item.
  - `_id` string — The _id of the contract.
  - `number` string — The number/name of the contract.
  - `company` string — The _id of the company associated with the contract.
  - `member` string — The _id of the member associated with the contract
  - `location` string — The _id of the location associated with the contract.
  - `deal` DealResultDto
    - `dealId` string — The external CRM deal id associated with the contract.
    - `dealName` string — The external CRM deal name associated with the contract.
    - `crmLink` string — A link to the external CRM deal.
  - `documentType` string — The type of the contract. Check "Settings"->"Platform"->"Contracts" to see what types are available.
  - `startDate` string — The start date of the contract
  - `endDate` string — The end date of the contract
  - `plans` PlanResultDto[] — An array containing all recurring plans that will be associated with the contract.
    - `properties` object — An object that contains all custom properties that can be applied to the item.
    - `_id` string — The _id of the plan.
    - `name` string — The name of the plan.
    - `description` string — Text describing the plan. It will appear when users need to choose among different plans.
    - `code` string — External identified for the plan. Usually used for accounting purposes.
    - `type` string — The type of the plan. It could be office, desk, hotdesk or service or any custom type.
    - `price` number — The default unit price for the plan, depending if it is recurring plan or a one-off plan.
    - `deposit` number — The deposit of the plan. This is a fixed price.
    - `depositPercent` number — The deposit of the plan. This is a percent of the price.
    - `useDepositPercent` boolean — This shows if the deposit is fixed or is a percent of the price.
    - `locations` string[] — An array with the ids of the locations associated with the plan. If the plan is applicable to all locations the array is empty.
    - `image` string — A link to the image of the plan.
    - `link` string — Link to the product page. It is used on the signup and checkout pages, and the booking dialog.
    - `intervalLength` 'once' | 'month' — The plan interval. It could be month or once.
    - `intervalCount` number — The length of the interval.
    - `revenueAccount` string — The _id of the revenue account associated with the plan.
    - `setupFees` string[] — An array with the ids of the setup fees associated with the plan.
    - `discounts` string[] — An array with the ids of the discounts applied to the plan.
    - `legalDocuments` string[] — An array with the ids of the legal documents that members should be prompted to accept when purchasing this plan.
    - `shouldProrate` boolean — Shows if the plan has proration
    - `credits` object[] — An array of the credits in the plan.
    - `useCoins` boolean — Shows if coins can be used in the plan.
    - `passesForLocations` number[] — An array with the count of passes in the plan by location.
    - `extras` object[] — An array with all the extras in the plan.
    - `requiresApproval` boolean — Shows if admins must approve purchases of this plan.
    - `allowsCancellation` boolean — Shows if members can request cancellation of this plan.
    - `forMembers` boolean — Shows if the plan is available for purchase by members marked as contact person.
    - `forTeamMembers` boolean — Shows if the plan is available for purchase by all active company members.
    - `forNonMembers` boolean — Shows if the plan is available for purchase on the Signup page and accessible to everyone on the Member Portal.
    - `markupPercent` number — The markup percent of the plan.
    - `shouldPassesGrantActiveStatus` boolean — Shows if passes give active status to the members without active memberships.
    - `amenities` string[] — An array with the ids of all the amenities in the plan.
  - `oneOffPlans` OneOffResultDto[] — An array containing all one-off plans that will be associated with the contract.
    - `id` string — The _id of the one-off plan used to create the fee.
    - `steps` StepResultDto[] — This array contains the steps of the one-offs.
      - `price` number — The price of the step.
      - `discount` string — The _id of the discount associated to the step.
      - `discountedAmount` number — The amount of the discount of the step.
      - `startDate` string, date-time — The start date of the step.
      - `endDate` string, date-time — The end date of the step.
    - `count` number — The quantity of one-off plans that will be purchased.
    - `price` number — The price of the one-off plan.
    - `deposit` number — The deposit required for the one-off plan. If left empty the default deposit for the one-off plan will be used.
    - `increasePriceInRolling` boolean — Shows if the price is increased for this one-off when the contract is rolling.
  - `resources` ResourceResultDto[] — An array containing all resources that will be associated with the contract.
    - `properties` object — An object that contains all custom properties that can be applied to the item.
    - `_id` string — The unique identifier of the resource.
    - `name` string — The name of the resource.
    - `description` string — A detailed description of the resource.
    - `type` string — The type of the resource. Resource types can be extended and customized, but the default system types are: "meeting_room" (bookable meeting rooms), "team_room" (assignable private offices), "desk" (assignable dedicated desks), "desk_tr" (assignable office desks within private offices), "hotdesk" (bookable hot desks), and "desk_na" (not available desks).
    - `rate` string — The resource rate used for pricing bookings for this resource. Contains pricing rules, amenities, and booking configuration.
    - `location` string — The location the resource is assigned to.
    - `floor` string — The floorplan where the resource is located within the location.
    - `price` number — The monthly price for assigning this resource. Only applicable to assignable resources (resource types with "Can assign" enabled), such as dedicated desks, office desks, and private offices. Used for monthly billing.
    - `deposit` number — The deposit amount required when assigning this resource. Only applicable to assignable resources.
    - `size` number — The capacity of the resource, representing the number of people that can use or occupy the resource simultaneously.
    - `area` number — The physical area of the resource measured in square millimeters.
    - `childrenCount` number — The count of available child resources associated with this parent resource. For example, the number of office desks (desk_tr) within a private office (team_room). This value is dynamically calculated and updated to reflect available children only.
    - `desksCount` number — The total number of desks within this resource. Typically used for tracking desk inventory in private offices or other parent resources.
    - `parents` string[] — An array of parent resource IDs for hierarchical resources. Used for resources that can have multiple parents, such as meeting rooms that belong to multiple zones. Newer resources use this property instead of the single "parent" field.
    - `availability` object — Defines the time period during which the resource is available for booking or assignment. Contains "startDate" (when availability begins) and "endDate" (when availability ends, or null for indefinite availability). Multiple availability periods can be configured.
    - `targetPlan` string — The target plan ID associated with this resource (for monthly billed resources).
    - `images` string[] — An array of image URLs associated with this resource, used for displaying resource photos in listings and detail views.
    - `amenities` string[] — An array of amenity IDs associated with this resource. Amenities can be defined directly on the resource or inherited from its resource rate (e.g., WiFi, projector, whiteboard, coffee machine).
    - `privacy` 'full' | 'active_members' | 'limited' — The privacy level of the resource, which determines who can view or book it. Available only for bookable resources. Possible values: "limited" (restricted to specific members, teams, or plans; if empty, only admins have access), "full" (public access for members, non-members, guests, and visible on the public calendar), and "active_members" (restricted to active members only).
    - `limitedTo` object — Limited entities for resources with privacy "limited". Contains company IDs and plan IDs that can access the resource.
    - `createdAt` string, date-time — The timestamp when the resource was created.
    - `createdBy` string — The ID of the user who created the resource.
    - `modifiedAt` string, date-time — The timestamp when the resource was last updated.
    - `modifiedBy` string — The ID of the user who last updated the resource.
  - `legalDocuments` string[] — An array with the ids of the legal documents attached to the contract.
  - `addendum` string — An addendum to the contract.
  - `isRolling` boolean — A true/false value that decides if the contract is rolling or not
  - `stage` 'terminated' | 'served_notice' | 'active' | 'up_for_renewal' | 'not_renewed' | 'expired' | 'rolling' — The stage of the contract.
  - `status` 'signed' | 'draft' | 'terminated' | 'not_signed' | 'canceled' — The status of the contract.
  - `signatureStatus` 'e_signed' | 'manually_signed' | 'out_for_signature' | 'declined' | 'requires_attention' | 'canceled' | 'signed_by_member' — The status of the signature of the contract.
  - `signDate` string — The date and time when the contract was signed.
  - `signedBy` SignedByResultDto
    - `_id` string — The _id of the user who signed the contract.
    - `displayName` string — The display name of the user who signed the contract.
  - `activationErrors` object[] — An array of activation errors
  - `termination` TerminationResultDto
    - `date` string — The date of the termination.
    - `reasonKey` string — The reason for the termination.
    - `comments` string — Comments about the termination.
  - `total` number — The total price of the contract (after taxes).
  - `baseTotal` number — The total price of the contract (before taxes).
  - `plansTotal` number — The total price of all the plans in the contract.
  - `oneOffsTotal` number — The total price of all the one-offs in the contract.
  - `resourcesTotal` number — The total price of all the resources in the contract.
  - `percentagePriceIncrease` number — Percentage price increase of the contract.
  - `previousDepositHeld` number — The previous deposit of the contract.
  - `type` 'renewal' | 'expansion' | 'new' — The type of the contract.
  - `renewedContract` string — The _id of the renewed contract that this renewal contract continues.
  - `renewalContract` string — The _id of the renewal contract that continues this renewed contract.
  - `createdAt` string, date-time — The date and time when the contract was created.
  - `createdBy` string — The user that created the contract.
  - `modifiedAt` string, date-time — The date and time when the contract was last modified.
  - `modifiedBy` string — The user that last updated the contract.

---

[API](https://skmtc.dev/officernd/apis/authentication-api.md) · [All operations](https://skmtc.dev/officernd/apis/authentication-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/officernd/authentication-api/revisions/6bcd33dc648e/schema)
