---
title: "Create a deal"
method: POST
path: "/v2/deals"
tags: ["Deals"]
---

# Create a deal

`POST /v2/deals`

Creates a deal with desired params.

## Request body

- union
  - object
    - `group_key` string, required — The unique key of the group in which this deals's prospective partner is. Required if 'source' is specified as 'vendor'
    - `account_name` string, required — Name of the account
    - `amount` integer, required — Deal amount in **cents**
    - `close_date` string, date, required — Expected close date of deal as YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS or full ISO 8601 with timezone
    - `contact_first_name` string, required — First name of the account's contact
    - `contact_last_name` string, required — Last name of the account's contact
    - `customer_key` string, nullable — The unique key of the customer to associate with this deal. The customer must belong to the specified partner.
    - `field_data` object, nullable
    - `fields` object[]
      - `api_name` string — API name of this field to be used on create / update / serialization. Created at time of field creation but can be edited
      - `description` string, nullable — Description of the field to be displayed to the partner
      - `external_type` string, nullable — Name that can be used for external systems
      - `field_key` string — Key of field that is presented
      - `help_text` string, nullable — The help text that is provided for this field
      - `hidden` boolean — Whether or not this field is displayed when filling out its attached form
      - `internal_name` string — Internal name of this field. Created by PartnerStack at time of field creation. Used when referencing field in created objects. Cannot be edited.
      - `name` string — Name of field that is presented
      - `options` object — Options to select from if this field is a picklist/checkbox
      - `placeholder_text` string, nullable — The text of the placeholder that is provided for this field
      - `position` integer — The position that this field will be displayed in relation to others on the same form (index starts at 0)
      - `read_only` boolean — Whether or not this field is read only
      - `required` boolean — Whether or not this field will be required when filling out its attached form
      - `type` string — The type of field that will be presented (input, picklist, number ect.)
      - `value` unknown
    - `meta` object, nullable
    - `personal_stack_key` string, nullable — The unique personal stack_key of the partner team member who submitted this deal. To select a team member, please pass either the personal_stack_key or the team_member_email. Partner source only.
    - `source` 'partner' | 'vendor' — Source of the deal, either 'partner' or 'vendor', defaults to 'partner' if not specified
    - `stage` string, required — Current stage of this deal. Must appear in Deals Stage list found in group settings.
    - `team_member_email` string, nullable — The email of the partner team member who submitted this deal. To select a team member, please pass either the personal_stack_key or the team_member_email. Partner source only.
  - object
    - `partner_key` string, required — The unique key of the partner who owns this deal. Required if 'source' is specified as 'partner'.
    - `account_name` string, required — Name of the account
    - `amount` integer, required — Deal amount in **cents**
    - `close_date` string, date, required — Expected close date of deal as YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS or full ISO 8601 with timezone
    - `contact_first_name` string, required — First name of the account's contact
    - `contact_last_name` string, required — Last name of the account's contact
    - `customer_key` string, nullable — The unique key of the customer to associate with this deal. The customer must belong to the specified partner.
    - `field_data` object, nullable
    - `fields` object[]
      - `api_name` string — API name of this field to be used on create / update / serialization. Created at time of field creation but can be edited
      - `description` string, nullable — Description of the field to be displayed to the partner
      - `external_type` string, nullable — Name that can be used for external systems
      - `field_key` string — Key of field that is presented
      - `help_text` string, nullable — The help text that is provided for this field
      - `hidden` boolean — Whether or not this field is displayed when filling out its attached form
      - `internal_name` string — Internal name of this field. Created by PartnerStack at time of field creation. Used when referencing field in created objects. Cannot be edited.
      - `name` string — Name of field that is presented
      - `options` object — Options to select from if this field is a picklist/checkbox
      - `placeholder_text` string, nullable — The text of the placeholder that is provided for this field
      - `position` integer — The position that this field will be displayed in relation to others on the same form (index starts at 0)
      - `read_only` boolean — Whether or not this field is read only
      - `required` boolean — Whether or not this field will be required when filling out its attached form
      - `type` string — The type of field that will be presented (input, picklist, number ect.)
      - `value` unknown
    - `meta` object, nullable
    - `personal_stack_key` string, nullable — The unique personal stack_key of the partner team member who submitted this deal. To select a team member, please pass either the personal_stack_key or the team_member_email. Partner source only.
    - `source` 'partner' | 'vendor' — Source of the deal, either 'partner' or 'vendor', defaults to 'partner' if not specified
    - `stage` string, required — Current stage of this deal. Must appear in Deals Stage list found in group settings.
    - `team_member_email` string, nullable — The email of the partner team member who submitted this deal. To select a team member, please pass either the personal_stack_key or the team_member_email. Partner source only.

## Response `200`

Creates a deal with desired params.

- object
  - `data` object, required — **Deals** allow your partners to submit accounts they are working to your sales team to avoid channel conflicts and earn commissions for closed accounts. Typically the Deals experience is handled through a CRM integration like Salesforce. However you may opt to use the Deals API to have PartnerStack interact with a custom data warehouse rather than directly with your CRM.
    - `created_at` integer — Immutable Unix timestamp in milliseconds taken at time of creation
    - `key` string — A unique identifier used to reference the object
    - `updated_at` integer — Unix timestamp in milliseconds taken at time of last update
    - `account_name` string, nullable — Name of the account
    - `amount` integer — Deal amount in **cents**
    - `close_date` string, date — Expected close date of deal as YYYY-MM-DD
    - `contact_first_name` string, nullable — First name of the account's contact
    - `contact_last_name` string, nullable — Last name of the account's contact
    - `customer_key` string, nullable — The unique key of the customer associated with this deal.
    - `external_key` string, nullable — Reference that can be used in place of the key.
    - `field_data` object, nullable
    - `fields` object[]
      - `api_name` string — API name of this field to be used on create / update / serialization. Created at time of field creation but can be edited
      - `description` string, nullable — Description of the field to be displayed to the partner
      - `external_type` string, nullable — Name that can be used for external systems
      - `field_key` string — Key of field that is presented
      - `help_text` string, nullable — The help text that is provided for this field
      - `hidden` boolean — Whether or not this field is displayed when filling out its attached form
      - `internal_name` string — Internal name of this field. Created by PartnerStack at time of field creation. Used when referencing field in created objects. Cannot be edited.
      - `name` string — Name of field that is presented
      - `options` object — Options to select from if this field is a picklist/checkbox
      - `placeholder_text` string, nullable — The text of the placeholder that is provided for this field
      - `position` integer — The position that this field will be displayed in relation to others on the same form (index starts at 0)
      - `read_only` boolean — Whether or not this field is read only
      - `required` boolean — Whether or not this field will be required when filling out its attached form
      - `type` string — The type of field that will be presented (input, picklist, number ect.)
      - `value` unknown
    - `group_key` string — The unique key of the group in which this deals's partner is in
    - `lost_reason` string, nullable — Reason for which the deal was lost.
    - `meta` object, nullable
    - `mold_key` string, nullable
    - `partner_key` string — The unique key of the partner who owns this deal
    - `source` 'partner' | 'vendor', nullable — Source of the deal, either 'partner' or 'vendor', defaults to 'partner' if not specified
    - `stage` string — Current stage of this deal. Must appear in Deals Stage list found in group settings.
    - `team` object, nullable — Details of team used in public API.
      - `created_at` integer — Immutable Unix timestamp in milliseconds taken at time of creation
      - `key` string — A unique identifier used to reference the object
      - `updated_at` integer — Unix timestamp in milliseconds taken at time of last update
      - `name` string — The name of the partner team
    - `team_member` object, nullable — Details of team member used in public API.
      - `created_at` integer — Immutable Unix timestamp in milliseconds taken at time of creation
      - `key` string — A unique identifier used to reference the object
      - `updated_at` integer — Unix timestamp in milliseconds taken at time of last update
      - `email` string — Email of the partner team member
      - `first_name` string — First name of the partner team member
      - `last_name` string — Last name of the partner team member
      - `personal_stack_key` string — The personal stack key of the partner team member
  - `message` string, required
  - `status` integer, required

## Other responses

- `400` — Bad Request Error
- `401` — Unauthorized Error
- `403` — Forbidden Error
- `404` — Not Found Error
- `500` — Internal Server Error

---

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