---
title: "Add new contract"
method: POST
path: "/api/v2/organizations/{orgSlug}/contracts"
tags: ["Contracts"]
---

# Add new contract

`POST /api/v2/organizations/{orgSlug}/contracts`

## Request

- Base URL: `https://app.officernd.com`
- URL: `https://app.officernd.com/api/v2/organizations/{orgSlug}/contracts`
- Auth: OAuth 2
  - Authorization code: `https://identity.officernd.com/auth/authorize`
  - Client credentials
  - Token URL: `https://identity.officernd.com/auth/token` scopes: `flex.community.contracts.create`

Option 1 - Create a contract of a type, that requires at least one resource.
You can add secondary items such as recurring plans and one-off plans as well, if the contract type allows it.

Option 2 - Create a contract of a type, that requires at least one recurring plan.
You can add secondary items such as resources and one-off plans as well, if the contract type allows it

Option 3 - Create a contract of a type, that requires at least one one-off plan.
You can add secondary items such as recurring plans and resources as well, if the contract type allows it 

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

## Path parameters

- `orgSlug` string, required

## Request body

- AddContractDto
  - `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.
  - `documentType` string, required: The type of the contract. Check "Settings"->"Platform"->"Contracts" to see what types are available.
  - `company` string, required: The _id of the company associated with the contract.
  - `member` string, required: The _id of the member associated with the contract.
  - `location` string: The _id of the location associated with the contract.
  - `deal` AddDealDto
    - `dealId` string, required: 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.
  - `startDate` string, required: The start date of the contract.
  - `endDate` string: The end date of the contract.
  - `plans` AddPlanDto[], required: An array containing all recurring plans that will be associated with the contract.
    - `id` string, required: The _id of the plan used to create the membership.
    - `steps` AddStepDto[], required: The steps for the plan in the contract. Each step will result in a separate membership once the contract is signed.
      - `startDate` string, required: The start date of the step.
      - `price` number, required: The price of the step.
      - `discount` string: The _id of the discount associated to the step.
      - `endDate` string: The end date of the step.
    - `count` number, required: The quantity of plans that will be purchased.
    - `deposit` number: The deposit required for the plan.
    - `increasePriceInRolling` boolean: Shows if the price is increased for this plan when the contract is rolling.
  - `oneOffPlans` AddOneOffDto[], required: An array containing all one-off plans that will be associated with the contract.
    - `id` string, required: The _id of the one-off plan used to create the membership.
    - `steps` AddOneOffStepDto[], required: The step for the plan in the contract.
      - `startDate` string, required: The start date of the step.
      - `price` number, required: The price of the step.
      - `discount` string: The _id of the discount associated to the step.
    - `count` number, required: The quantity of one-off plans that will be purchased.
    - `deposit` number: The deposit required for the plan.
    - `increasePriceInRolling` boolean: Shows if the price is increased for this plan when the contract is rolling.
  - `resources` AddResourceDto[], required: An array containing all resources that will be associated with the contract.
    - `id` string, required: The _id of the resource.
    - `steps` AddStepDto[], required: The steps for the resource in the contract. Each step will result in a separate membership once the contract is signed.
      - `startDate` string, required: The start date of the step.
      - `price` number, required: The price of the step.
      - `discount` string: The _id of the discount associated to the step.
      - `endDate` string: The end date of the step.
    - `size` number, required: The number of people that can inhabit the resource. If left empty the default size of the office will be used.
    - `deposit` number: The deposit required for the resource.
    - `increasePriceInRolling` boolean: Shows if the price is increased for this resource when the contract is rolling.
  - `legalDocuments` string[]: An array with the ids of the legal documents attached to the contract.
  - `addendum` string: An addendum to the contract.
  - `number` string: The number/name of the contract. If not written it will be automatically generated using organization's settings
  - `isRolling` boolean: A true/false value that decides if the contract is rolling or not
  - `percentagePriceIncrease` number: Percentage price increase of the contract.
  - `type` 'renewal' | 'expansion' | 'new': The type of the contract.

## Response `201`

- 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.
    - `id` string: The _id of the plan used to create the membership.
    - `steps` StepResultDto[]: The steps for the recurring plans in the contract. Each step will result in a separate membership once the contract is signed.
      - `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 plans that will be purchased.
    - `price` number: The price of the plan.
    - `deposit` number: The deposit required for the plan.
    - `increasePriceInRolling` boolean: Shows if the price is increased for this plan when the contract is rolling.
  - `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.
    - `id` string: The _id of the resource.
    - `steps` StepResultDto[]: The steps for the resource in the contract. Each step will result in a separate membership once the contract is signed.
      - `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.
    - `size` number: The number of people that can inhabit the resource. If left empty the default size of the office will be used.
    - `price` number: The price of the resource.
    - `deposit` number: The deposit required for the resource.
    - `increasePriceInRolling` boolean: Shows if the price is increased for this resource when the contract is rolling.
  - `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/community-api.md) - [All operations](https://skmtc.dev/officernd/apis/community-api/llms.txt) - [OpenAPI document](https://skmtc.dev/officernd/apis/community-api/revisions/dad1b7912165?raw)
