LogoLogo
HomeSupport centerAPP
  • Overview
    • Quick Start
    • About the API
    • Authentication
  • API Reference
    • REST API
    • GraphQL API
  • Core API Concepts
    • Understanding the CRM Concept
    • Fields
    • API parameters
    • Dates
    • Pagination
    • Bulk Create, Update, Delete
    • Webhooks(Real-time updates)
  • Tutorials & Articles
    • Create Account
    • Create Contact
    • Create Opportunity
    • Create Product, Product Line Item
    • Create Custom Entity Record
    • Upload Document
    • Merging Accounts/Contacts
Powered by GitBook
On this page
  1. Tutorials & Articles

Create Opportunity

PreviousCreate ContactNextCreate Product, Product Line Item

Last updated 1 year ago

This tutorial should help you create the first Opportunity. Before moving forward, make sure your works and you understand the of the Pipeliner API and make sure you know how to use

The Opportunity represents existing potential business for a company. Go to the web Application and Opportunities can be located on the Opportunities screen. Opportunity is always part of the Pipeline and pipeline step.

The Pipeline is the list of steps (eg. First Contact, Proposal, Closed/Won), that represents the life cycle of the opportunity. Set up your first

Tutorial Assignment

Create Opportunity in the Pipeline within the First Step of the Pipeline. This Opportunity will be Linked with an Account(Company) and multiple Contact that belongs to this Account.

0. Required fields

Required API field Name
Description

name

Name of the opportunity

owner_id

Id of the User in Pipeliner Application

closing_date

Expected Closing date. When the opportunity should be closed

step_id

ID of the Pipeline step where the Opportunity should be created

value

The business value of Opportunity, eg. dollar amount. base_value - The Real Business Value in dollars currency_id - The ID of currency saved in Pipeliner value_foreign - The value for currency_id (Use only with multicurrency setup)

1. Prepare Data

Owner_id

{{baseUrl}}/entities/Clients?load-only=id,default_unit_id&filter[email]=john.doe@example.com
{
            "id": "00000000-0000-0000-0000-000000011a7d",
            "default_unit_id": "aba4a358-f3f8-4f55-b3ed-dd5cf589103b"
}

We don´t necessarily need to load the default unit id. If only owner_id is specified in the final request, Pipeliner will automatically create the opportunity with the default User´s sales unit. (See step 2. of this tutorial)

Step_id

Pull Opportunity Pipelines and their steps. Store the ID of the First Step

{{baseUrl}}/entities/Pipelines?expand=steps&filter-op[name]=contains&filter[name]=Test Pipeline
 {
            "is_delete_protected": false,
            "id": "90be8a83-bae8-401d-9e5e-c4564a986270",
            "is_deleted": false,
            "modified": "2020-09-25 10:48:29.825069+00:00",
            "created": "2020-08-12 15:00:21.732550+00:00",
            "color": 16233984,
            "name": "Test Pipeline",
            "revision": 66001,
            "steps": [
                {
                    "is_delete_protected": false,
                    "id": "de115511-5dc1-46c3-86d9-f714457208dd",
                    "is_deleted": false,
                    "modified": "2020-08-12 15:00:21.734413+00:00",
                    "created": "2020-08-12 15:00:21.734454+00:00",
                    "pipeline": "https://us-east.pipelinersales.com/api/v100/rest/spaces/nv3_PipelinerDev/entities/Pipelines/90be8a83-bae8-401d-9e5e-c4564a986270",
                    "name": "First",
                    "percent": 15,
                    "pipeline_id": "90be8a83-bae8-401d-9e5e-c4564a986270",
                    "sort_order": 0,
                    "timeframe": null,
                    "revision": 65654,
                    "documents": [],
                    "step_checklists": []
                }
                
}

Account_id

We are going to search for Accounts by email address. But you can use whatever parameter.

{{baseUrl}}/entities/Accounts?include-deleted=false&filter[email1]=info@ziemann-and-sons.de
{
            "is_delete_protected": false,
            "id": "0bc376a4-c579-413a-9221-e86e4a134766",
            "is_deleted": false,
            "modified": "2019-02-01 10:01:23.011709+00:00",
            "created": "2019-01-30 11:44:23.586083+00:00",
            "account_type": "https://us-east.pipelinersales.com/api/v100/rest/spaces/nv3_PipelinerDev/entities/AccountTypes/a456236f-6f23-0908-abfd-384aa0f62f9e",
            "customer_type": "https://us-east.pipelinersales.com/api/v100/rest/spaces/nv3_PipelinerDev/entities/Data/04444b3a-c669-03bc-2c49-bcd7f047d41a",
            "industry": "https://us-east.pipelinersales.com/api/v100/rest/spaces/nv3_PipelinerDev/entities/Data/acbda72f-2054-0b71-9d42-cb35aaa37600",
            "owner": "https://us-east.pipelinersales.com/api/v100/rest/spaces/nv3_PipelinerDev/entities/Clients/00000000-0000-0000-0000-000000011a3d",
            "parent_account": null,
            "parent_account_relation_type": null,
            "picture": "https://us-east.pipelinersales.com/api/v100/rest/spaces/nv3_PipelinerDev/entities/CloudObjects/5ddfe953-a569-48e1-86bb-271e6506e7d0",
            "unit": "https://us-east.pipelinersales.com/api/v100/rest/spaces/nv3_PipelinerDev/entities/SalesUnits/ea33e8fb-9a56-4802-a175-2d1f406af7cf",
            "account_class": 5,
            "account_type_id": "a456236f-6f23-0908-abfd-384aa0f62f9e",
            "address": "7 Lillian Plaza",
            "city": "Coronda",
            "comments": "",
            "country": "Argentina",
            "customer_type_id": "04444b3a-c669-03bc-2c49-bcd7f047d41a",
            "email1": "info@ziemann-and-sons.de",
            "email2": "",
            "email3": "",
            "email4": "",
            "email5": "",
            "health_category": null,
            "health_status": null,
            "home_page": "www.ziemannandsons.com",
            "industry_id": "acbda72f-2054-0b71-9d42-cb35aaa37600",
            "name": "Ziemann and Sons",
            "owner_id": "00000000-0000-0000-0000-000000011a3d",
            "parent_account_id": null,
            "parent_account_relation_type_id": null,
            "phone1": "+1 (888) 500-8000",
            "..."
        }

Contact_id

We are going to search for Contacts that are linked to the Account. We are going to use Account_id from the previous Step and list all contact_id that exists on the Account

{{baseUrl}}/entities/ContactAccountRelations?filter[account_id]=0bc376a4-c579-413a-9221-e86e4a134766
{
            "is_delete_protected": false,
            "id": "7bb50668-badb-4c4b-a184-2f2be3df4fd8",
            "is_deleted": false,
            "modified": "2019-01-30 11:54:15.289916+00:00",
            "created": "2019-01-30 11:54:15.289965+00:00",
            "account": "https://us-east.pipelinersales.com/api/v100/rest/spaces/nv3_PipelinerDev/entities/Accounts/0bc376a4-c579-413a-9221-e86e4a134766",
            "contact": "https://us-east.pipelinersales.com/api/v100/rest/spaces/nv3_PipelinerDev/entities/Contacts/02bdc9f6-4dfb-479e-84ba-f6c3b96c39ba",
            "account_id": "0bc376a4-c579-413a-9221-e86e4a134766",
            "comment": "",
            "contact_id": "02bdc9f6-4dfb-479e-84ba-f6c3b96c39ba",
            "is_assistant": false,
            "is_primary": true,
            "is_sibling": false,
            "position": "",
            "relationship": 0,
            "revision": 184,
            "account_roles": []
        }

Value

  1. Foreign value (required/optional) - This is the value that the User (SalesPerson) can put into the system. This value is depending on currency_id.

    1. Example: if your salespeople want to have an Opportunity Value in Euro, for currency_id use Euro, into the Foreign value put the amount in Euro

  2. currency_id (Required) - the currency for the opportunity (like dollar, euro, etc.). In Pipeliner there are two types of currencies

  3. base_value (required/optional) - this value is always calculated according to the Base Currency

You can use one of the foreign values, base_value. It depends on what fits you better.

When you define Foreign Currency, then the base value is calculated automatically based on Exchange rates

Value.currency_id

In this tutorial, we don´t use a multi-currency setup, so we are going to search for the base currency (system currency). To retrieve base currency let´s use the following request. Base currency is flagged as is_base:true

{{baseUrl}}/entities/Currencies?filter[is_base]=true
{
            "is_delete_protected": true,
            "id": "c4ca4238-a0b9-0382-0dcc-509a6f75849b",
            "is_deleted": false,
            "modified": "2019-01-30 11:20:40.481012+00:00",
            "created": "2019-01-11 13:47:33.247720+00:00",
            "code": "USD",
            "is_base": true,
            "symbol": "$",
            "revision": 18,
            "currency_exchange_rates": []
}

2. Create Opportunity

Let´s Take data from Step 1. and use them in the following request to create an Opportunity.

{
    "closing_date": "2019-01-01",
    "name": "New Opportunity",
    "owner_id": "00000000-0000-0000-0000-000000011a7d",
    "step_id": "de115511-5dc1-46c3-86d9-f714457208dd",
    "value": {
        "base_value": 100,
        "currency_id": "c4ca4238-a0b9-0382-0dcc-509a6f75849b"
    },
    "account_relations": [
       {
           "account_id": "0bc376a4-c579-413a-9221-e86e4a134766",
           "is_primary": true
           
       }
    ],
    "contact_relations": [
       {
           "contact_id": "02bdc9f6-4dfb-479e-84ba-f6c3b96c39ba",
           "is_primary":true
       }
    ]
}

Possible problems

Error description
Resolution

Error on field account_relations. Exactly one 'is_primary' item must be set.

Use is_primary flag for Account/Contact relation object.

-When creating account relations at least one Account needs to be primary -When creating contact relations at least one Contact needs to be primary

Load an id of the user with the . This user will become the owner of the newly created Opportunity.

- System currency (the main currency)

(custom currencies) - When your business works with multiple currencies

When you define base value, then Foreign Currency is calculated automatically based on

Base currency
Multiple currencies
Exchange rates
Authentication
Key Concepts
API parameters
Pipeline
default sales unit
Opportunity inside the Pipeliner Application
get

Returns all defined Clients

Query parameters
include-deletedbooleanOptional

if enabled, deleted Clients are returned as well

firstinteger · int32Optional

Number of entities to return from beginning of the result set. Max: 100. Default: 30

lastinteger · int32Optional

Return only the "last" number of entities from result set. When used with first parameter, then it returns last M records from the first N records.

beforebooleanOptional

Cursor until which to take entities to result set.

afterbooleanOptional

Cursor after which to start taking entities to result set.

expandstringOptional

Expand related entity. Use api_names of relation fields. You can use multiple values separated via ',' colon. If not used, URI link will be returned instead. You can use dots '.' to expand nested entities as well.

Example: expand=owner,sales_unit,account_relations.account
order-bystringOptional

Order by values. Use api_name of field to sort by ascending. Prefix api_name with '-' to descending sort. You can use multiple values separated via ',' colon.

Example: order-by=created,-modified
filterobjectOptional

Use name of field in braces to filter by this field. To advanced filter, use with combination with filter-op parameter.

Example: filter[name]=Example
filter-opobjectOptional

Filter operator. Specify a way how to filter fields. Supported operators: [eq, ieq, not-eq, not-ieq, contains, starts, ends, icontains, istarts, iends, null, not-null, empty, not-empty, gt, gte, lt, lte, between].

Example: filter-op[name]=eq
load-onlystringOptional

Loads only fields defined within this parameter. You can use multiple values separated via ',' colon. If not used, then all fields are returned. You can use dots '.' to specify load only fields in nested as well.

Example: load-only=id,name,owner.id
Responses
200
list of Clients
application/json
500
unexpected error
application / json
get
GET /api/v100/rest/spaces/<space_id>/entities/Clients HTTP/1.1
Host: us-east.pipelinersales.com
Accept: */*
{
  "success": true,
  "data": [],
  "page_info": {
    "start_cursor": "WyIwMSIsICJiMmYwODI0Ni1iYWE5LTQyY2QtYmM3Yi04YmM4MjY3M2E2NTgiXQ==",
    "end_cursor": "WyIwNSIsICJmMjZhZjZiMC00ZWE4LTQ3MDgtODU2NC0wN2JmYzI4ZGQ5ZTgiXQ==",
    "has_previous_page": true,
    "has_next_page": true
  }
}
get

Returns all defined Pipelines

Query parameters
include-deletedbooleanOptional

if enabled, deleted Pipelines are returned as well

firstinteger · int32Optional

Number of entities to return from beginning of the result set. Max: 100. Default: 30

lastinteger · int32Optional

Return only the "last" number of entities from result set. When used with first parameter, then it returns last M records from the first N records.

beforebooleanOptional

Cursor until which to take entities to result set.

afterbooleanOptional

Cursor after which to start taking entities to result set.

expandstringOptional

Expand related entity. Use api_names of relation fields. You can use multiple values separated via ',' colon. If not used, URI link will be returned instead. You can use dots '.' to expand nested entities as well.

Example: expand=owner,sales_unit,account_relations.account
order-bystringOptional

Order by values. Use api_name of field to sort by ascending. Prefix api_name with '-' to descending sort. You can use multiple values separated via ',' colon.

Example: order-by=created,-modified
filterobjectOptional

Use name of field in braces to filter by this field. To advanced filter, use with combination with filter-op parameter.

Example: filter[name]=Example
filter-opobjectOptional

Filter operator. Specify a way how to filter fields. Supported operators: [eq, ieq, not-eq, not-ieq, contains, starts, ends, icontains, istarts, iends, null, not-null, empty, not-empty, gt, gte, lt, lte, between].

Example: filter-op[name]=eq
load-onlystringOptional

Loads only fields defined within this parameter. You can use multiple values separated via ',' colon. If not used, then all fields are returned. You can use dots '.' to specify load only fields in nested as well.

Example: load-only=id,name,owner.id
Responses
200
list of Pipelines
application/json
500
unexpected error
application / json
get
GET /api/v100/rest/spaces/<space_id>/entities/Pipelines HTTP/1.1
Host: us-east.pipelinersales.com
Accept: */*
{
  "success": true,
  "data": [],
  "page_info": {
    "start_cursor": "WyIwMSIsICJiMmYwODI0Ni1iYWE5LTQyY2QtYmM3Yi04YmM4MjY3M2E2NTgiXQ==",
    "end_cursor": "WyIwNSIsICJmMjZhZjZiMC00ZWE4LTQ3MDgtODU2NC0wN2JmYzI4ZGQ5ZTgiXQ==",
    "has_previous_page": true,
    "has_next_page": true
  }
}
get

Returns all defined ContactAccountRelations

Query parameters
include-deletedbooleanOptional

if enabled, deleted ContactAccountRelations are returned as well

firstinteger · int32Optional

Number of entities to return from beginning of the result set. Max: 100. Default: 30

lastinteger · int32Optional

Return only the "last" number of entities from result set. When used with first parameter, then it returns last M records from the first N records.

beforebooleanOptional

Cursor until which to take entities to result set.

afterbooleanOptional

Cursor after which to start taking entities to result set.

expandstringOptional

Expand related entity. Use api_names of relation fields. You can use multiple values separated via ',' colon. If not used, URI link will be returned instead. You can use dots '.' to expand nested entities as well.

Example: expand=owner,sales_unit,account_relations.account
order-bystringOptional

Order by values. Use api_name of field to sort by ascending. Prefix api_name with '-' to descending sort. You can use multiple values separated via ',' colon.

Example: order-by=created,-modified
filterobjectOptional

Use name of field in braces to filter by this field. To advanced filter, use with combination with filter-op parameter.

Example: filter[name]=Example
filter-opobjectOptional

Filter operator. Specify a way how to filter fields. Supported operators: [eq, ieq, not-eq, not-ieq, contains, starts, ends, icontains, istarts, iends, null, not-null, empty, not-empty, gt, gte, lt, lte, between].

Example: filter-op[name]=eq
load-onlystringOptional

Loads only fields defined within this parameter. You can use multiple values separated via ',' colon. If not used, then all fields are returned. You can use dots '.' to specify load only fields in nested as well.

Example: load-only=id,name,owner.id
Responses
200
list of ContactAccountRelations
application/json
500
unexpected error
application / json
get
GET /api/v100/rest/spaces/<space_id>/entities/ContactAccountRelations HTTP/1.1
Host: us-east.pipelinersales.com
Accept: */*
{
  "success": true,
  "data": [],
  "page_info": {
    "start_cursor": "WyIwMSIsICJiMmYwODI0Ni1iYWE5LTQyY2QtYmM3Yi04YmM4MjY3M2E2NTgiXQ==",
    "end_cursor": "WyIwNSIsICJmMjZhZjZiMC00ZWE4LTQ3MDgtODU2NC0wN2JmYzI4ZGQ5ZTgiXQ==",
    "has_previous_page": true,
    "has_next_page": true
  }
}
get

Returns all defined Currencies

Query parameters
include-deletedbooleanOptional

if enabled, deleted Currencies are returned as well

firstinteger · int32Optional

Number of entities to return from beginning of the result set. Max: 100. Default: 30

lastinteger · int32Optional

Return only the "last" number of entities from result set. When used with first parameter, then it returns last M records from the first N records.

beforebooleanOptional

Cursor until which to take entities to result set.

afterbooleanOptional

Cursor after which to start taking entities to result set.

expandstringOptional

Expand related entity. Use api_names of relation fields. You can use multiple values separated via ',' colon. If not used, URI link will be returned instead. You can use dots '.' to expand nested entities as well.

Example: expand=owner,sales_unit,account_relations.account
order-bystringOptional

Order by values. Use api_name of field to sort by ascending. Prefix api_name with '-' to descending sort. You can use multiple values separated via ',' colon.

Example: order-by=created,-modified
filterobjectOptional

Use name of field in braces to filter by this field. To advanced filter, use with combination with filter-op parameter.

Example: filter[name]=Example
filter-opobjectOptional

Filter operator. Specify a way how to filter fields. Supported operators: [eq, ieq, not-eq, not-ieq, contains, starts, ends, icontains, istarts, iends, null, not-null, empty, not-empty, gt, gte, lt, lte, between].

Example: filter-op[name]=eq
load-onlystringOptional

Loads only fields defined within this parameter. You can use multiple values separated via ',' colon. If not used, then all fields are returned. You can use dots '.' to specify load only fields in nested as well.

Example: load-only=id,name,owner.id
Responses
200
list of Currencies
application/json
500
unexpected error
application / json
get
GET /api/v100/rest/spaces/<space_id>/entities/Currencies HTTP/1.1
Host: us-east.pipelinersales.com
Accept: */*
{
  "success": true,
  "data": [],
  "page_info": {
    "start_cursor": "WyIwMSIsICJiMmYwODI0Ni1iYWE5LTQyY2QtYmM3Yi04YmM4MjY3M2E2NTgiXQ==",
    "end_cursor": "WyIwNSIsICJmMjZhZjZiMC00ZWE4LTQ3MDgtODU2NC0wN2JmYzI4ZGQ5ZTgiXQ==",
    "has_previous_page": true,
    "has_next_page": true
  }
}
  • Tutorial Assignment
  • 0. Required fields
  • 1. Prepare Data
  • GET/entities/Clients
  • GET/entities/Pipelines
  • GET/entities/ContactAccountRelations
  • GET/entities/Currencies
  • 2. Create Opportunity
  • POST/entities/Opportunities
post

Creates new opportunity

Query parameters
validation-levelinteger · int32Optional

Specify validation level of opportunity on create. Use them as bit mask: 0 - validate each field on entity, 2 - validate only changed fields, 4 - validate only system fields, 8 - allows to override readonly fields, 16 - allows to set entity on deleted relationship.

Body
modifiedstring · date-timeRead-onlyOptional

Last modification time.

Example: 2019-01-01T00:00:00
createdstring · date-timeOptional

Creation time.

Example: 2019-01-01T00:00:00
closing_datestring · dateRequired

Closing date of the Opportunity.

Example: 2019-01-01
descriptionstringOptional

Multi-line text input field.

Example: string
is_archivedbooleanOptional

Boolean value.

Example: false
is_value_auto_calculatebooleanOptional

Boolean value.

Example: false
label_flagstring · enumOptional

Opportunity label flag.

Options: Priority = 1 (0b001) Hot = 2 (0b010) Stalled = 4 (0b100)

Example: 1Possible values:
namestringRequired

Name of the entity and its default text representation.

Example: string
oppty_type_idstring · uuidOptional

Relation to single entity instance.

Example: 01234567-abcd-dcba-ffff-000000000000
owner_idstring · uuidRequired

Relation to single entity instance.

Example: 01234567-abcd-dcba-ffff-000000000000
product_currency_idstring · uuidOptional

Relation to single entity instance.

Example: 01234567-abcd-dcba-ffff-000000000000
product_price_list_idstring · uuidOptional

Relation to single entity instance.

Example: 01234567-abcd-dcba-ffff-000000000000
product_sectionsobjectOptional

Product sections on Opportunity in json format

quick_account_emailstringOptional

Simple text input field.

Example: string
quick_account_namestringOptional

Simple text input field.

Example: string
quick_account_phonestringOptional

Simple text input field.

Example: string
quick_contact_namestringOptional

Simple text input field.

Example: string
quick_emailstringOptional

Simple text input field.

Example: string
quick_phonestringOptional

Simple text input field.

Example: string
rankinginteger · int32Optional

Qualitative ranking of the opportunity.

Example: 1
reason_of_close_descriptionstringOptional

Multi-line text input field.

Example: string
reason_of_close_idstring · uuidOptional

Relation to single entity instance.

Example: 01234567-abcd-dcba-ffff-000000000000
share_modeinteger · enumOptional

Integer enum value: 0 - Standard, 1 - Private, 2 - AllView, 3 - AllEdit

Example: 0Possible values:
step_idstring · uuidRequired

Relation to single entity instance.

Example: 01234567-abcd-dcba-ffff-000000000000
unit_idstring · uuidOptional

Relation to single entity instance.

Example: 01234567-abcd-dcba-ffff-000000000000
was_qualifiedbooleanOptional

Boolean value.

Example: false
revisioninteger · int32Optional

Revision when entity was lastly changed.

Example: 1
won_datestring · date-timeOptionalExample: 2019-01-01T00:00:00
lost_datestring · date-timeOptionalExample: 2019-01-01T00:00:00
Responses
201
Creation confirmation. Returns created opportunity
application/json
500
unexpected error
application / json
post
POST /api/v100/rest/spaces/<space_id>/entities/Opportunities HTTP/1.1
Host: us-east.pipelinersales.com
Content-Type: application / json
Accept: */*
Content-Length: 1406

{
  "created": "2019-01-01T00:00:00",
  "closing_date": "2019-01-01",
  "description": "string",
  "is_archived": false,
  "is_value_auto_calculate": false,
  "label_flag": 1,
  "name": "string",
  "oppty_type_id": "01234567-abcd-dcba-ffff-000000000000",
  "owner_id": "01234567-abcd-dcba-ffff-000000000000",
  "product_currency_id": "01234567-abcd-dcba-ffff-000000000000",
  "product_price_list_id": "01234567-abcd-dcba-ffff-000000000000",
  "product_sections": {},
  "quick_account_email": "string",
  "quick_account_name": "string",
  "quick_account_phone": "string",
  "quick_contact_name": "string",
  "quick_email": "string",
  "quick_phone": "string",
  "ranking": 1,
  "reason_of_close_description": "string",
  "reason_of_close_id": "01234567-abcd-dcba-ffff-000000000000",
  "share_mode": 0,
  "step_id": "01234567-abcd-dcba-ffff-000000000000",
  "unit_id": "01234567-abcd-dcba-ffff-000000000000",
  "was_qualified": false,
  "revision": 1,
  "value": {
    "base_value": "4.32",
    "currency_id": "01234567-abcd-dcba-ffff-000000000000",
    "value_foreign": "4.32"
  },
  "oppty_recurrence": {
    "id": "https://example.com"
  },
  "revenue_schedule": {
    "id": "https://example.com"
  },
  "product_relations": [
    {
      "id": "https://example.com"
    }
  ],
  "contact_relations": [
    {
      "id": "https://example.com"
    }
  ],
  "account_relations": [
    {
      "id": "https://example.com"
    }
  ],
  "documents": [
    {
      "id": "https://example.com"
    }
  ],
  "won_date": "2019-01-01T00:00:00",
  "lost_date": "2019-01-01T00:00:00",
  "sharing_units": [
    {
      "id": "https://example.com"
    }
  ],
  "sharing_clients": [
    {
      "id": "https://example.com"
    }
  ]
}
{
  "success": true,
  "data": {
    "is_delete_protected": false,
    "id": "01234567-abcd-dcba-ffff-000000000000",
    "is_deleted": false,
    "modified": "2019-01-01T00:00:00",
    "created": "2019-01-01T00:00:00",
    "oppty_type": "https://example.com",
    "owner": "https://example.com",
    "product_currency": "https://example.com",
    "product_price_list": "https://example.com",
    "reason_of_close": "https://example.com",
    "step": "https://example.com",
    "unit": "https://example.com",
    "closing_date": "2019-01-01",
    "description": "string",
    "is_archived": false,
    "is_value_auto_calculate": false,
    "label_flag": 1,
    "name": "string",
    "oppty_type_id": "01234567-abcd-dcba-ffff-000000000000",
    "owner_id": "01234567-abcd-dcba-ffff-000000000000",
    "product_currency_id": "01234567-abcd-dcba-ffff-000000000000",
    "product_price_list_id": "01234567-abcd-dcba-ffff-000000000000",
    "product_sections": {},
    "quick_account_email": "string",
    "quick_account_name": "string",
    "quick_account_phone": "string",
    "quick_contact_name": "string",
    "quick_email": "string",
    "quick_phone": "string",
    "ranking": 1,
    "reason_of_close_description": "string",
    "reason_of_close_id": "01234567-abcd-dcba-ffff-000000000000",
    "share_mode": 0,
    "step_id": "01234567-abcd-dcba-ffff-000000000000",
    "unit_id": "01234567-abcd-dcba-ffff-000000000000",
    "was_qualified": false,
    "revision": 1,
    "value": {
      "base_value": "4.32",
      "currency_id": "01234567-abcd-dcba-ffff-000000000000",
      "value_foreign": "4.32"
    },
    "oppty_recurrence": "https://example.com",
    "revenue_schedule": "https://example.com",
    "product_relations": [
      "https://example.com"
    ],
    "primary_contact": "https://example.com",
    "primary_account": "https://example.com",
    "contact_relations": [
      "https://example.com"
    ],
    "account_relations": [
      "https://example.com"
    ],
    "documents": [
      "https://example.com"
    ],
    "status": 1,
    "qualify_date": "2019-01-01T00:00:00",
    "won_date": "2019-01-01T00:00:00",
    "lost_date": "2019-01-01T00:00:00",
    "days_in_step": 1,
    "is_favorite": false,
    "sharing_units": [
      "https://example.com"
    ],
    "sharing_clients": [
      "https://example.com"
    ],
    "fitness_description": {
      "is_won": false,
      "is_overdue": false,
      "activities_on_time": 1,
      "scheduled_activity": 1,
      "fitness": 1
    },
    "formatted_name": "string"
  }
}