---
title: "Create a contract"
method: POST
path: "/contracts/create"
tags: ["Contract"]
---

# Create a contract

`POST /contracts/create`

Use this endpoint to create a new contract based on the selected template.

## Headers

- `x-oneflow-api-token` string, required
- `x-oneflow-user-email` string, email, required

## Request body

- object — Request body for a create contract request.
  - `workspace_id` integer, required — The unique ID of the workspace.
  - `template_id` integer, required — The unique ID of the template.
  - `data_fields` object[] — The data fields to be included in the contract.
    - `custom_id` string, required — The unique name that was given to the data field when it was added to the template type.
    - `value` string, nullable, required — The value that will be displayed in the contract for the data field.
  - `folder_id` integer — The unique ID of the folder.
  - `my_party` object — Legal entity representing the party of the current user's Oneflow account (the owner side party).
    - `_private_ownerside` object — Contract party attributes that are private to the ownerside.
      - `custom_id` string, nullable
    - `country_code` string, country_code — The country of the contract party.
    - `creator_inherit_settings_from_template` boolean — Controls if the creator of the contract will inherit the contract roles and permissions from the template setting 'Default Creator Role' when the creator is explicitly included in the list of participants. If the creator is omitted from the list of participants then the roles and permissions are inherited from the template regardless of the value of this field. Note that when this setting is True then the role and permission fields (organizer, signatory and the 'contract:update' permission) are ignored on the creator participant
    - `identification_number` string — The unique organization number of the contract party.
    - `name` string — The name of the owner side party.
    - `participants` object[], required — The list of participants in the owner side party.
      - `_permissions` object — Defines permissions for the participant on the contract.
        - `contract:update` boolean, required — If set to <b>true</b>, the participant is allowed to update the contract.
      - `_private_ownerside` object — Contract participant attributes that are private to the ownerside.
        - `custom_id` string, nullable
      - `email` string, email, required — The email of the contract participant. Note that the email must belong to an active user in your Oneflow account.
      - `identification_number` string — The social security number of the participant.
      - `name` string — The name of the participant.
      - `organizer` boolean — If <b>true</b>, the participant is the organizer of the contract.
      - `phone_number` string, nullable — The phone number of the participant.
      - `sign_method` 'standard_esign' | 'sms' | 'swedish_bankid' | 'norwegian_bankid' | 'danish_mitid' | 'finnish_bankid' | 'handwritten_signature' | 'eid_sign' — One of the [sign methods](contract#sign-methods).
      - `signatory` boolean — If <b>true</b>, the participant becomes the signatory of the contract.
      - `title` string — The title of the participant.
  - `name` string
  - `parties` union[] — The list of parties in the contract, representing companies, organizations, government departments, etc. Each party object must follow the object representation of either the individual or the company type of party.
    - union
      - object — The contract party of the individual type with a single participant who signs the contract on his or her own behalf.
        - `_private_ownerside` object — Contract party attributes that are private to the ownerside.
          - `custom_id` string, nullable
        - `country_code` string, country_code — The country code of the individual contract party.
        - `participant` object, required — The person who represents in a contract, see [Participant](https://developer.oneflow.com/docs/participant).
          - `_permissions` object — Defines permissions for the participant on the contract.
            - `contract:update` boolean, required — If set to <b>true</b>, the participant is allowed to update the contract.
          - `_private_ownerside` object — Contract participant attributes that are private to the ownerside.
            - `custom_id` string, nullable
          - `delivery_channel` 'email' | 'sms' | 'email_and_sms' | 'same_device' | 'none' | 'unknown', required — One of the contract [delivery channels](contract#delivery-channels).
          - `email` string, email — The participant's email. An email is required in case of an owner-side participant or if the delivery channel is `email`.
          - `identification_number` string — The social security number of the participant.
          - `name` string, required — The participant's name.
          - `phone_number` string, nullable — The participant's phone number. If the delivery channel is `phone number`, then the participant's phone number is required.
          - `sign_method` 'standard_esign' | 'sms' | 'swedish_bankid' | 'norwegian_bankid' | 'danish_mitid' | 'finnish_bankid' | 'handwritten_signature' | 'eid_sign' — One of the [sign methods](contract#sign-methods).
          - `signatory` boolean — If <b>true</b>, the participant can sign the contract.
          - `title` string — The title of the participant.
          - `two_step_authentication_method` 'email' | 'sms' | 'personal_identification' | 'none' | 'unknown' — One of the [two step authentication methods](contract#two-step-authentication-methods).
        - `type` 'individual', required — Can only be `individual`.
      - object — The contract party with the company type is a legal entity involved in the contract. More than one participant can sign a contract on behalf of the party with the company type.
        - `_private_ownerside` object — Contract party attributes that are private to the ownerside.
          - `custom_id` string, nullable
        - `country_code` string, country_code — The country code of the contract party.
        - `identification_number` string — The unique organization number of the contract party.
        - `name` string, required — The name of the contract party.
        - `participants` object[], required — The list of the contract party participants.
          - `_permissions` object — Defines permissions for the participant on the contract.
            - `contract:update` boolean, required — If set to <b>true</b>, the participant is allowed to update the contract.
          - `_private_ownerside` object — Contract participant attributes that are private to the ownerside.
            - `custom_id` string, nullable
          - `delivery_channel` 'email' | 'sms' | 'email_and_sms' | 'same_device' | 'none' | 'unknown', required — One of the contract [delivery channels](contract#delivery-channels).
          - `email` string, email — The participant's email. An email is required in case of an owner-side participant or if the delivery channel is `email`.
          - `identification_number` string — The social security number of the participant.
          - `name` string, required — The participant's name.
          - `phone_number` string, nullable — The participant's phone number. If the delivery channel is `phone number`, then the participant's phone number is required.
          - `sign_method` 'standard_esign' | 'sms' | 'swedish_bankid' | 'norwegian_bankid' | 'danish_mitid' | 'finnish_bankid' | 'handwritten_signature' | 'eid_sign' — One of the [sign methods](contract#sign-methods).
          - `signatory` boolean — If <b>true</b>, the participant can sign the contract.
          - `title` string — The title of the participant.
          - `two_step_authentication_method` 'email' | 'sms' | 'personal_identification' | 'none' | 'unknown' — One of the [two step authentication methods](contract#two-step-authentication-methods).
        - `type` 'company', required — Can only be `company`.
  - `product_groups` object[] — The list of product groups (product tables) in the template or contract. It is possible to add products to multiple product groups if these product groups exist in the template. Ensure that the template for your contract contains at least one product table. Otherwise, the product_groups setting will fail. Note that if your template contains only one product table, it is not mandatory to include the product group id in the request. Note that by default, the limit for products per contract is 150 (includes all product tables). This can be increased for your account if desired by contacting Oneflow support.
    - `_private_ownerside` object — Contract product group attributes that are private to the ownerside.
      - `custom_id` string, nullable
    - `configuration` object — A contract product group configuration.
      - `columns` object[] — List of configuration of product group columns
        - `enabled` boolean — If true, the column is enabled.
        - `key` 'name' | 'description' | 'price_1' | 'price_2' | 'count', required — One of the product group column keys.
        - `label` string — The product group column label.
        - `tax_1` object — Product group tax display name.
          - `label` string, required — The product group tax display name label.
          - `incl_tax` boolean — If true, prices are entered including tax.
      - `counterpart_edit` boolean — If true, the counterpart can edit products in the contract.
      - `hide_price_summation` boolean — If true, the price summation will be hidden.
      - `name` object — Product group name data.
        - `enabled` boolean — If true, the product group name is enabled.
        - `label` string — The product group name label.
      - `price_affixes` object — Postfix and prefix of a contract product price.
        - `postfix` string — The product price postfix.
        - `prefix` string — The product price prefix.
      - `price_precision` integer — Define the number of decimal places for price amount. See [here](https://developer.oneflow.com/docs/decimal-prices-and-quantities) for more information.
      - `quantity_precision` integer — Define the number of decimal places for quantity amount. [here](https://developer.oneflow.com/docs/decimal-prices-and-quantities) for more information.
      - `tax_1` object — Product group tax display name.
        - `label` string, required — The product group tax display name label.
        - `incl_tax` boolean — If true, prices are entered including tax.
    - `id` integer
    - `products` object[] — The array of products in this group.
      - `_private_ownerside` object — Contract product attributes that are private to the ownerside.
        - `custom_id` string, nullable
      - `counterparty_lock` boolean — If true, the counterpart can edit products in the contract.
      - `description` string — The product description.
      - `id` integer — The product ID.
      - `name` string — The product name. When creating a new product, it is mandatory to provide a product name.
      - `price_1` object, nullable — The object holds all price-related information for an individual product. Note that base_amount must be larger than discount_amount, except if the base_amount is 0, which is an exception to allow negative prices. See [Products](https://developer.oneflow.com/docs/product-group#products).
        - `base_amount` object — The base price of one item of this kind of product without considering discounts.
          - `amount` string, amount_4_decimal, nullable — An amount specifying the base price.
        - `discount_amount` object — The discount on the base price.
          - `amount` string, amount_4_decimal, nullable — An amount specifying the discount.
        - `discount_percent` string, discount_percent, nullable — The discount percentage is a decimal string between "0" and "100".
        - `tax_1` object, nullable — Product tax details.
          - `key` 'percentage', required
          - `value` string, tax_percent, required — Represents the tax percentage as a decimal string greater than or equal to 0 and less than or equal to 100.
      - `price_2` object, nullable — The object holds all price-related information for an individual product. Note that base_amount must be larger than discount_amount, except if the base_amount is 0, which is an exception to allow negative prices. See [Products](https://developer.oneflow.com/docs/product-group#products).
        - `base_amount` object — The base price of one item of this kind of product without considering discounts.
          - `amount` string, amount_4_decimal, nullable — An amount specifying the base price.
        - `discount_amount` object — The discount on the base price.
          - `amount` string, amount_4_decimal, nullable — An amount specifying the discount.
        - `discount_percent` string, discount_percent, nullable — The discount percentage is a decimal string between "0" and "100".
        - `tax_1` object, nullable — Product tax details.
          - `key` 'percentage', required
          - `value` string, tax_percent, required — Represents the tax percentage as a decimal string greater than or equal to 0 and less than or equal to 100.
      - `quantity` object — The object holds information about the quantity of an individual product. The default quantity type is multiple_choice. If the quantity type is single_choice or multiple_choice, the amount must be set to 0 or 1. If the quantity type is set to single_choice, the amount must be set to 1 at least for one product, and 0 for the rest of the products in the same product group with the quantity type single_choice.
        - `amount` number, nullable — The number of individual products selected, or the quantity.
        - `type` 'single_choice' | 'multiple_choice' | 'quantity' — One of the product's [quantity types](product-group#quantity-type).
  - `tags` object[] — List of tags for contract.
    - `id` integer, required
  - `value` object, nullable — The deal size of a contract as an amount of money.
    - `amount` string, amount, required — An amount specifying the total value.

## Response `200`

Returns the created [contract](contract).

- object — See [Contract](https://developer.oneflow.com/docs/contract).
  - `_links` object — Links to related endpoints.
    - `comments` object
      - `href` string, nullable
    - `contracts` object
      - `href` string, nullable
    - `contract` object
      - `href` string, nullable
    - `create` object
      - `href` string, nullable
    - `data_field` object
      - `href` string, nullable
    - `data_fields` object
      - `href` string, nullable
    - `events` object
      - `href` string, nullable
    - `event` object
      - `href` string, nullable
    - `files` object
      - `href` string, nullable
    - `file` object
      - `href` string, nullable
    - `next` object
      - `href` string, nullable
    - `parties` object
      - `href` string, nullable
    - `party` object
      - `href` string, nullable
    - `previous` object
      - `href` string, nullable
    - `publish` object
      - `href` string, nullable
    - `self` object
      - `href` string, nullable
    - `template_types` object
      - `href` string, nullable
    - `template_type` object
      - `href` string, nullable
    - `template` object
      - `href` string, nullable
    - `templates` object
      - `href` string, nullable
    - `workspaces` object
      - `href` string, nullable
    - `workspace` object
      - `href` string, nullable
    - `playbooks` object
      - `href` string, nullable
  - `_permissions` object, required — This attribute contains the permissions for various operations possible on the contract. The format of the permission is 'contract:' followed by the specific operation, like 'contract:create.'
    - `contract:delete` boolean, required
    - `contract:download:pdf` boolean, required
    - `contract:send` boolean, required
  - `_integration_permissions` object[] — A list of integration specific permissions. This exists only for specific integration tokens
    - `key` string, required
    - `value` string, required
  - `_private` object, required — See [Private](https://developer.oneflow.com/docs/contract#private)
    - `date_format` string, required — The date format of the contract.
    - `value` object, nullable, required — See [Contract value](https://developer.oneflow.com/docs/contract#value).
      - `amount` string, amount, required
      - `currency` string, currency, required
    - `folder` object, required — A folder.
      - `id` integer, required — Folder ID
      - `name` string, required — Folder name.
      - `parent_id` integer, nullable, required — If exist any parent folder, its ID.
      - `path` integer[], required — An array of folder IDs representing the path from the top of the hierarchy to the current folder.
    - `language` string — The language of the contract.
    - `name` string, required — The name of the contract.
    - `signing_period_expiration` union, required
      - object — The signing period for this contract never expires
        - `type` 'never', required — Can only be 'never'.
      - object — The signing period for this contract expires a given number of days after publishing. This setting can only be used when the contract is in the draft stage. Converts into a "fixed_date" after the contract is published.
        - `type` 'days_after_publish', required — Can only be 'days_after_publish'.
        - `expire_days_after_publish` integer, required
      - object — The signing period for this contract expires on a set date.
        - `type` 'fixed_date', required — Can only be 'fixed_date'.
        - `expire_date` string, date, required
    - `workspace_id` integer, nullable, required — The unique id of this workspace.
    - `single_sign` boolean — State of the feature single sign
  - `_private_ownerside` object, nullable, required — Contract data that is private to the ownerside.
    - `created_time` string, datetime, required
    - `template_id` integer, nullable, required
    - `template_type_id` integer, nullable, required
    - `playbook_id` integer, nullable
    - `blueprint_ids` integer[], nullable
  - `attachment_file_groups` object[], required — A list of attachment type file groups in the contract.
    - `_private_ownerside` object, nullable, required — File group data that is private to the ownerside.
      - `created_time` string, datetime, required
      - `updated_time` string, datetime, nullable, required
    - `files` object[], required
      - `_private_ownerside` object, nullable, required — File data that is private to the ownerside.
        - `created_time` string, datetime, required
        - `updated_time` string, datetime, nullable, required
      - `extension` string, nullable, required — The file extension.
      - `id` integer, required
      - `name` string, nullable, required — The name of the file.
      - `size` integer, nullable, required — The size of the file in bytes.
    - `id` integer, required
    - `type` 'attachment' | 'pdf', required — The file group type of the file group sections. There are only two types available, `attachment` and `pdf`.
  - `available_options` object, required — Available options in the contract. See [Available options](https://developer.oneflow.com/docs/contract#available-options).
    - `can_receive_attachments` boolean, required
    - `can_receive_expanded_pdf` boolean, required
    - `can_receive_products` boolean, required
    - `can_receive_product_tax` boolean, required
    - `delivery_channels` object[], required
      - `name` 'email' | 'sms' | 'email_and_sms' | 'same_device' | 'none' | 'unknown', required — One of the contract [delivery channels](contract#delivery-channels).
      - `preferred` boolean, required
      - `required_participant_attributes` string[], required
    - `sign_methods` object[], required
      - `name` 'standard_esign' | 'sms' | 'swedish_bankid' | 'norwegian_bankid' | 'danish_mitid' | 'finnish_bankid' | 'handwritten_signature' | 'eid_sign' | 'unknown', required — One of the [sign methods](contract#sign-methods).
      - `preferred` boolean, required
    - `two_step_authentication_methods` object[], required
      - `name` 'email' | 'sms' | 'personal_identification' | 'none' | 'unknown', required — One of the [two step authentication methods](contract#two-step-authentication-methods).
      - `preferred` boolean, required
      - `required_participant_attributes` string[], required
  - `data_fields` object[], required — The data fields that are part of the contract.
    - `_links` object — Links to related endpoints.
      - `comments` object
        - `href` string, nullable
      - `contracts` object
        - `href` string, nullable
      - `contract` object
        - `href` string, nullable
      - `create` object
        - `href` string, nullable
      - `data_field` object
        - `href` string, nullable
      - `data_fields` object
        - `href` string, nullable
      - `events` object
        - `href` string, nullable
      - `event` object
        - `href` string, nullable
      - `files` object
        - `href` string, nullable
      - `file` object
        - `href` string, nullable
      - `next` object
        - `href` string, nullable
      - `parties` object
        - `href` string, nullable
      - `party` object
        - `href` string, nullable
      - `previous` object
        - `href` string, nullable
      - `publish` object
        - `href` string, nullable
      - `self` object
        - `href` string, nullable
      - `template_types` object
        - `href` string, nullable
      - `template_type` object
        - `href` string, nullable
      - `template` object
        - `href` string, nullable
      - `templates` object
        - `href` string, nullable
      - `workspaces` object
        - `href` string, nullable
      - `workspace` object
        - `href` string, nullable
      - `playbooks` object
        - `href` string, nullable
    - `_private_ownerside` object, required — Data field attributes that are private to the ownerside.
      - `created_time` string, datetime, required
      - `custom_id` string, nullable, required
      - `updated_time` string, datetime, nullable, required
    - `description` string, required
    - `id` integer, required
    - `name` string, required
    - `placeholder` string, required
    - `value` string, required
  - `draft_approval_workflow` object, nullable — Draft approval work flow details.
    - `status` string, nullable
  - `id` integer, required
  - `image_file_groups` object[], required — A list of image type file groups in the contract.
    - `_private_ownerside` object, nullable, required — File group data that is private to the ownerside.
      - `created_time` string, datetime, required
      - `updated_time` string, datetime, nullable, required
    - `files` object[], required — A list of image files in the group.
      - `_private_ownerside` object, nullable, required — File data that is private to the ownerside.
        - `created_time` string, datetime, required
        - `updated_time` string, datetime, nullable, required
      - `alt_text` string, nullable, required — The alternative text of the image.
      - `extension` string, nullable, required — The image extension.
      - `id` integer, required
      - `size` integer, nullable, required — The size of the image in bytes.
    - `id` integer, required
    - `type` 'image', required — The type of the image group. The only available type is `image`.
  - `imported` boolean, nullable — A flag denoting whether the contract has been imported or not.
  - `lifecycle_settings` object, nullable, required — See [Lifecycle settings](lifecycle-settings).
    - `duration` string, duration, nullable, required
    - `end_date` string, date, nullable, required
    - `initial_duration` string, duration, nullable, required
    - `notice_period` string, duration, nullable, required
    - `start_date` string, date, nullable, required
    - `type` 'no_duration' | 'single_period' | 'recurring' | 'recurring_two_periods' | 'unknown', required — One of the contract [duration types](contract#duration-type).
  - `lifecycle_state` object, nullable, required — Lifecycle information of the contract. See [Lifecycle state](https://developer.oneflow.com/docs/contract#lifecycle-state).
    - `composite` 'awaiting' | 'awaiting-recurring' | 'active' | 'active-recurring' | 'active-canceled-recurring' | 'ended' | 'ended-terminated' | 'ended-terminated-recurring', required — One of the [lifecycle composites](contract#lifecycle-composite).
    - `contract_end_time` string, datetime, nullable, required
    - `contract_start_time` string, datetime, nullable, required
    - `cancel_time` string, datetime, nullable, required
    - `has_ended_by_termination` boolean, required
    - `has_passed_notice_period_start_time` boolean, required
    - `is_canceled` boolean, required
    - `is_recurring` boolean, required
    - `lifecycle_state` 'awaiting' | 'active' | 'ended' | 'unknown', required — One of the [lifecycle states](ccontract#lifecycle-states).
    - `lifecycle_state_updated_time` string, datetime, required
    - `notice_period_start_time` string, datetime, nullable, required
    - `period` integer, nullable, required
    - `period_end_time` string, datetime, nullable, required
    - `period_start_time` string, datetime, nullable, required
  - `links` union[] — All links on the contract. These links can be either `internal` or `external` (<b>links</b> is only available in the <b>Get a contract by ID</b> response)
    - union
      - object — Internal contract link.
        - `id` integer, required
        - `linked_contract` integer, required
        - `type` 'amends' | 'amended_by' | 'sub_contract' | 'main_contract' | 'replaced_by' | 'replaces' | 'relates_to', required — One of the [link types](contract#links).
      - object — External contract link.
        - `id` integer, required
        - `type` 'external', required — Can only be `external` of the [link types](contract#links).
        - `external_link` string, required
        - `external_title` string, required
  - `marked_as_signed` boolean, nullable — A flag denoting whether the contract has been marked as signed or not.
  - `parties` union[], required — The parties involved in this contract.
    - union
      - object — An individual party, where a single participant is signing on behalf of him- or herself. See [Individual party](https://developer.oneflow.com/docs/party#individual)
        - `_links` object — Links to related endpoints.
          - `comments` object
            - `href` string, nullable
          - `contracts` object
            - `href` string, nullable
          - `contract` object
            - `href` string, nullable
          - `create` object
            - `href` string, nullable
          - `data_field` object
            - `href` string, nullable
          - `data_fields` object
            - `href` string, nullable
          - `events` object
            - `href` string, nullable
          - `event` object
            - `href` string, nullable
          - `files` object
            - `href` string, nullable
          - `file` object
            - `href` string, nullable
          - `next` object
            - `href` string, nullable
          - `parties` object
            - `href` string, nullable
          - `party` object
            - `href` string, nullable
          - `previous` object
            - `href` string, nullable
          - `publish` object
            - `href` string, nullable
          - `self` object
            - `href` string, nullable
          - `template_types` object
            - `href` string, nullable
          - `template_type` object
            - `href` string, nullable
          - `template` object
            - `href` string, nullable
          - `templates` object
            - `href` string, nullable
          - `workspaces` object
            - `href` string, nullable
          - `workspace` object
            - `href` string, nullable
          - `playbooks` object
            - `href` string, nullable
        - `_private_ownerside` object, nullable, required — Party data that is private to the ownerside.
          - `created_time` string, datetime, required
          - `custom_id` string, nullable, required
          - `updated_time` string, datetime, nullable, required
        - `country_code` string, country_code, required
        - `id` integer, required
        - `identification_number` string, required
        - `my_party` boolean, required
        - `name` string, nullable, required
        - `participant` object, required — See [Participant](https://developer.oneflow.com/docs/participant).
          - `_links` object — Links to related endpoints.
            - `comments` object
              - …
            - `contracts` object
              - …
            - `contract` object
              - …
            - `create` object
              - …
            - `data_field` object
              - …
            - `data_fields` object
              - …
            - `events` object
              - …
            - `event` object
              - …
            - `files` object
              - …
            - `file` object
              - …
            - `next` object
              - …
            - `parties` object
              - …
            - `party` object
              - …
            - `previous` object
              - …
            - `publish` object
              - …
            - `self` object
              - …
            - `template_types` object
              - …
            - `template_type` object
              - …
            - `template` object
              - …
            - `templates` object
              - …
            - `workspaces` object
              - …
            - `workspace` object
              - …
            - `playbooks` object
              - …
          - `_permissions` object, required — This attribute contains the permissions for the participant/creator on the contract.
            - `contract:update` boolean, required
          - `_private_ownerside` object, nullable, required — Participant data that is private to the ownerside.
            - `created_time` string, datetime, required
            - `custom_id` string, nullable, required
            - `first_visited_time` string, datetime, nullable, required
            - `last_visited_time` string, datetime, nullable, required
            - `updated_time` string, datetime, nullable, required
            - `visits` integer, required
          - `delivery_channel` 'email' | 'sms' | 'email_and_sms' | 'same_device' | 'none' | 'unknown', required — One of the contract [delivery channels](contract#delivery-channels).
          - `delivery_status` 'not_sent' | 'pending' | 'failure' | 'bounce' | 'success' | 'opened' | 'unknown', required — One of the contract [delivery status](contract-participant#delivery-status).
          - `draft_approver` boolean — A flag to indicate if the participant is a draft approver.
          - `email` string, email, required
          - `id` integer, required
          - `identification_number` string, required
          - `my_participant` boolean, required
          - `name` string, nullable, required
          - `organizer` boolean, required — A flag to indicate if the participant is an organizer combined with the permissions.
          - `pending_approver` boolean — A flag to indicate if the participant is a pending approver.
          - `phone_number` string, nullable, required
          - `sign_method` 'standard_esign' | 'sms' | 'swedish_bankid' | 'norwegian_bankid' | 'danish_mitid' | 'finnish_bankid' | 'handwritten_signature' | 'eid_sign' | 'unknown', required — One of the [sign methods](contract#sign-methods).
          - `sign_state` 'undecided' | 'signed' | 'declined' | 'unknown', required — One of the [sign states](contract-participant#sign-state).
          - `sign_state_updated_time` string, datetime, nullable, required
          - `signatory` boolean, required — A flag to indicate if the participant is an signatory combined with the permissions.
          - `title` string, required
          - `two_step_authentication_method` 'email' | 'sms' | 'personal_identification' | 'none' | 'unknown', required — One of the [two step authentication methods](contract#two-step-authentication-methods).
        - `type` 'individual', required — Can only be `individual`.
      - object — The participants are signing on behalf of this company. See [Company party](https://developer.oneflow.com/docs/party#company).
        - `_links` object — Links to related endpoints.
          - `comments` object
            - `href` string, nullable
          - `contracts` object
            - `href` string, nullable
          - `contract` object
            - `href` string, nullable
          - `create` object
            - `href` string, nullable
          - `data_field` object
            - `href` string, nullable
          - `data_fields` object
            - `href` string, nullable
          - `events` object
            - `href` string, nullable
          - `event` object
            - `href` string, nullable
          - `files` object
            - `href` string, nullable
          - `file` object
            - `href` string, nullable
          - `next` object
            - `href` string, nullable
          - `parties` object
            - `href` string, nullable
          - `party` object
            - `href` string, nullable
          - `previous` object
            - `href` string, nullable
          - `publish` object
            - `href` string, nullable
          - `self` object
            - `href` string, nullable
          - `template_types` object
            - `href` string, nullable
          - `template_type` object
            - `href` string, nullable
          - `template` object
            - `href` string, nullable
          - `templates` object
            - `href` string, nullable
          - `workspaces` object
            - `href` string, nullable
          - `workspace` object
            - `href` string, nullable
          - `playbooks` object
            - `href` string, nullable
        - `_private_ownerside` object, nullable, required — Party data that is private to the ownerside.
          - `created_time` string, datetime, required
          - `custom_id` string, nullable, required
          - `updated_time` string, datetime, nullable, required
        - `country_code` string, country_code, required
        - `id` integer, required
        - `identification_number` string, required
        - `my_party` boolean, required
        - `name` string, required
        - `participants` object[], required — The maximum number of participants per contract across all parties is 40.
          - `_links` object — Links to related endpoints.
            - `comments` object
              - …
            - `contracts` object
              - …
            - `contract` object
              - …
            - `create` object
              - …
            - `data_field` object
              - …
            - `data_fields` object
              - …
            - `events` object
              - …
            - `event` object
              - …
            - `files` object
              - …
            - `file` object
              - …
            - `next` object
              - …
            - `parties` object
              - …
            - `party` object
              - …
            - `previous` object
              - …
            - `publish` object
              - …
            - `self` object
              - …
            - `template_types` object
              - …
            - `template_type` object
              - …
            - `template` object
              - …
            - `templates` object
              - …
            - `workspaces` object
              - …
            - `workspace` object
              - …
            - `playbooks` object
              - …
          - `_permissions` object, required — This attribute contains the permissions for the participant/creator on the contract.
            - `contract:update` boolean, required
          - `_private_ownerside` object, nullable, required — Participant data that is private to the ownerside.
            - `created_time` string, datetime, required
            - `custom_id` string, nullable, required
            - `first_visited_time` string, datetime, nullable, required
            - `last_visited_time` string, datetime, nullable, required
            - `updated_time` string, datetime, nullable, required
            - `visits` integer, required
          - `delivery_channel` 'email' | 'sms' | 'email_and_sms' | 'same_device' | 'none' | 'unknown', required — One of the contract [delivery channels](contract#delivery-channels).
          - `delivery_status` 'not_sent' | 'pending' | 'failure' | 'bounce' | 'success' | 'opened' | 'unknown', required — One of the contract [delivery status](contract-participant#delivery-status).
          - `draft_approver` boolean — A flag to indicate if the participant is a draft approver.
          - `email` string, email, required
          - `id` integer, required
          - `identification_number` string, required
          - `my_participant` boolean, required
          - `name` string, nullable, required
          - `organizer` boolean, required — A flag to indicate if the participant is an organizer combined with the permissions.
          - `pending_approver` boolean — A flag to indicate if the participant is a pending approver.
          - `phone_number` string, nullable, required
          - `sign_method` 'standard_esign' | 'sms' | 'swedish_bankid' | 'norwegian_bankid' | 'danish_mitid' | 'finnish_bankid' | 'handwritten_signature' | 'eid_sign' | 'unknown', required — One of the [sign methods](contract#sign-methods).
          - `sign_state` 'undecided' | 'signed' | 'declined' | 'unknown', required — One of the [sign states](contract-participant#sign-state).
          - `sign_state_updated_time` string, datetime, nullable, required
          - `signatory` boolean, required — A flag to indicate if the participant is an signatory combined with the permissions.
          - `title` string, required
          - `two_step_authentication_method` 'email' | 'sms' | 'personal_identification' | 'none' | 'unknown', required — One of the [two step authentication methods](contract#two-step-authentication-methods).
        - `type` 'company', required — Can only be `company`.
  - `pdf_file_groups` object[], required — A list of expanded pdf type file groups in the contract.
    - `_private_ownerside` object, nullable, required — File group data that is private to the ownerside.
      - `created_time` string, datetime, required
      - `updated_time` string, datetime, nullable, required
    - `files` object[], required
      - `_private_ownerside` object, nullable, required — File data that is private to the ownerside.
        - `created_time` string, datetime, required
        - `updated_time` string, datetime, nullable, required
      - `extension` string, nullable, required — The file extension.
      - `id` integer, required
      - `name` string, nullable, required — The name of the file.
      - `size` integer, nullable, required — The size of the file in bytes.
    - `id` integer, required
    - `type` 'attachment' | 'pdf', required — The file group type of the file group sections. There are only two types available, `attachment` and `pdf`.
  - `pending_approval_workflow` object, nullable — Pending approval work flow details.
    - `status` string, nullable
  - `product_groups` object[], required — A list of product groups.
    - `_private_ownerside` object, nullable, required — Product group data that is private to the ownerside.
      - `created_time` string, datetime, required
      - `custom_id` string, nullable, required
      - `updated_time` string, datetime, nullable, required
    - `configuration` object, required — Updated product group configuration
      - `columns` object[]
        - `enabled` boolean
        - `key` 'name' | 'description' | 'price_1' | 'price_2' | 'count', required — One of the product group column keys.
        - `label` string
        - `tax_1` object — Product group tax display name.
          - `label` string — The product group tax display name label.
          - `incl_tax` boolean — If true, prices are entered including tax.
      - `counterpart_edit` boolean
      - `hide_price_summation` boolean
      - `name` object — Product group name data.
        - `enabled` boolean — If true, the product group name is enabled.
        - `label` string — The product group name label.
      - `price_affixes` object — Postfix and prefix of a contract product price.
        - `postfix` string
        - `prefix` string
      - `price_precision` integer, nullable
      - `quantity_precision` integer, nullable
      - `tax_1` object — Product group tax display name.
        - `label` string — The product group tax display name label.
        - `incl_tax` boolean — If true, prices are entered including tax.
    - `created_from` integer, nullable — This will be only available in the contract create response.
    - `enabled_columns` object[], required
      - `enabled` boolean, required
      - `key` string, required
    - `id` integer, required
    - `products` object[], required
      - `_private_ownerside` object, nullable, required — Product data that is private to the ownerside.
        - `created_time` string, datetime, required
        - `custom_id` string, nullable, required
        - `updated_time` string, datetime, nullable, required
      - `counterparty_lock` boolean
      - `created_from` integer, nullable — This will be only available in the contract create response.
      - `description` string
      - `id` integer, required
      - `name` string, required
      - `price_1` object, nullable, required — An object that holds all price related information for an individual product.
        - `amount` object, required — The price amount after discount.
          - `amount` string, signed_amount_4_decimal, nullable, required
        - `base_amount` object, required — The price amount before discount.
          - `amount` string, amount_4_decimal, nullable, required
        - `discount_amount` object, required — The absolute discount amount.
          - `amount` string, amount_4_decimal, nullable, required
        - `discount_percent` string, discount_percent, nullable, required — The discount percentage as a decimal string between "0" and "100".
        - `tax_1` object, nullable — Product tax details.
          - `key` 'percentage', required
          - `value` string, tax_percent, required — Represents the tax percentage as a decimal string greater than or equal to 0 and less than or equal to 100.
      - `price_2` object, nullable, required — An object that holds all price related information for an individual product.
        - `amount` object, required — The price amount after discount.
          - `amount` string, signed_amount_4_decimal, nullable, required
        - `base_amount` object, required — The price amount before discount.
          - `amount` string, amount_4_decimal, nullable, required
        - `discount_amount` object, required — The absolute discount amount.
          - `amount` string, amount_4_decimal, nullable, required
        - `discount_percent` string, discount_percent, nullable, required — The discount percentage as a decimal string between "0" and "100".
        - `tax_1` object, nullable — Product tax details.
          - `key` 'percentage', required
          - `value` string, tax_percent, required — Represents the tax percentage as a decimal string greater than or equal to 0 and less than or equal to 100.
      - `quantity` object, required — The object holds information about the quantity of an individual product. The default quantity type is multiple_choice. If the quantity type is single_choice or multiple_choice, the amount must be set to 0 or 1. If the quantity type is set to single_choice, the amount must be set to 1 at least for one product, and 0 for the rest of the products in the same product group with the quantity type single_choice.
        - `amount` number, nullable — The number of individual products selected, or the quantity.
        - `type` 'single_choice' | 'multiple_choice' | 'quantity' — One of the product's [quantity types](product-group#quantity-type).
  - `published_time` string, datetime, nullable, required
  - `sign_later` boolean — A flag to indicate if the contract signing is postponed.
  - `sign_order` object[], required — Sign order of the participants.
    - `participant_id` integer, required — participant ID
    - `order` integer, required — Sign order
  - `signing_period_expiry_time` string, datetime, nullable, required
  - `state` 'draft' | 'pending' | 'overdue' | 'signed' | 'declined' | 'unknown', required — One of the [contract states](contract#contract-state).
  - `state_updated_time` string, datetime, required
  - `tags` object[], required — All tags associated with the contract.
    - `id` integer, required
    - `name` string, required
  - `updated_time` string, datetime, nullable, required

## Other responses

- `400` — Invalid format or content of the request.
- `404` — A required entity is missing.
- `409` — A conflict occurred with the current state of the target resource.

---

[API](https://skmtc.net/oneflow/apis/public-api-for-oneflow.md) · [All operations](https://skmtc.net/oneflow/apis/public-api-for-oneflow/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/oneflow/public-api-for-oneflow/versions/0e73a45dec15/schema)
