openapi: 3.2.0 info: title: Pipeliner Cloud Product Line Items API version: '100' servers: - url: https://us-east.api.pipelinersales.com/api/v100/rest/spaces/{space_id} - url: https://eu-central.api.pipelinersales.com/api/v100/rest/spaces/{space_id} - url: https://ca-central.api.pipelinersales.com/api/v100/rest/spaces/{space_id} - url: https://ap-southeast.api.pipelinersales.com/api/v100/rest/spaces/{space_id} tags: - name: Product Line Items paths: /entities/OpptyProductRelations/{id}: get: description: Returns OpptyProductRelation with given id operationId: OpptyProductRelations.get summary: OpptyProductRelations.get tags: - Product Line Items parameters: - name: id in: path description: ID of OpptyProductRelation to retrieve required: true schema: type: string format: uuid responses: '200': description: OpptyProductRelation data content: application/json: schema: type: object properties: success: type: boolean example: true description: True when response succeeded, false on error. data: $ref: '#/components/schemas/OpptyProductRelation' '404': description: Sent when invalid ID is given content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' delete: description: Removes OpptyProductRelation with given id operationId: OpptyProductRelations.delete summary: OpptyProductRelations.delete tags: - Product Line Items parameters: - name: id in: path description: ID of OpptyProductRelation to delete required: true schema: type: string format: uuid - name: validation-level in: query description: 'Specify validation level of OpptyProductRelation on delete. 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.' schema: type: integer format: int32 responses: '200': description: Removal confirmation content: application/json: schema: type: object properties: success: type: boolean example: true description: True when response succeeded, false on error. data: description: id of deleted OpptyProductRelation type: string format: uuid '404': description: Sent when invalid ID is given content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' patch: description: Modifies OpptyProductRelation or OpptyProductRelations with given id(s) parameters: - name: id in: path description: ID of OpptyProductRelation to update required: true schema: type: string format: uuid - name: validation-level in: query description: 'Specify validation level of OpptyProductRelation on update. 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.' schema: type: integer format: int32 operationId: OpptyProductRelations.update summary: OpptyProductRelations.update tags: - Product Line Items requestBody: description: id(s) of modified item(s) and fields to modify required: true content: application/json: schema: $ref: '#/components/schemas/updateOpptyProductRelationInput' responses: '200': description: Modification confirmation. Returns resulting OpptyProductRelation content: application/json: schema: type: object properties: success: type: boolean example: true description: True when response succeeded, false on error. data: $ref: '#/components/schemas/OpptyProductRelation' '404': description: Sent when invalid ID is given content: application/json: schema: $ref: '#/components/schemas/Error' '500': description: unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' /entities/OpptyProductRelations: get: description: Returns all defined OpptyProductRelations operationId: OpptyProductRelations.list summary: OpptyProductRelations.list tags: - Product Line Items parameters: - name: include-deleted in: query description: if enabled, deleted OpptyProductRelations are returned as well required: false schema: type: boolean - name: first in: query description: 'Number of entities to return from beginning of the result set. Max: 100. Default: 30' required: false schema: type: integer format: int32 - name: last in: query description: 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. required: false schema: type: integer format: int32 - name: before in: query description: Cursor until which to take entities to result set. required: false schema: type: string - name: after in: query description: Cursor after which to start taking entities to result set. required: false schema: type: string - name: expand in: query description: 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. required: false example: expand=owner,sales_unit,account_relations.account schema: type: string - name: order-by in: query description: 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 required: false schema: type: string - name: filter in: query description: 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 required: false schema: type: object style: deepObject allowReserved: true - name: filter-op in: query description: '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 required: false schema: type: object style: deepObject allowReserved: true - name: load-only in: query description: 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. required: false example: load-only=id,name,owner.id schema: type: string responses: '200': description: list of OpptyProductRelations content: application/json: schema: type: object properties: success: type: boolean example: true description: True when response succeeded, false on error. data: type: array items: $ref: '#/components/schemas/OpptyProductRelation' page_info: type: object properties: start_cursor: type: string example: WyIwMSIsICJiMmYwODI0Ni1iYWE5LTQyY2QtYmM3Yi04YmM4MjY3M2E2NTgiXQ== description: Start cursor of result set. end_cursor: type: string example: WyIwNSIsICJmMjZhZjZiMC00ZWE4LTQ3MDgtODU2NC0wN2JmYzI4ZGQ5ZTgiXQ== description: End cursor of result set. has_previous_page: type: boolean example: true description: If result set has previous page (if yes, use start_cursor value in before parameter to load it). has_next_page: type: boolean example: true description: If result set has next page (if yes, use end_cursor value in after parameter to load it). description: Page info result set. Please note it is returned only when legacy limit & offset parameters are not used. '500': description: unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' post: description: Creates new OpptyProductRelation operationId: OpptyProductRelations.create summary: OpptyProductRelations.create tags: - Product Line Items parameters: - name: validation-level in: query description: 'Specify validation level of OpptyProductRelation 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.' schema: type: integer format: int32 requestBody: description: data of new OpptyProductRelation required: true content: application / json: schema: $ref: '#/components/schemas/createOpptyProductRelationInput' responses: '201': description: Creation confirmation. Returns created OpptyProductRelation content: application/json: schema: type: object properties: success: type: boolean example: true description: True when response succeeded, false on error. data: $ref: '#/components/schemas/OpptyProductRelation' '500': description: unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' /entities/OpptyProductRelations/batch-delete: post: description: Removes OpptyProductRelations with given list of ids operationId: OpptyProductRelations.batch_delete summary: OpptyProductRelations.batch_delete tags: - Product Line Items parameters: - name: validation-level in: query description: 'Specify validation level of OpptyProductRelations on delete. 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.' schema: type: integer format: int32 - name: rollback-method in: query description: Specify rollback method for OpptyProductRelations. 0 - rollback all, 1 - rollback only failed records. schema: type: integer format: int32 requestBody: description: List of ids to delete. required: true content: application / json: schema: type: array items: type: string description: An id of entity OpptyProductRelation to delete. format: uuid responses: '200': description: Batch removal confirmation content: application/json: schema: type: object properties: success: type: boolean example: true description: True when response succeeded, false on error. data: type: array items: oneOf: - type: string description: An id of deleted OpptyProductRelation. format: uuid - $ref: '#/components/schemas/Error' '500': description: unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' /entities/OpptyProductRelations/batch-modify: post: description: Create or update an batch of OpptyProductRelations operationId: OpptyProductRelations.batch_create_or_update summary: OpptyProductRelations.batch_create_or_update tags: - Product Line Items parameters: - name: validation-level in: query description: 'Specify validation level of OpptyProductRelations on change. 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.' schema: type: integer format: int32 - name: rollback-method in: query description: Specify rollback method for OpptyProductRelations. 0 - rollback all, 1 - rollback only failed records. schema: type: integer format: int32 requestBody: description: data of new OpptyProductRelation required: true content: application / json: schema: type: array items: $ref: '#/components/schemas/batchOpptyProductRelationInput' responses: '200': description: Creation confirmation. Returns a list of created / updated OpptyProductRelations content: application/json: schema: type: object properties: success: type: boolean example: true description: True when response succeeded, false on error. data: type: array items: oneOf: - type: string description: And ID of created / updated entity. format: uuid - $ref: '#/components/schemas/Error' '500': description: unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' /entities/OpptyProductRelations/batch-restore: post: description: Restores OpptyProductRelations with given list of ids operationId: OpptyProductRelations.batch_restore summary: OpptyProductRelations.batch_restore tags: - Product Line Items parameters: - name: validation-level in: query description: 'Specify validation level of OpptyProductRelations on restore. 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.' schema: type: integer format: int32 - name: rollback-method in: query description: Specify rollback method for OpptyProductRelations. 0 - rollback all, 1 - rollback only failed records. schema: type: integer format: int32 requestBody: description: List of ids to restore. required: true content: application / json: schema: type: array items: type: string description: An id of entity OpptyProductRelation to restore. format: uuid responses: '200': description: Batch restoration confirmation content: application/json: schema: type: object properties: success: type: boolean example: true description: True when response succeeded, false on error. data: type: array items: oneOf: - type: string description: An id of restored OpptyProductRelation. format: uuid - $ref: '#/components/schemas/Error' '500': description: unexpected error content: application/json: schema: $ref: '#/components/schemas/Error' components: schemas: OpptyProductRelation: properties: is_delete_protected: type: boolean example: false description: Tells if the entity instance is protected against delete (Entities that need to be present in the system at any time). Delete action still may fail if entity is deletable, due some other additional validations. readOnly: true id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Unique identifier of entity. readOnly: true is_deleted: type: boolean example: false description: Specifies if the entity is considered deleted. readOnly: true modified: type: string format: date-time example: '2019-01-01T00:00:00' description: Last modification time. readOnly: true created: type: string format: date-time example: '2019-01-01T00:00:00' description: Creation time. readOnly: true currency_exchange_rates_list: type: string format: uri description: 'Currency exchange rate list used to convert this line item, inherited from the parent opportunity or quote. Relation to CurrencyExchangeRatesList. By default it is returned as URI to related resource. Using parameter ''expand'', it will return full entity. See: ''CurrencyExchangeRatesList'' object for properties.' online_form_field: type: string format: uri description: 'Online form field that produced this line item, or empty when not applicable. Relation to Field. By default it is returned as URI to related resource. Using parameter ''expand'', it will return full entity. See: ''Field'' object for properties.' online_form: type: string format: uri description: 'Online form this line item came from when the related opportunity was created through a form submission, or empty otherwise. Relation to OnlineForm. By default it is returned as URI to related resource. Using parameter ''expand'', it will return full entity. See: ''OnlineForm'' object for properties.' oppty: type: string format: uri description: 'Opportunity this line item belongs to. Set on create; mutually exclusive with quote. Relation to Opportunity. By default it is returned as URI to related resource. Using parameter ''expand'', it will return full entity. See: ''Opportunity'' object for properties.' readOnly: true oppty_product_relation_type: type: string format: uri description: 'Line-item type that drives the form layout for this product line. Resolved from the product type on create. Relation to OpptyProductRelationType. By default it is returned as URI to related resource. Using parameter ''expand'', it will return full entity. See: ''OpptyProductRelationType'' object for properties.' paired_oppty_product_relation: type: string format: uri description: 'Counterpart line item on the paired record (e.g. matching line on the active quote when this line is on the opportunity, or vice versa). Empty when there is no pairing. Relation to OpptyProductRelation. By default it is returned as URI to related resource. Using parameter ''expand'', it will return full entity. See: ''OpptyProductRelation'' object for properties.' product: type: string format: uri description: 'Product on this line item. Set on create; cannot be changed afterwards. Relation to Product. By default it is returned as URI to related resource. Using parameter ''expand'', it will return full entity. See: ''Product'' object for properties.' readOnly: true quote: type: string format: uri description: 'Quote this line item belongs to. Mutually exclusive with oppty. Relation to Quote. By default it is returned as URI to related resource. Using parameter ''expand'', it will return full entity. See: ''Quote'' object for properties.' amount: type: number format: double example: '4.32' description: Total amount of the line item (price * quantity, with discounts applied). comment: type: string example: string description: Free-form note describing this line item. currency_exchange_rates_list_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Id of the currency exchange rate list. online_form_field_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Id of the online form field. online_form_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Id of the online form. oppty_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Id of the opportunity. oppty_product_relation_type_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Id of the line-item type. paired_oppty_product_relation_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Id of the paired line item. price: type: number format: double example: '4.32' description: Per-unit price of the line item. Defaults to the product price from the price list when not supplied explicitly. product_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Id of the product. readOnly: true quantity: type: number format: double example: '4.32' description: Number of product units on this line item. quote_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Id of the quote. section_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Identifier of the product section this line belongs to (see the product_sections JSON layout on the parent opportunity or quote). sort_order: type: integer format: int32 example: 1 description: Display order of the line item within its section. Maintained automatically when lines are added or moved. revision: type: integer format: int32 example: 1 description: Revision when entity was lastly changed. revenue_schedule: type: string format: uri description: 'Per-line revenue schedule splitting the line amount across periods. Available only when revenue scheduling is configured at product-amount level. Relation to OpptyProductRelationRevenueSchedule. By default it is returned as URI to related resource. Using parameter ''expand'', it will return full entity. See: ''OpptyProductRelationRevenueSchedule'' object for properties.' discount_value: type: number format: double example: 4.32 description: Absolute monetary discount applied to this line item versus the price-list price. Read-only; computed by Coevera. discount_percentage: type: number format: double example: 4.32 description: Percentage discount applied to this line item versus the price-list price. Read-only; computed by Coevera. modified_by_user: type: string format: date-time example: '2019-01-01T00:00:00' description: Timestamp of the most recent modification made by an end user (excluding system changes). Read-only; computed by Coevera. required: - is_delete_protected - id - oppty_product_relation_type - product - product_id createOpptyProductRelationInput: properties: modified: type: string format: date-time example: '2019-01-01T00:00:00' description: Last modification time. readOnly: true created: type: string format: date-time example: '2019-01-01T00:00:00' description: Creation time. readOnly: true paired_oppty_product_relation: type: object properties: id: type: string format: uri description: 'Counterpart line item on the paired record (e.g. matching line on the active quote when this line is on the opportunity, or vice versa). Empty when there is no pairing. Relation to OpptyProductRelation, see: ''createOpptyProductRelationInput'' object for properties.' amount: type: number format: double example: '4.32' description: Total amount of the line item (price * quantity, with discounts applied). comment: type: string example: string description: Free-form note describing this line item. currency_exchange_rates_list_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Id of the currency exchange rate list. online_form_field_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Id of the online form field. online_form_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Id of the online form. oppty_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Id of the opportunity. oppty_product_relation_type_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Id of the line-item type. paired_oppty_product_relation_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Id of the paired line item. price: type: number format: double example: '4.32' description: Per-unit price of the line item. Defaults to the product price from the price list when not supplied explicitly. product_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Id of the product. readOnly: true quantity: type: number format: double example: '4.32' description: Number of product units on this line item. quote_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Id of the quote. section_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Identifier of the product section this line belongs to (see the product_sections JSON layout on the parent opportunity or quote). sort_order: type: integer format: int32 example: 1 description: Display order of the line item within its section. Maintained automatically when lines are added or moved. revision: type: integer format: int32 example: 1 description: Revision when entity was lastly changed. revenue_schedule: type: object properties: id: type: string format: uri description: 'Per-line revenue schedule splitting the line amount across periods. Available only when revenue scheduling is configured at product-amount level. Relation to OpptyProductRelationRevenueSchedule, see: ''createOpptyProductRelationRevenueScheduleInput'' object for properties.' required: - product_id Error: properties: http_status: description: HTTP status code type: integer example: 400 code: description: Internal API error code type: integer example: 117 name: description: Name of the API error type: string example: ERROR_PARAMETER_INVALID message: description: Description of the API error type: string success: description: Always false on error. type: boolean example: false required: - success - http_status batchOpptyProductRelationInput: properties: paired_oppty_product_relation: type: object properties: id: type: string format: uri description: 'Counterpart line item on the paired record (e.g. matching line on the active quote when this line is on the opportunity, or vice versa). Empty when there is no pairing. Relation to OpptyProductRelation, see: ''updateOpptyProductRelationInput'' object for properties.' amount: type: number format: double example: '4.32' description: Total amount of the line item (price * quantity, with discounts applied). comment: type: string example: string description: Free-form note describing this line item. currency_exchange_rates_list_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Id of the currency exchange rate list. online_form_field_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Id of the online form field. online_form_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Id of the online form. oppty_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Id of the opportunity. oppty_product_relation_type_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Id of the line-item type. paired_oppty_product_relation_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Id of the paired line item. price: type: number format: double example: '4.32' description: Per-unit price of the line item. Defaults to the product price from the price list when not supplied explicitly. quantity: type: number format: double example: '4.32' description: Number of product units on this line item. quote_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Id of the quote. section_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Identifier of the product section this line belongs to (see the product_sections JSON layout on the parent opportunity or quote). sort_order: type: integer format: int32 example: 1 description: Display order of the line item within its section. Maintained automatically when lines are added or moved. revision: type: integer format: int32 example: 1 description: Revision when entity was lastly changed. revenue_schedule: type: object properties: id: type: string format: uri description: 'Per-line revenue schedule splitting the line amount across periods. Available only when revenue scheduling is configured at product-amount level. Relation to OpptyProductRelationRevenueSchedule, see: ''updateOpptyProductRelationRevenueScheduleInput'' object for properties.' id: description: ID of object to update. type: string format: uuid updateOpptyProductRelationInput: properties: paired_oppty_product_relation: type: object properties: id: type: string format: uri description: 'Counterpart line item on the paired record (e.g. matching line on the active quote when this line is on the opportunity, or vice versa). Empty when there is no pairing. Relation to OpptyProductRelation, see: ''updateOpptyProductRelationInput'' object for properties.' amount: type: number format: double example: '4.32' description: Total amount of the line item (price * quantity, with discounts applied). comment: type: string example: string description: Free-form note describing this line item. currency_exchange_rates_list_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Id of the currency exchange rate list. online_form_field_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Id of the online form field. online_form_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Id of the online form. oppty_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Id of the opportunity. oppty_product_relation_type_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Id of the line-item type. paired_oppty_product_relation_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Id of the paired line item. price: type: number format: double example: '4.32' description: Per-unit price of the line item. Defaults to the product price from the price list when not supplied explicitly. quantity: type: number format: double example: '4.32' description: Number of product units on this line item. quote_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Id of the quote. section_id: type: string format: uuid example: 01234567-abcd-dcba-ffff-000000000000 description: Identifier of the product section this line belongs to (see the product_sections JSON layout on the parent opportunity or quote). sort_order: type: integer format: int32 example: 1 description: Display order of the line item within its section. Maintained automatically when lines are added or moved. revision: type: integer format: int32 example: 1 description: Revision when entity was lastly changed. revenue_schedule: type: object properties: id: type: string format: uri description: 'Per-line revenue schedule splitting the line amount across periods. Available only when revenue scheduling is configured at product-amount level. Relation to OpptyProductRelationRevenueSchedule, see: ''updateOpptyProductRelationRevenueScheduleInput'' object for properties.'