openapi: 3.2.0 info: title: Administration Price Lists API version: 1.0.0 servers: - url: https://rls.congacloud.com/api/revenue-admin/v1 security: - Bearer: [] tags: - name: Price Lists paths: /price-lists: delete: tags: - Price Lists summary: Delete price lists description: 'Deletes one or more price lists. Permissions are required to delete price lists. When executed, this API returns one or more records with each record ID''s delete status.' requestBody: description: The list of price lists to delete content: application/json: schema: type: array items: $ref: '#/components/schemas/PriceList' example: - Id: Id of the record to delete text/json: schema: type: array items: $ref: '#/components/schemas/PriceList' application/*+json: schema: type: array items: $ref: '#/components/schemas/PriceList' responses: '200': description: OK get: tags: - Price Lists summary: Retrieve price lists description: 'Retrieves all price lists, with their details. Use query parameters to further narrow the results. When executed, this API returns all price lists.' parameters: - name: filter in: query description: Optional filter parameters schema: type: array items: type: string - name: sort in: query description: Optional sort parameter schema: type: string - name: page in: query description: Page number schema: type: integer format: int32 default: 1 - name: limit in: query description: Number of items per page schema: type: integer format: int32 default: 50 - name: includes in: query description: Optional related entities to include schema: type: array items: type: string - name: field in: query description: Pass Comma separated mulitple fields schema: type: array items: type: string - name: filterExpression in: query description: '' schema: type: string responses: '200': description: OK '204': description: No Content patch: tags: - Price Lists summary: Update price lists description: 'Updates specific fields on one or more price lists. It can update any field except the price list ID. When executed, this API returns the updated price list or price lists.' requestBody: description: The list of price lists with updated data content: application/json: schema: type: array items: type: object additionalProperties: {} example: - Name: PriceListName IsActive: true Account: Id: Account-Id Name: Account-Name BasedOnAdjustmentAmount: 10 BasedOnAdjustmentType: '% Discount' BasedOnPriceList: Id: PriceList-Id Name: PriceList-Name Description: Description DisableCurrencyAdjustment: false Type: '% Discount' Currency: USD Id: Id of the record text/json: schema: type: array items: type: object additionalProperties: {} application/*+json: schema: type: array items: type: object additionalProperties: {} responses: '200': description: OK post: tags: - Price Lists summary: Create price lists description: 'Creates one or more price lists. It can create a maximum of 100 price lists. To create multiple price lists, pass one array for each price list record in the API request. The selling organization can have one price list as the master price list, which will have price list items for all products it sells. The other price lists are based on the master price list with currency conversion and PLI overrides in some cases. The selling organization can have contract prices that are negotiated with customers. You can create a contract price list for each negotiated contract and PLIs for each product that has prices contracted. When executed, this API returns a unique price list ID (string) that CPQ automatically generates.' requestBody: description: The list of price lists to create content: application/json: schema: type: array items: $ref: '#/components/schemas/PriceList' text/json: schema: type: array items: $ref: '#/components/schemas/PriceList' application/*+json: schema: type: array items: $ref: '#/components/schemas/PriceList' responses: '200': description: OK /price-lists/{Id}: delete: tags: - Price Lists summary: Delete a price list description: 'Deletes a price list based on the price list ID passed in the path parameter. Permissions are required to delete a price list. When executed, this API returns a record with the delete status of the associated record ID.' parameters: - name: Id in: path description: The identifier of the price list to delete required: true schema: type: string responses: '200': description: OK get: tags: - Price Lists summary: Retrieve a price list description: 'Retrieves a price list based on the price list ID passed in the path parameter. When executed, this API returns a specific price list with its details.' parameters: - name: Id in: path description: The identifier of the price list required: true schema: type: string - name: includes in: query description: Optional related entities to include schema: type: array items: type: string responses: '200': description: OK content: text/plain: schema: $ref: '#/components/schemas/PriceList' application/json: schema: $ref: '#/components/schemas/PriceList' text/json: schema: $ref: '#/components/schemas/PriceList' '204': description: No Content patch: tags: - Price Lists summary: Update a price list description: 'Updates a specific fields on a price list based on the price list ID passed in the path parameter. When executed, this API returns the updated price list.' parameters: - name: Id in: path description: The identifier of the price list to update required: true schema: type: string requestBody: description: The updated data of the price list content: application/json: schema: type: object additionalProperties: {} example: Name: PriceListName IsActive: true Account: Id: Account-Id Name: Account-Name BasedOnAdjustmentAmount: 10 BasedOnAdjustmentType: '% Discount' BasedOnPriceList: Id: PriceList-Id Name: PriceList-Name Description: Description DisableCurrencyAdjustment: false Type: '% Discount' Currency: USD text/json: schema: type: object additionalProperties: {} application/*+json: schema: type: object additionalProperties: {} responses: '200': description: OK /price-lists/{id}/products: get: tags: - Price Lists summary: Retrieve lookup records for price list description: Retrieves the lookup records for a specific price list based on the identifier. parameters: - name: id in: path description: The ID of the price list required: true schema: type: string - name: page in: query description: The page number schema: type: integer format: int32 default: 1 - name: limit in: query description: The maximum number of records to retrieve per page schema: type: integer format: int32 default: 50 responses: '200': description: OK /price-lists/{parentId}/price-list-categories: delete: tags: - Price Lists summary: Delete price list categories description: Delete price list categories parameters: - name: parentId in: path description: '' required: true schema: type: string requestBody: description: '' content: application/json: schema: type: array items: $ref: '#/components/schemas/PriceListCategory' example: - Id: Id of the record to delete text/json: schema: type: array items: $ref: '#/components/schemas/PriceListCategory' application/*+json: schema: type: array items: $ref: '#/components/schemas/PriceListCategory' responses: '200': description: OK get: tags: - Price Lists summary: Retrieve price list categories description: Retrieve price list categories parameters: - name: parentId in: path description: '' required: true schema: type: string - name: filter in: query description: '' schema: type: array items: type: string - name: sort in: query description: '' schema: type: string - name: page in: query description: '' schema: type: integer format: int32 default: 1 - name: limit in: query description: '' schema: type: integer format: int32 default: 50 - name: includes in: query description: '' schema: type: array items: type: string - name: field in: query description: Pass Comma separated mulitple fields schema: type: array items: type: string - name: filterExpression in: query description: '' schema: type: string responses: '200': description: OK '204': description: No Content patch: tags: - Price Lists summary: Update price list categories description: Update price list categories parameters: - name: parentId in: path description: '' required: true schema: type: string requestBody: description: '' content: application/json: schema: type: array items: type: object additionalProperties: {} example: - Name: PriceListCategoryName IsActive: true Sequence: 1 Hierarchy: Id: Hierarchy-Id Name: Hierarchy-Name PriceList: Id: PriceList-Id Name: PriceList-Name Id: Id of the record text/json: schema: type: array items: type: object additionalProperties: {} application/*+json: schema: type: array items: type: object additionalProperties: {} responses: '200': description: OK post: tags: - Price Lists summary: Create price list categories description: Create price list categories parameters: - name: parentId in: path description: '' required: true schema: type: string requestBody: description: '' content: application/json: schema: type: array items: $ref: '#/components/schemas/PriceListCategory' text/json: schema: type: array items: $ref: '#/components/schemas/PriceListCategory' application/*+json: schema: type: array items: $ref: '#/components/schemas/PriceListCategory' responses: '200': description: OK /price-lists/{parentId}/price-list-categories/{id}: delete: tags: - Price Lists summary: Delete a price list category description: Delete a price list category parameters: - name: parentId in: path description: '' required: true schema: type: string - name: id in: path description: '' required: true schema: type: string responses: '200': description: OK get: tags: - Price Lists summary: Retrieve a price list category description: Retrieve a price list category parameters: - name: parentId in: path description: '' required: true schema: type: string - name: id in: path description: '' required: true schema: type: string responses: '200': description: OK '204': description: No Content patch: tags: - Price Lists summary: Update a price list category description: Update a price list category parameters: - name: parentId in: path description: '' required: true schema: type: string - name: id in: path description: '' required: true schema: type: string requestBody: description: '' content: application/json: schema: type: object additionalProperties: {} example: Name: PriceListCategoryName IsActive: true Sequence: 1 Hierarchy: Id: Hierarchy-Id Name: Hierarchy-Name PriceList: Id: PriceList-Id Name: PriceList-Name text/json: schema: type: object additionalProperties: {} application/*+json: schema: type: object additionalProperties: {} responses: '200': description: OK /price-lists/{parentId}/price-list-items: delete: tags: - Price Lists summary: Delete price list items description: Delete price list items parameters: - name: parentId in: path description: The ID of the parent entity required: true schema: type: string requestBody: description: The list of price list items to delete content: application/json: schema: type: array items: $ref: '#/components/schemas/PriceListItem' example: - Id: Id of the record to delete text/json: schema: type: array items: $ref: '#/components/schemas/PriceListItem' application/*+json: schema: type: array items: $ref: '#/components/schemas/PriceListItem' responses: '200': description: OK '204': description: No Content get: tags: - Price Lists summary: Retrieve price list items description: 'Retrieves all price list items in a price list, with their details. Use query parameters to further narrow the results. When executed, this API returns all price list items in a price list.' parameters: - name: parentId in: path description: The ID of the parent entity required: true schema: type: string - name: filter in: query description: Optional filter conditions schema: type: array items: type: string - name: sort in: query description: Optional sort expression schema: type: string - name: page in: query description: The page number schema: type: integer format: int32 default: 1 - name: limit in: query description: The maximum number of records to retrieve per page schema: type: integer format: int32 default: 50 - name: includes in: query description: Optional related entities to include schema: type: array items: type: string - name: field in: query description: Pass Comma separated mulitple fields schema: type: array items: type: string - name: filterExpression in: query description: '' schema: type: string responses: '200': description: OK '204': description: No Content patch: tags: - Price Lists summary: Update price list items description: 'Updates specific fields on one or more price list items. It can update any field except the price list item ID. When executed, this API returns the updated price list item or items.' parameters: - name: parentId in: path description: The ID of the parent entity required: true schema: type: string requestBody: description: The list of price list items to update content: application/json: schema: type: array items: type: object additionalProperties: {} example: - Name: PriceListItemName IsActive: true AllocateGroupAdjustment: true AllowManualAdjustment: true AllowPriceRampOverlap: true AllowProration: true BillingFrequency: Hourly BillingRule: Bill In Advance ChargeType: Standard Price Criteria: The item criteria specification Description: Description Frequency: Hourly PriceList: Id: PriceList-Id Name: PriceList-Name PriceMethod: Per Unit PriceType: One Time Product: Id: Product-Id Name: Product-Name Id: Id of the record text/json: schema: type: array items: type: object additionalProperties: {} application/*+json: schema: type: array items: type: object additionalProperties: {} responses: '200': description: OK post: tags: - Price Lists summary: Create price list items description: 'creates one or more price list items in a specific price list. It can create a maximum of 1000 price list items. It can create multiple price list items for the same product or multiple products. To create multiple price list items, pass one array for each price list item record in the API request. When executed, this API returns a unique price list item ID (string) that CPQ automatically generates.' parameters: - name: parentId in: path description: The ID of the parent entity required: true schema: type: string requestBody: description: The list of price list items to create content: application/json: schema: type: array items: $ref: '#/components/schemas/PriceListItem' text/json: schema: type: array items: $ref: '#/components/schemas/PriceListItem' application/*+json: schema: type: array items: $ref: '#/components/schemas/PriceListItem' responses: '201': description: Created /price-lists/{parentId}/price-list-items/{id}: delete: tags: - Price Lists summary: Delete a price list item description: 'Deletes a specified price list item in a price list. When executed, this API returns the delete status of associated record ID.' parameters: - name: parentId in: path description: The ID of the parent entity required: true schema: type: string - name: id in: path description: The ID of the price list item to delete required: true schema: type: string responses: '200': description: OK '204': description: No Content get: tags: - Price Lists summary: Retrieve a price list item description: 'Retrieves a price list item in a price list, with their details. Use query parameters to further narrow the results. When executed, this API returns a price list item in a price list.' parameters: - name: parentId in: path description: The ID of the parent entity required: true schema: type: string - name: id in: path description: The ID of the price list item required: true schema: type: string responses: '200': description: OK '204': description: No Content patch: tags: - Price Lists summary: Update a price list item description: 'Updates specific fields on specified price list item. It can update any field except the price list item ID. When executed, this API returns the updated price list item.' parameters: - name: parentId in: path description: The ID of the parent entity required: true schema: type: string - name: id in: path description: The ID of the price list item required: true schema: type: string requestBody: description: The updated price list item content: application/json: schema: type: object additionalProperties: {} example: Name: PriceListItemName IsActive: true AllocateGroupAdjustment: true AllowManualAdjustment: true AllowPriceRampOverlap: true AllowProration: true BillingFrequency: Hourly BillingRule: Bill In Advance ChargeType: Standard Price Criteria: The item criteria specification Description: Description Frequency: Hourly PriceList: Id: PriceList-Id Name: PriceList-Name PriceMethod: Per Unit PriceType: One Time Product: Id: Product-Id Name: Product-Name text/json: schema: type: object additionalProperties: {} application/*+json: schema: type: object additionalProperties: {} responses: '200': description: OK '204': description: No Content /price-lists/{parentId}/price-list-items/{id}/clone: post: tags: - Price Lists summary: Clone a price list item description: Clones a price list item. parameters: - name: parentId in: path description: The ID of the parent entity required: true schema: type: string - name: id in: path description: The identifier of the PriceListItem to clone required: true schema: type: string - name: isDeepCloneObject in: query description: Should deep clone object schema: type: boolean - name: excludeObjects in: query description: Objects to exclude from deep cloning schema: type: array items: type: string requestBody: description: Override fields with field name and value content: application/json: schema: type: object additionalProperties: {} text/json: schema: type: object additionalProperties: {} application/*+json: schema: type: object additionalProperties: {} responses: '201': description: Created '202': description: Accepted '404': description: Not Found /price-lists/{priceListId}/categories: get: tags: - Price Lists summary: Get category records description: 'Returns category records for a given price list. Your request can set the number of records returned per page and the total number of pages.' parameters: - name: priceListId in: path description: '' required: true schema: type: string - name: page in: query description: '' schema: type: integer format: int32 default: 1 - name: limit in: query description: '' schema: type: integer format: int32 default: 50 responses: '200': description: OK components: schemas: CurrencyField: type: object properties: Value: type: number format: double DisplayValue: type: number format: double readOnly: true CurrencyCode: type: - string - 'null' readOnly: true CurrencySymbol: type: - string - 'null' readOnly: true additionalProperties: false PriceListCategory: type: object properties: Id: type: - string - 'null' Name: type: - string - 'null' CreatedBy: $ref: '#/components/schemas/LookupObject' CreatedDate: type: string format: date-time ModifiedBy: $ref: '#/components/schemas/LookupObject' ModifiedDate: type: string format: date-time ExternalId: type: - string - 'null' ETag: type: - string - 'null' Hierarchy: $ref: '#/components/schemas/LookupObject' PriceList: $ref: '#/components/schemas/LookupObject' Sequence: type: - number - 'null' format: double UniqueKey: type: - string - 'null' additionalProperties: {} example: Name: PriceListCategoryName IsActive: true Sequence: 1 Hierarchy: Id: Hierarchy-Id Name: Hierarchy-Name PriceList: Id: PriceList-Id Name: PriceList-Name PriceListItem: type: object properties: Id: type: - string - 'null' Name: type: - string - 'null' CreatedBy: $ref: '#/components/schemas/LookupObject' CreatedDate: type: string format: date-time ModifiedBy: $ref: '#/components/schemas/LookupObject' ModifiedDate: type: string format: date-time ExternalId: type: - string - 'null' ETag: type: - string - 'null' AllocateGroupAdjustment: type: - boolean - 'null' AllowManualAdjustment: type: - boolean - 'null' AllowPriceRampOverlap: type: - boolean - 'null' AllowProration: type: - boolean - 'null' AutoCascadeQuantity: type: - boolean - 'null' AutoCascadeSellingTerm: type: - boolean - 'null' AutoRenew: type: - boolean - 'null' AutoRenewalTerm: type: - number - 'null' format: double AutoRenewalType: type: - string - 'null' BillingFrequency: type: - string - 'null' BillingRule: type: - string - 'null' ChargeType: type: - string - 'null' ContractItemNumber: type: - string - 'null' ContractNumber: type: - string - 'null' ContractPrice: $ref: '#/components/schemas/CurrencyField' Cost: $ref: '#/components/schemas/CurrencyField' Criteria: type: - string - 'null' DefaultPriceDatasource: type: - string - 'null' DefaultPriceFrom: type: - string - 'null' DefaultQuantity: type: - number - 'null' format: double DefaultQuantityDatasource: type: - string - 'null' DefaultQuantityFrom: type: - string - 'null' DefaultSellingTerm: type: - number - 'null' format: double Description: type: - string - 'null' DisableAssetIntegration: type: - boolean - 'null' DisableCostModel: type: - boolean - 'null' DisableSyncWithOpportunity: type: - boolean - 'null' EffectiveDate: type: - string - 'null' format: date-time EnableCommitment: type: - boolean - 'null' EnableRampCreation: type: - boolean - 'null' ExpirationDate: type: - string - 'null' format: date-time Frequency: type: - string - 'null' HasCriteria: type: - boolean - 'null' IsActive: type: - boolean - 'null' IsProductActive: type: - boolean - 'null' IsQuantityReadOnly: type: - boolean - 'null' IsSellingTermReadOnly: type: - boolean - 'null' IsTaxable: type: - boolean - 'null' IsTaxInclusive: type: - boolean - 'null' IsUsageTierModifiable: type: - boolean - 'null' ListPrice: $ref: '#/components/schemas/CurrencyField' MaxPrice: $ref: '#/components/schemas/CurrencyField' MaxUsageQuantity: type: - number - 'null' format: double MinMaxPriceAppliesTo: type: - string - 'null' MinPrice: $ref: '#/components/schemas/CurrencyField' MinUsageQuantity: type: - number - 'null' format: double PriceIncludedInBundle: type: - boolean - 'null' PriceList: $ref: '#/components/schemas/LookupObject' PriceMethod: type: - string - 'null' PriceType: type: - string - 'null' PriceUom: type: - string - 'null' Product: $ref: '#/components/schemas/LookupObject' ProductCode: type: - string - 'null' ProductDescription: type: - string - 'null' ProductFamily: type: - string - 'null' ProductName: type: - string - 'null' RelatedAdjustmentAmount: type: - number - 'null' format: double RelatedAdjustmentAmountSourceId: $ref: '#/components/schemas/LookupObject' RelatedAdjustmentAppliesTo: type: - string - 'null' RelatedAdjustmentType: type: - string - 'null' RelatedItemId: type: - string - 'null' RelatedPercent: type: - number - 'null' format: double RelatedPercentAppliesTo: type: - string - 'null' RollupPriceToBundle: type: - boolean - 'null' Sequence: type: - number - 'null' format: double SubType: type: - string - 'null' Type: type: - string - 'null' Currency: type: - string - 'null' RelatedAdjustmentSource: type: - string - 'null' TaxCode: $ref: '#/components/schemas/LookupObject' additionalProperties: {} example: Name: PriceListItemName IsActive: true AllocateGroupAdjustment: true AllowManualAdjustment: true AllowPriceRampOverlap: true AllowProration: true BillingFrequency: Hourly BillingRule: Bill In Advance ChargeType: Standard Price Criteria: The item criteria specification Description: Description Frequency: Hourly PriceList: Id: PriceList-Id Name: PriceList-Name PriceMethod: Per Unit PriceType: One Time Product: Id: Product-Id Name: Product-Name PriceList: type: object properties: Id: type: - string - 'null' Name: type: - string - 'null' CreatedBy: $ref: '#/components/schemas/LookupObject' CreatedDate: type: string format: date-time ModifiedBy: $ref: '#/components/schemas/LookupObject' ModifiedDate: type: string format: date-time ExternalId: type: - string - 'null' ETag: type: - string - 'null' Account: $ref: '#/components/schemas/LookupObject' BasedOnAdjustmentAmount: type: - number - 'null' format: double BasedOnAdjustmentType: type: - string - 'null' BasedOnPriceList: $ref: '#/components/schemas/LookupObject' ContractNumber: type: - string - 'null' CostModel: type: - string - 'null' Description: type: - string - 'null' DisableCurrencyAdjustment: type: - boolean - 'null' EffectiveDate: type: - string - 'null' format: date-time ExpirationDate: type: - string - 'null' format: date-time IsActive: type: - boolean - 'null' Type: type: - string - 'null' Currency: type: - string - 'null' additionalProperties: {} example: Name: PriceListName IsActive: true Account: Id: Account-Id Name: Account-Name BasedOnAdjustmentAmount: 10 BasedOnAdjustmentType: '% Discount' BasedOnPriceList: Id: PriceList-Id Name: PriceList-Name Description: Description DisableCurrencyAdjustment: false Type: '% Discount' Currency: USD LookupObject: type: object properties: Id: type: - string - 'null' Name: type: - string - 'null' additionalProperties: false securitySchemes: Bearer: type: apiKey description: Please insert JWT with Bearer into field name: Authorization in: header