---
title: "Create a participant"
method: POST
path: "/contracts/{contract_id}/parties/{party_id}/participants"
tags: ["Contract - Parties and Participants"]
---

# Create a participant

`POST /contracts/{contract_id}/parties/{party_id}/participants`

## Request

- Base URL: `https://api.oneflow.com/v1`
- URL: `https://api.oneflow.com/v1/contracts/{contract_id}/parties/{party_id}/participants`
- Auth: none declared. Required headers: `x-oneflow-api-token`, `x-oneflow-user-email`

Use this endpoint to add a new participant to an existing contract party.

## Path parameters

- `contract_id` integer, required
- `party_id` integer, required

## Headers

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

## Request body

- object: The person who represents in a contract, see [Participant](doc:participant).
  - `_options` object: Defines options for the participant on the contract. See [Options](doc:participant#options).
    - `invite` boolean: Whether send an invitation to the participant or not.
    - `message` object, nullable: Defines the subject and body of the invitation. If this object is `null` and the `invite` is `true`, then the default subject and message will be sent.
      - `body` string, required: Body of the message to be sent along with the invitation.
      - `subject` string, required: Subject of the message when sending the invitation to the 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.
  - `organizer` boolean: If <b>true</b>, the participant is the organizer of the contract(organizer should be an owner-side participant).
  - `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` 'colleague' | 'former_colleague': Whether an ownerside participant is a colleague or a former colleague. Set this to <b>former_colleague</b> only when creating a former colleague participant.

## Response `200`

Returns the created participant

- object: See [Participant](doc:participant).
  - `_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 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).

## Other responses

- `400`: Invalid format or content of the request.
- `401`: The API token or the user email is invalid.
- `404`: A required entity is missing.
- `409`: A conflict occurred with the current state of the target resource.

---

[API](https://skmtc.dev/oneflow/apis/public-api-for-oneflow.md) - [All operations](https://skmtc.dev/oneflow/apis/public-api-for-oneflow/llms.txt) - [OpenAPI document](https://skmtc.dev/oneflow/apis/public-api-for-oneflow/revisions/0a4e1e88ac45?raw)
