API Documentation

In-depth reference documentation for iQmetrix API's.

NAV

OVERVIEW

Pricing information for products can be retrieved and managed using the Pricing API.

Distinct pricing information can be set for any level of the company’s Company Tree. Note that multiple currencies are not supported; the assumed currency is the default currency of the retailer.

Company- and Location-Level Pricing

When product pricing is set at the company level, all locations (entities) within the company will use company pricing unless a price is set specifically for the location. Where local pricing is set, the local pricing overrides the company-level pricing.

For information about how entities inherit properties from their company, see Company Tree Inheritance.

Language Support for Pricing Groups, Tiers, and Shelves

The system can store a name and description for a pricing group, pricing tier, or a pricing shelf in any or all of the supported languages. To set or retrieve one of these properties in a particular language, include both the Accept-Language and Content-Language headers, using the appropriate language specifier as the parameter.

Accept-Language: es-mx

Content-Language: es-mx

You can store one name and one description for each supported language.

Sale Prices and Override Dates

Sale prices, also called “override” prices, can be set for an item to override its regular price. You can set a sale price for a given duration of time or simply put it into effect.

To set a sale price for a duration, set the price and provide the dates as StartOverrideDateUtc and StopOverrideDateUtc.

To set a sale price that comes into effect immediately and stays in effect until removed, set the override price but not the override dates.

BASE URLS

Demo : https://pricingdemo.iqmetrix.net/v1
Production: https://pricing.iqmetrix.net/v1

RESOURCES

CalculatedTieredPrice

The CalculatedTieredPrice resource returns tier-based pricing for an item, based on submitted information (for example, pricing shelf or pricing group) and the quantity being purchased. To calculate tier-based pricing, use the Calculate Tier-Based Pricing request.

{
    "Id": 21482052,
    "PricingTierId":  312,
    "RegularPricePerUnit": 58.99,
    "OverridePricePerUnit": 55.79,
    "Quantity": 15,
    "CompanyId": 336288,
    "EntityId": 336288,
    "CatalogItemId": "2b0ba998-7e8b-4a24-a040-79311f79787f",
    "PricingGroupId": null,
    "PricingShelfId": null
}
Name Description
Id (Integer) The identifier of the calculated-tier record.
PricingTierId (Integer) Calculated. The pricing tier associated with the item.
RegularPricePerUnit (Decimal) The price per unit of the item. Total price is this price times quantity.
OverridePricePerUnit (Decimal) The override (sale) price per unit, if it has been set.
Quantity (Integer) The quantity being purchased.
CompanyId (Integer) The identifier of the company associated with this pricing record.
EntityId (Integer) The entity this price is set for.
CatalogItemId (GUID) The identifier of the item in the iQmetrix Product Catalog.

ChangedPrice

The ChangedPrice resource is a PricingInformation resource with an additional LastModifiedDateUtc property that records the last time the price was updated.

{
    "Id": 24,
    "CompanyId": 91416,
    "EntityId": 91452,
    "CatalogItemId": "535e1ed9-34c8-4402-89c1-48160eb1e9d0",
    "PricingTermId": null,
    "RegularPrice": 29.99,
    "IsDiscountable": true,
    "FloorPrice": 10,
    "OriginalPrice": 15,
    "PricingTierId": null,
    "PricingGroupId": null,
    "PricingShelfId": null,
    "OverridePriceId": null,
    "OverridePrice": null,
    "OverrideStartDateUtc": null,
    "OverrideStopDateUtc": null,
    "LastModifiedDateUtc": "2017-12-02T00:00:00"
}

For a description of the properties defined for the PricingInformation resource, see PricingInformation.

Name Description
LastModifiedDateUtc (DateTime) The last time the price was changed, in UTC.

CloneProductPrices

The CloneProductPrices resource allows you to clone a pricing record defined for an item and apply it to another item.

{
    "Id": "7626dfd4-7f16-463b-b01d-71d14dcd41cf",
    "FromCatalogItemId": "4737f73e-a624-4456-8f3b-fb4d26eaeae2",
    "ToCatalogItemId": "4737f73e-a624-4456-8f3b-fb4d26eaeae2"
}
Name Description
Id (GUID) Internal-only. An identifier for this cloning resource.
FromCatalogItemId (GUID) The identifier of the item associated with the pricing record being cloned.
ToCatalogItemId (GUID) The identifier of the item to which the cloned pricing record is being applied.

PricingGroup

The PricingGroup resource describes a group of customers who all receive a certain price or discount–for example, seniors, employees, or friends and family. Any customer recorded in the Customers API can be assigned to a pricing group.

Pricing groups can only be soft-deleted (IsDeleted set to true); they cannot be fully deleted.

{
    "Id": 287,
    "CompanyId": 336288,
    "GroupName": "Employees",
    "Description": "Employees 10% Off",
    "IsDeleted": "false"
}
Name Description
Id (Integer) System-generated. The identifier of the pricing group.
CompanyId (GUID) The identifier of the company creating the pricing group. This value is read-only after the pricing group record has been created.
GroupName (String) The name for the pricing group. Maximum 255 characters. You can set a pricing group name in any or all supported languages, by including the Accept-Language and Content-Language headers.
Description (String) A description for the pricing group. Maximum 1000 characters. You can set a pricing group description in any or all supported languages, by including the Accept-Language and Content-Language headers.
IsDeleted (Boolean) Indicates whether this pricing group has been deleted (true) or is active (false). (Pricing groups can only be soft-deleted.) The default is false.

PricingInformation

A PricingInformation resource provides pricing details for a given product.

The PricingInformation resource is an earlier version of the main pricing resource. Records are created, updated, and deleted using the Pricing endpoint. In general, the PricingInformation resource has been replaced by the more complete ProductPrice resource.

{
    "Id": 24,
    "CompanyId": 91416,
    "EntityId": 91452,
    "CatalogItemId": "535e1ed9-34c8-4402-89c1-48160eb1e9d0",
    "PricingTermId": null,
    "RegularPrice": 29.99,
    "IsDiscountable": true,
    "FloorPrice": 10,
    "OriginalPrice": 15,
    "PricingTierId": null,
    "PricingGroupId": null,
    "PricingShelfId": null,
    "OverridePriceId": null,
    "OverridePrice": null,
    "OverrideStartDateUtc": null,
    "OverrideStopDateUtc": null
}

Name Description
Id (Integer) System-generated. The identifier of the pricing record.
CompanyId (Integer) The identifier of the company.
EntityId (Integer) The identifier of the entity.
CatalogItemId (GUID) The identifier of the product in the iQmetrix Product Library. If this property is not null, the PricingShelfId property must be set to null. This property is read-only for PUT operations.
PricingTermId (Integer) The identifier of a pricing term resource associated with this resource.
RegularPrice (Decimal) The regular price of the item. Must be greater than or equal to 0.
IsDiscountable (Boolean) Indicates whether the price of the product may be discounted (true) or not (false). Not enforced by the API.
FloorPrice (Decimal) The minimum price that may be charged for this item.
OriginalPrice (Decimal) The original price of the item.
PricingTierId (Integer) The identifier of a pricing tier associated with this price resource.
PricingGroupId (Integer) The identifier of a pricing group associated with this price resource.
PricingShelfId (Integer) The identifier of a pricing shelf associated with this price resource. Note: If not null, CatalogItemId must be set to an empty GUID. This property is read-only for PUT operations.
OverridePrice (Decimal) The override, or sale, price of an item.
OverrideStartDateUtc (DateTime) The date the override price comes into effect, in UTC.
OverrideStopDateUtc (DateTime) The date the override price becomes inactive, in UTC.

PricingShelf

Imagine a shelf in a store with a sign that says, “All items on this shelf are $10.00.” A PricingShelf resource allows you to define a “shelf” set at a certain price and associate products with the shelf price.

{
    "Id": 351,
    "CompanyId": 336288,
    "ShelfName": "Clearance",
    "Description": "Clearance - 60% Off"
}
Name Description
Id (Integer) System-generated. The identifier of the pricing shelf.
CompanyId (Integer) The identifier of the company. This value is read-only after the shelf has been created.
ShelfName (String) A name for the pricing shelf. Maximum 255 characters. You can set a pricing shelf name in any or all supported languages, by including the Accept-Language and Content-Language headers.
Description (String) A description for the pricing shelf. Maximum 1000 characters. You can set a pricing shelf description in any or all supported languages, by including the Accept-Language and Content-Language headers.

PricingShelfPrices

A PricingShelfPrices resource lists the set of prices associated with a pricing shelf. Prices are associated with a shelf by setting the PricingShelfId property within the particular pricing resource.

{
    "Id": 351,
    "Prices": [
        9.99,
        8.79
    ]
}
Name Description
Id (Integer) System-generated. The identifier of the pricing shelf.
Prices Array[Decimal] A list of prices that have been associated with the pricing shelf.

PricingShelfProduct

A PricingShelfProduct resource associates a catalog item with a pricing shelf.

{
    "CompanyId": 336288,
    "Id": "67f02ff3-7527-44a3-846a-a4b3ffd87fa6",
    "PricingShelfId": 351
}
Name Description
CompanyId (Integer) The identifier of the company.
Id (GUID) The identifier of the product in the iQmetrix Product Catalog.
PricingShelfId (Integer) The identifier of the pricing shelf.

PricingTerm

A PricingTerm resource describes the terms for a type of pricing.

{
    "Id": 251,
    "EntityId": 94146,
    "Name": "4-year",
    "Active": true,
    "TermLengthInYears": 4,
    "DisplayName": "4-Year Contract",
    "CarrierEntityId": null
}
Name Description
Id (Integer) System-generated. The identifier for the pricing term.
EntityId (Integer) The identifier of the entity.
Name (String) A name for the pricing term.
Active (Boolean) Indicates whether the pricing term is active (true) or inactive (false). The default is true.
NumberOfPayments (Integer) For pricing terms that include financing, the number of payments. If the term is not financed, set this value to null.
CanFinance (Boolean) Indicates whether the item(s) associated with this pricing term can be financed (true) or not (false).
TermLengthInYears (Integer) The length of the term.
DisplayName (String) The public-facing display name. You can set a pricing term display name in any or all supported languages, by including the Accept-Language and Content-Language headers.
CarrierEntityId (Integer) The carrier associated with the term, if any.

PricingTier

A PricingTier resource allows you to set tier-based pricing.

{
    "Id": 192,
    "CompanyId": 336288,
    "TierName": "Tier A",
    "QuantityLowerBound": 10
}
Name Description
Id (Integer) System-generated. The identifier for the pricing tier.
CompanyId (Integer) The identifier of the company this pricing tier belongs to.
TierName (String) A name for the pricing term. You can set a pricing tier name in any or all supported languages, by including the Accept-Language and Content-Language headers.
QuantityLowerBound (Integer) The bottom bound of the tier, inclusive of the bottom bound. If set to null, there is no bottom bound.

ProductPrice

The ProductPrice resource is the main pricing resource.

The ProductPrice resource replaces the earlier PricingInformation resource. It consolidates all the prices that have been defined for a product: terms, tiers, shelves, groups, and sale prices. Records are created, updated, and deleted using the ProductPrices endpoint.

{
    "EntityId": 91452,
    "CatalogItemId": "535e1ed9-34c8-4402-89c1-48160eb1e9d0",
    "PricingTermId": null,
    "RegularPrice": 29.99,
    "IsDiscountable": true,
    "FloorPrice": 10,
    "OriginalPrice": 15,
    "OverridePriceId": null,
    "OverridePrice": null,
    "OverrideStartDateUtc": null,
    "OverrideStopDateUtc": null,
    "PricingTierId": null,
    "PricingGroupId": null,
    "PricingShelfId": null,
    "SalePrices": []
}
Name Description
Id (Integer) System-generated. The identifier of the price resource.
EntityId (Integer) The identifier of the entity for which this pricing is in effect.
CatalogItemId (GUID) The identifier of the item in the iQmetrix Product Catalog.
PricingTermId (Integer) The identifier of a pricing term associated with this price resource.
PricingTierId (Integer) The identifier of a pricing tier associated with this price resource.
PricingGroupId (Integer) The identifier of a pricing group associated with this price resource.
PricingShelfId (Integer) The identifier of a pricing shelf associated with this price resource. Note: If not null, CatalogItemId must be set to an empty GUID. This property is read-only for PUT operations.
RegularPrice (Decimal) The regular price of the item. Must be greater than or equal to 0.
IsDiscountable (Boolean) Indicates whether the price of the product may be discounted (true) or not (false). Not enforced by the API.
FloorPrice (Decimal) The minimum price that may be charged for this item.
OriginalPrice (Decimal) The original price of the item.
PricingTermResource (PricingTerm]) Read-only. The pricing term resource specified by PricingTermId.
PricingTierResource (PricingTier) Read-only. The pricing term resource specified by PricingTierId.
PricingGroupResource (PricingGroup) Read-only. The pricing group specified by PricingGroupId.
PricingShelfResource (PricingGroup) Read-only. The pricing shelf specified by PricingShelfId.
SalePrices Array[SalePriceItem] A collection of sale prices associated with the product price.

SaleOverridePrice

The SaleOverridePrice allows you to set a sale pricing associated with a PricingInformation resource. This resource allows you to distinguish between a default sale price and a sale price that takes effect within a start and stop date.

When the sale override price is being determined for a pricing information resource:

{
    "Id": 1177,
    "CompanyId": 14146,
    "IsDefault": true,
    "PricingInformationId": 16446,
    "SalePrice": 3.99,
    "StartDateUTC": "2017-12-02T00:00:00",
    "StopDateUTC": "2017-12-31T00:00:00"
}
Name Description
Id (Integer) The identifier of the sale override pricing record.
CompanyId (Integer) The identifier of the company.
IsDefault (Boolean) Indicates whether this is a default sale price (true) or not (false).
PricingInformationId (Integer) The identifier of the PricingInformation record this sale price overrides.
SalePrice (Decimal) The sale (override) price.
StartDateUTC (DateTime) The date and time the sale pricing begins, in UTC.
StopDateUTC (DateTime) The date and time the sale pricing ends, in UTC.

SalePriceItem

The SalePriceItem resource allows you to set a sale price that starts and stops on a certain date. This information is used by the ProductPrice resource.

{
    "Id": 1177,
    "SalePrice": 3.99,
    "StartDateUTC": "2018-07-01T00:00:00",
    "StopDateUTC": "2018-07-31T00:00:00"
}
Name Description
Id (Integer) System-generated. The identifier of the sale price item resource.
SalePrice (Decimal) The sale price.
StartDateUTC (DateTime) Date and time the sale pricing begins, in UTC.
StopDateUTC (DateTime) Date and time the sale pricing ends, in UTC.

ENUMERATIONS

Language

Language Specifier Country
en-us English as used in the United States.
fr-ca French as used in Canada.
es-mx Spanish as used in Mexico.

REQUESTS

Upsert a Pricing Information Record

Use this request to create or update a pricing information record. The POST method on the /Pricing endpoint initiates an upsert operation: it will either create or update the record, depending on whether it currently exists or not. Using this endpoint, you can:

Request

POST /Companies({CompanyId})/Pricing

Example Request

POST /Companies(336288)/Pricing
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json
Content-Type: application/json

{
    "EntityId": 336288,
    "CatalogItemId": "17562453-3791-41bc-992f-fd1b0b22d10e",
    "PricingTermId": null,
    "RegularPrice": 29.99,
    "IsDiscountable": true,
    "FloorPrice": 10,
    "OriginalPrice": 15,
    "OverridePriceId": null,
    "OverridePrice": null,
    "OverrideStartDateUtc": null,
    "OverrideStopDateUtc": null,
    "PricingTierId": null,
    "PricingGroupId": null,
    "PricingShelfId": null
}

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.

Request Parameters

Name Description
Id (Integer) Required for update; ignored for create. The identifier of a pricing record.
EntityId (Integer) Required. The identifier of the entity. For company-level pricing, use the company identifier here. For entity-level pricing, use the entity identifier.
CatalogItemId (GUID) The identifier of the product in the iQmetrix Product Library. Exactly one of CatalogItemId and PricingShelfId must be specified. If CatalogItemId is specified, the PricingShelfId property must be set to null. If PricingShelfId is specified, CatalogItemId must be set to an empty GUID. Once the pricing record is created, CatalogItemId becomes read-only, including for PUT operations.
PricingTermId (Integer) Optional. The identifier of a pricing term resource associated with this resource.
RegularPrice (Decimal) Required. The regular price of the item. Must be greater than or equal to 0.
IsDiscountable (Boolean) Optional. Indicates whether the price of the product may be discounted (true) or not (false). Not enforced by the API.
FloorPrice (Decimal) Optional. The minimum price that may be charged for this item.
OriginalPrice (Decimal) Optional. The original price of the item.
PricingTierId (Integer) Optional. The identifier of a pricing tier associated with this price resource.
PricingGroupId (Integer) Optional. The identifier of a pricing group associated with this price resource.
PricingShelfId (Integer) The identifier of a pricing shelf associated with this price resource. Exactly one of CatalogItemId and PricingShelfId must be specified. If CatalogItemId is specified, the PricingShelfId property must be set to null. If PricingShelfId is specified, CatalogItemId must be set to an empty GUID.
OverridePrice (Decimal) Optional. The override, or sale, price of an item.
OverrideStartDateUtc (DateTime) Optional. The date the override price comes into effect, in UTC.
OverrideStopDateUtc (DateTime) Optional. The date the override price becomes inactive, in UTC.

Response

Example Response

HTTP 201 Content-Type: application/json
{
    "Id": 21515562,
    "CompanyId": 336288,
    "EntityId": 337756,
    "CatalogItemId": "b59d18d2-5d91-4202-98a7-32e7d26d0ce0",
    "PricingTermId": null,
    "RegularPrice": 29.99,
    "IsDiscountable": true,
    "FloorPrice": 10,
    "OriginalPrice": 15,
    "PricingTierId": null,
    "PricingGroupId": null,
    "PricingShelfId": null,
    "OverridePriceId": null,
    "OverridePrice": null,
    "OverrideStartDateUtc": null,
    "OverrideStopDateUtc": null
}

A successful request returns a 201 (Created) response with the new pricing information record, represented as a PricingInformation resource. For a description of the properties defined for the PricingInformation resource, see PricingInformation.

Upsert Pricing Information for an Entity and Product

Use this request to create a pricing information record at the entity level for a specific product. The POST method on the /Pricing endpoint initiates an upsert operation: it will either create or update the record, depending on whether it currently exists or not. Using this endpoint, you can:

Request

POST /Companies({CompanyId})/Entities({EntityId})/CatalogItems({ProductId})/Pricing

Example Request

POST /Companies(336288)/Entities(337756)/CatalogItems(2469ee20-76e3-46fa-bb82-db6bf36423d2)/Pricing
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json
Content-Type: application/json

{
    "EntityId": 337756,
    "CatalogItemId": "2469ee20-76e3-46fa-bb82-db6bf36423d2",
    "PricingTermId": null,
    "RegularPrice": 15,
    "IsDiscountable": true,
    "FloorPrice": 10,
    "OriginalPrice": 15,
    "OverridePriceId": null,
    "OverridePrice": null,
    "OverrideStartDateUtc": null,
    "OverrideStopDateUtc": null,
    "PricingTierId": null,
    "PricingGroupId": null,
    "PricingShelfId": null
}

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.
EntityId (Integer) The identifier of the entity.
CatalogItemId (Integer) The identifier of the product in the iQmetrix Product Catalog.

Request Parameters

Name Description
EntityId (Integer) Required. The identifier of the entity. For company-level pricing, use the company identifier here. For entity-level pricing, use the entity identifier.
CatalogItemId (GUID) The identifier of the product in the iQmetrix Product Library. Exactly one of CatalogItemId and PricingShelfId must be specified. If CatalogItemId is specified, the PricingShelfId property must be set to null. If PricingShelfId is specified, CatalogItemId must be set to an empty GUID. Once the pricing record is created, CatalogItemId becomes read-only, including for PUT operations.
PricingTermId (Integer) Optional. The identifier of a pricing term resource associated with this resource.
RegularPrice (Decimal) Required. The regular price of the item. Must be greater than or equal to 0.
IsDiscountable (Boolean) Optional. Indicates whether the price of the product may be discounted (true) or not (false). Not enforced by the API.
FloorPrice (Decimal) Optional. The minimum price that may be charged for this item.
OriginalPrice (Decimal) Optional. The original price of the item.
PricingTierId (Integer) Optional. The identifier of a pricing tier associated with this price resource.
PricingGroupId (Integer) Optional. The identifier of a pricing group associated with this price resource.
PricingShelfId (Integer) The identifier of a pricing shelf associated with this price resource. Exactly one of CatalogItemId and PricingShelfId must be specified. If CatalogItemId is specified, the PricingShelfId property must be set to null. If PricingShelfId is specified, CatalogItemId must be set to an empty GUID.
OverridePrice (Decimal) Optional. The override, or sale, price of an item.
OverrideStartDateUtc (DateTime) Optional. The date the override price comes into effect, in UTC.
OverrideStopDateUtc (DateTime) Optional. The date the override price becomes inactive, in UTC.

Response

Example Response

HTTP 201 Content-Type: application/json
{
    "Id": 21515652,
    "CompanyId": 336288,
    "EntityId": 337756,
    "CatalogItemId": "2469ee20-76e3-46fa-bb82-db6bf36423d2",
    "PricingTermId": null,
    "RegularPrice": 15,
    "IsDiscountable": true,
    "FloorPrice": 10,
    "OriginalPrice": 15,
    "PricingTierId": null,
    "PricingGroupId": null,
    "PricingShelfId": null,
    "OverridePriceId": null,
    "OverridePrice": null,
    "OverrideStartDateUtc": null,
    "OverrideStopDateUtc": null
}

A successful request returns a 201 (Created) response with the new pricing record, represented as a PricingInformation resource. For a description of the properties defined for the PricingInformation resource, see PricingInformation.

PUT a Pricing Information Record

Use this request to update an existing pricing information record. Using this endpoint, you can:

Request

PUT /Companies({CompanyId})/Pricing({PricingId})

Example Request

PUT /Companies(336288)/Pricing(21515562)
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json
Content-Type: application/json

{
  "Id": 21515562,
    "EntityId": 336288,
    "CatalogItemId": "b59d18d2-5d91-4202-98a7-32e7d26d0ce0",
    "PricingTermId": null,
    "RegularPrice": 26.99,
    "IsDiscountable": true,
    "FloorPrice": 10,
    "OriginalPrice": 15,
    "OverridePriceId": null,
    "OverridePrice": null,
    "OverrideStartDateUtc": null,
    "OverrideStopDateUtc": null,
    "PricingTierId": null,
    "PricingGroupId": null,
    "PricingShelfId": null
}

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.
PricingId (Integer) The identifier of the pricing record being updated.

Request Parameters

Name Description
Id (Integer) Required. The identifier of the pricing information record being updated.
EntityId (Integer) Required. The identifier of the entity. For company-level pricing, use the company identifier here. For entity-level pricing, use the entity identifier.
CatalogItemId (GUID) The identifier of the product in the iQmetrix Product Library. Exactly one of CatalogItemId and PricingShelfId must be specified. If CatalogItemId is specified, the PricingShelfId property must be set to null. If PricingShelfId is specified, CatalogItemId must be set to an empty GUID. Once the pricing record is created, CatalogItemId becomes read-only, including for PUT operations.
PricingTermId (Integer) Optional. The identifier of a pricing term resource associated with this resource.
RegularPrice (Decimal) Required. The regular price of the item. Must be greater than or equal to 0.
IsDiscountable (Boolean) Optional. Indicates whether the price of the product may be discounted (true) or not (false). Not enforced by the API.
FloorPrice (Decimal) Optional. The minimum price that may be charged for this item.
OriginalPrice (Decimal) Optional. The original price of the item.
PricingTierId (Integer) Optional. The identifier of a pricing tier associated with this price resource.
PricingGroupId (Integer) Optional. The identifier of a pricing group associated with this price resource.
PricingShelfId (Integer) The identifier of a pricing shelf associated with this price resource. Exactly one of CatalogItemId and PricingShelfId must be specified. If CatalogItemId is specified, the PricingShelfId property must be set to null. If PricingShelfId is specified, CatalogItemId must be set to an empty GUID.
OverridePrice (Decimal) Optional. The override, or sale, price of the item.
OverrideStartDateUtc (DateTime) Optional. The date the override price comes into effect, in UTC.
OverrideStopDateUtc (DateTime) Optional. The date the override price becomes inactive, in UTC.

Response

Example Response

HTTP 200 Content-Type: application/json
{
   "Id": 21515562,
    "CompanyId": 336288,
    "EntityId": 337756,
    "CatalogItemId": "b59d18d2-5d91-4202-98a7-32e7d26d0ce0",
    "PricingTermId": null,
    "RegularPrice": 26.99,
    "IsDiscountable": true,
    "FloorPrice": 10,
    "OriginalPrice": 15,
    "PricingTierId": null,
    "PricingGroupId": null,
    "PricingShelfId": null,
    "OverridePriceId": null,
    "OverridePrice": null,
    "OverrideStartDateUtc": null,
    "OverrideStopDateUtc": null
}

A successful request returns a 200 (OK) response with the updated pricing record, represented as a PricingInformation resource. For a description of the properties defined for the PricingInformation resource, see PricingInformation.

DELETE a Pricing Information Record

Use this request to delete a pricing information record.

Request

DELETE /Companies({CompanyId})/Pricing({PricingId})

Example Request

DELETE /Companies(336288)/Pricing(21515652)
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json
Content-Type: application/json

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.
PricingId (Integer) The identifier of the pricing information record.

Request Parameters

None.

Response

Example Response

HTTP 200 Content-Type: application/json

A successful request returns a 200 (OK) response.

GET a Pricing Information Record

Use this request to retrieve a pricing information record using the record’s identifier. Note that retrieving all pricing information records for a company, without any filter, is not supported.

Request

GET /Companies({CompanyId})/Pricing({PricingId})

Example Request

GET /Companies(336288)/Pricing(21515652)
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.
PricingId (Integer) The identifier of the pricing information record.

Request Parameters

None.

Response

Example Response

HTTP 200 Content-Type: application/json
{
    "Id": 21516106,
    "CompanyId": 336288,
    "EntityId": 337756,
    "CatalogItemId": "7b85a320-f7c9-43ec-8407-6a069d971cd9",
    "PricingTermId": null,
    "RegularPrice": 29.99,
    "IsDiscountable": true,
    "FloorPrice": 10,
    "OriginalPrice": 15,
    "PricingTierId": null,
    "PricingGroupId": null,
    "PricingShelfId": null,
    "OverridePriceId": null,
    "OverridePrice": null,
    "OverrideStartDateUtc": null,
    "OverrideStopDateUtc": null
}

A successful request returns a 200 (OK) response with the requested pricing record, represented as a PricingInformation resource. For a description of the properties defined for the PricingInformation resource, see PricingInformation.

GET All Entity-Level Pricing Information

Use this request to retrieve all pricing information records that have been defined for an entity. Note that retrieving all pricing information records for a company is not supported, so the value supplied for EntityId must be distinct from that for CompanyId.

Request

GET /Companies({CompanyId})/Entities({EntityId})/CatalogItems

Example Request

GET /Companies(336288)/Entities(337756)/CatalogItems?$filter=PricingTermId eq 52788
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.
EntityId (Integer) The identifier of the entity. Must be distinct from CompanyId.

Request Parameters

None.

Response

Example Response

HTTP 200 Content-Type: application/json
[
    {
        "Id": 21484355,
        "CompanyId": 336288,
        "EntityId": 336288,
        "CatalogItemId": "af77a802-95e4-41a4-b530-01d2299d49d3",
        "PricingTermId": null,
        "RegularPrice": 9.98,
        "IsDiscountable": true,
        "FloorPrice": 5.32,
        "OriginalPrice": 5.64,
        "PricingTierId": null,
        "PricingGroupId": null,
        "PricingShelfId": null,
        "OverridePriceId": null,
        "OverridePrice": null,
        "OverrideStartDateUtc": null,
        "OverrideStopDateUtc": null
    },
    {
        "Id": 17545957,
        "CompanyId": 336288,
        "EntityId": 336288,
        "CatalogItemId": "60378e11-62b0-4387-8621-021e8aacbcb6",
        "PricingTermId": null,
        "RegularPrice": 9.98,
        "IsDiscountable": true,
        "FloorPrice": 5.32,
        "OriginalPrice": 5.64,
        "PricingTierId": null,
        "PricingGroupId": null,
        "PricingShelfId": null,
        "OverridePriceId": null,
        "OverridePrice": null,
        "OverrideStartDateUtc": null,
        "OverrideStopDateUtc": null
    }
]

A successful request returns a 200 (OK) response with the list of pricing information records, represented as an array of PricingInformation resources. For a description of the properties defined for the PricingInformation resource, see PricingInformation.

GET All Pricing Information Records for a Product (Company)

Use this request to retrieve the pricing information record defined for a catalog item at the company level. Requesting records at the company level retrieves all pricing information records for the product, including those defined at the company level.

Request

GET /Companies({CompanyId})/CatalogItems({CatalogItemId})/Pricing

Example Request

GET /Companies(336288)/CatalogItems(7b85a320-f7c9-43ec-8407-6a069d971cd9)/Pricing
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.
CatalogItemId (GUID) The identifier of item in the iQmetrix Product Catalog.

Request Parameters

None.

Response

Example Response

HTTP 200 Content-Type: application/json
[
    {
        "Id": 21516106,
        "CompanyId": 336288,
        "EntityId": 337756,
        "CatalogItemId": "7b85a320-f7c9-43ec-8407-6a069d971cd9",
        "PricingTermId": null,
        "RegularPrice": 16,
        "IsDiscountable": true,
        "FloorPrice": 10,
        "OriginalPrice": 15,
        "PricingTierId": null,
        "PricingGroupId": null,
        "PricingShelfId": null,
        "OverridePriceId": null,
        "OverridePrice": null,
        "OverrideStartDateUtc": null,
        "OverrideStopDateUtc": null
    }
]

A successful request returns a 200 (OK) response with the list of pricing information records, represented as an array of PricingInformation resources. For a description of the properties defined for the PricingInformation resource, see PricingInformation.

GET All Pricing Information Records for a Product (Entity)

Use this request to retrieve the all pricing information record defineds for a catalog item at the entity level.

Request

GET /Companies({CompanyId})/Entities({EntityId})/CatalogItems({CatalogItemId})/Pricing

Example Request

GET /Companies(336288)/Entities(337756)/CatalogItems(7b85a320-f7c9-43ec-8407-6a069d971cd9)/Pricing
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.
EntityId (Integer) The identifier of the entity.
CatalogItemId (GUID) The identifier of item in the iQmetrix Product Catalog.

Request Parameters

None.

Response

Example Response

HTTP 200 Content-Type: application/json
[
    {
        "Id": 21516106,
        "CompanyId": 336288,
        "EntityId": 337756,
        "CatalogItemId": "7b85a320-f7c9-43ec-8407-6a069d971cd9",
        "PricingTermId": null,
        "RegularPrice": 16,
        "IsDiscountable": true,
        "FloorPrice": 10,
        "OriginalPrice": 15,
        "PricingTierId": null,
        "PricingGroupId": null,
        "PricingShelfId": null,
        "OverridePriceId": null,
        "OverridePrice": null,
        "OverrideStartDateUtc": null,
        "OverrideStopDateUtc": null
    }
]

A successful request returns a 200 (OK) response with the list of pricing information records, represented as an array of PricingInformation resources. For a description of the properties defined for the PricingInformation resource, see PricingInformation.

POST a Product Price Record

Use this request to create a product price record.

Request

POST /Companies({CompanyId})/ProductPrices

Example Request

POST /Companies(12435)/ProductPrices
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json

{
    "EntityId": 337756,
    "CatalogItemId": "eb508fac-a242-4bcd-8754-21201a6b5795",
    "PricingTermId": null,
    "PricingTierId": null,
    "PricingGroupId": null,
    "PricingShelfId": null,
    "RegularPrice": 59.99,
    "IsDiscountable": true,
    "FloorPrice": null,
    "OriginalPrice": null,
    "SalePrices": [
  ]
}

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.

Request Parameters

Name Description
EntityId (Integer) Required. The identifier of the entity for which this pricing is in effect.
CatalogItemId (GUID) Required. The identifier of the item in the iQmetrix Product Catalog.
PricingTermId (Integer) Optional. The identifier of a pricing term associated with this price resource.
PricingTierId (Integer) Optional. The identifier of a pricing tier associated with this price resource.
PricingGroupId (Integer) Optional. The identifier of a pricing group associated with this price resource.
PricingShelfId (Integer) Optional. The identifier of a pricing shelf associated with this price resource. Note: If not null, CatalogItemId must be set to an empty GUID. This property is read-only for PUT operations.
RegularPrice (Decimal) Required. The regular price of the item. Must be greater than or equal to 0.
IsDiscountable (Boolean) Optional. Indicates whether the price of the product may be discounted (true) or not (false). Not enforced by the API.
FloorPrice (Decimal) Optional. The minimum price that may be charged for this item.
OriginalPrice (Decimal) Optional. The original price of the item.
SalePrices Array[SalePriceItem] Optional. A collection of sale prices associated with the product price. May be omitted or empty.

Response

Example Response

HTTP 201 Content-Type: application/json
{
    "Id": 21516386,
    "EntityId": 337756,
    "CatalogItemId": "87d7edd2-1928-46be-856d-12c730eb3da7",
    "PricingTermId": null,
    "PricingTierId": null,
    "PricingGroupId": null,
    "PricingShelfId": null,
    "RegularPrice": 59.99,
    "IsDiscountable": true,
    "FloorPrice": null,
    "OriginalPrice": null,
    "SalePrices": [
  ]
}

A successful request returns a 201 (Created) response with the new product price record, represented as a ProductPrice resource. For a description of the properties defined for the ProductPrice resource, see ProductPrice.

PUT a Product Price Record

Use this request to update a product price record.

Request

PUT /Companies({CompanyId})/ProductPrices({PricingId})

Example Request

PUT /Companies(336288)/ProductPrices(21516385)
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json

{
    "EntityId": 337756,
    "CatalogItemId": "04051e71-477c-4052-98c6-38e8b8f1a5f3",
    "PricingTermId": null,
    "PricingTierId": null,
    "PricingGroupId": null,
    "PricingShelfId": null,
    "RegularPrice": 58.99,
    "IsDiscountable": true,
    "FloorPrice": null,
    "OriginalPrice": null,
    "SalePrices": [
  ]
}

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.
PricingId (Integer) The identifier of the product price record.

Request Parameters

Name Description
Id (GUID) Required. The identifier of the product price record.
EntityId (Integer) Required. The identifier of the entity for which this pricing is in effect.
CatalogItemId (GUID) Required. The identifier of the item in the iQmetrix Product Catalog.
PricingTermId (Integer) Optional. The identifier of a pricing term associated with this price resource.
PricingTierId (Integer) Optional. The identifier of a pricing tier associated with this price resource.
PricingGroupId (Integer) Optional. The identifier of a pricing group associated with this price resource.
PricingShelfId (Integer) Optional. The identifier of a pricing shelf associated with this price resource. Note: If not null, CatalogItemId must be set to an empty GUID. This property is read-only for PUT operations.
RegularPrice (Decimal) Required. The regular price of the item. Must be greater than or equal to 0.
IsDiscountable (Boolean) Optional. Indicates whether the price of the product may be discounted (true) or not (false). Not enforced by the API.
FloorPrice (Decimal) Optional. The minimum price that may be charged for this item.
OriginalPrice (Decimal) Optional. The original price of the item.
SalePrices Array[SalePriceItem] Optional. A collection of sale prices associated with the product price. May be omitted or empty.

Response

Example Response

HTTP 200 Content-Type: application/json
{
    "Id": 21516385,
    "EntityId": 337756,
    "CatalogItemId": "04051e71-477c-4052-98c6-38e8b8f1a5f3",
    "PricingTermId": null,
    "PricingTierId": null,
    "PricingGroupId": null,
    "PricingShelfId": null,
    "RegularPrice": 58.99,
    "IsDiscountable": true,
    "FloorPrice": null,
    "OriginalPrice": null,
    "PricingTerm": null,
    "PricingTier": null,
    "PricingGroup": null,
    "PricingShelf": null,
    "SalePrices": []
}

A successful request returns a 200 (OK) response with the updated product price record, represented as a ProductPrice resource. For a description of the properties defined for the ProductPrice resource, see ProductPrice.

DELETE a Product Price Record

Use this request to delete a product price record.

Request

DELETE /Companies({CompanyId})/ProductPrices({PricingId})

Example Request

POST /Companies(336288)/Pricing(21516385)
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json
Content-Type: application/json

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.
PricingId (Integer) The identifier of the product price record.

Request Parameters

None.

Response

Example Response

HTTP 200 Content-Type: application/json

A successful request returns a 200 (OK) response.

GET Product Prices

Use this request to retrieve product price records that have been defined for an entity and/or a product.

Note that retrieving all product price records for an entire company is not supported. You must filter the result on either EntityId, CatalogItemId, or both.

Request

This example retrieves product prices records filtering for both entity and catalog item.

GET /Companies({CompanyId})/ProductPrices?$filter=EntityId eq {EntityId} and CatalogItemId eq guid'{ProductId}'

Example Request

GET /Companies(336288)/ProductPrices?$filter=EntityId eq 337756 and CatalogItemId eq  guid'7b3328fb-8a84-4758-9118-a7e7ec34af37'
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.

Request Parameters

None.

Response

Example Response

HTTP 200 Content-Type: application/json
[
    {
        "Id": 21516386,
        "EntityId": 337756,
        "CatalogItemId": "7b3328fb-8a84-4758-9118-a7e7ec34af37",
        "PricingTermId": null,
        "PricingTierId": null,
        "PricingGroupId": null,
        "PricingShelfId": null,
        "RegularPrice": 59.99,
        "IsDiscountable": true,
        "FloorPrice": null,
        "OriginalPrice": null,
        "PricingTerm": null,
        "PricingTier": null,
        "PricingGroup": null,
        "PricingShelf": null,
        "SalePrices": []
    }
]

A successful request returns a 200 (OK) response with the list of product price records matching the filter, represented as an array of ProductPrice resources. For a description of the properties defined for the ProductPrice resource, see ProductPrice.

GET a Product Price Record

Use this request to retrieve a specific product price record, using its identifier.

Request

GET /Companies({CompanyId})/ProductPrices({PricingId})

Example Request

GET /Companies(336288)/ProductPrices(21516386)
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.
PricingId (Integer) The identifier of the product price record.

Request Parameters

None.

Response

Example Response

HTTP 200 Content-Type: application/json
{
    "Id": 21516386,
    "EntityId": 337756,
    "CatalogItemId": "7b3328fb-8a84-4758-9118-a7e7ec34af37",
    "PricingTermId": null,
    "PricingTierId": null,
    "PricingGroupId": null,
    "PricingShelfId": null,
    "RegularPrice": 59.99,
    "IsDiscountable": true,
    "FloorPrice": null,
    "OriginalPrice": null,
    "PricingTerm": null,
    "PricingTier": null,
    "PricingGroup": null,
    "PricingShelf": null,
    "SalePrices": []
}

A successful request returns a 200 (OK) response with the requested product price record, represented as a ProductPrice resource. For a description of the properties defined for the ProductPrice resource, see ProductPrice.

Clone a Product Price Record

Use this request to create a new pricing record for a product by cloning the existing pricing record of another product.

Request

POST /Companies({CompanyId})/CloneProductPrices

Example Request

POST /Companies(336288)/CloneProductPrices
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json
Content-Type: application/json

{
  "FromCatalogItemId": "7b85a320-f7c9-43ec-8407-6a069d971cd9",
  "ToCatalogItemId": "5882f9d8-3245-4310-a366-7fb7c41098c0"
}

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.

Request Parameters

Name Description
FromCatalogItemId (GUID) Required. The identifier of the target product, whose pricing record is being cloned.
ToCatalogItemId (GUID) Required. The identifier of the destination product, with which the new pricing record will be associated. There cannot be existing pricing already set for the destination product.

Response

Example Response

HTTP 201 Content-Type: application/json
{
    "Id": "c3d2c33c-9861-44ba-afde-f8fe74ee2808",
    "FromCatalogItemId": "7b85a320-f7c9-43ec-8407-6a069d971cd9",
    "ToCatalogItemId": "86326b36-2ad6-483e-85c7-6e06feffbb93"
}

A successful request returns a 201 (Created) response with information about the cloned record, represented as a CloneProductPrices resource. For a description of the properties defined for the CloneProductPrices resource, see CloneProductPrices.

Upsert a Pricing Term

Use this request to create or update a pricing term record. The POST method on the /PricingTerms endpoint initiates an upsert operation: it will either create or update the record, depending on whether the record currently exists or not. Using this endpoint, you can:

Request

POST /Companies({CompanyId})/PricingTerms

Example Request

POST /Companies(336288)/PricingTerms
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json
Content-Type: application/json


{
    "EntityId": 336288,
    "Name": "4-year",
    "Active": true,
    "NumberOfPayments": 48,
    "CanFinance": true,
    "TermLengthInYears": 4,
    "DisplayName": "4-Year Contract",
    "CarrierEntityId": null
}

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.

Request Parameters

Name Description
Id (Integer) Required for update; ignored for create. System-generated. The identifier for the pricing term.
EntityId (Integer) Required. The identifier of the entity.
Name (String) Required. A name for the pricing term.
Active (Boolean) Optional. Indicates whether the pricing term is active (true) or inactive (false). The default is true.
NumberOfPayments (Integer) Optional. For pricing terms that include financing, the number of payments. The default is null. If the term is not financed (CanFinance is false), this value must be set to null.
CanFinance (Boolean) Optional. Indicates whether the item(s) associated with this pricing term can be financed (true) or not (false). The default is false. If CanFinance is set to null, NumberOfPayments must also be null.
TermLengthInYears (Integer) Optional. The length of the term.
DisplayName (String) Optional. The public-facing display name. You can set a pricing term display name in any or all supported languages, by including the Accept-Language and Content-Language headers.
CarrierEntityId (Integer) Optional. The carrier associated with the term, if any.

Response

Example Response

HTTP 201 Content-Type: application/json
{
    "Id": 53115,
    "EntityId": 336288,
    "Name": "4-year",
    "Active": true,
    "NumberOfPayments": 48,
    "CanFinance": true,
    "TermLengthInYears": 4,
    "DisplayName": "4-Year Contract",
    "CarrierEntityId": null
}

A successful request returns a 201 (Created) response with the new pricing term record, represented as a PricingTerm resource. For a description of the properties defined for the PricingTerm resource, see PricingTerm.

PUT a Pricing Term

Use this request to update a pricing term record.

Request

PUT /Companies({CompanyId})/PricingTerms({TermId})

Example Request

PUT /Companies(336288)/PricingTerms(53115)
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json
Content-Type: application/json


{
    "Id": 53115,
    "EntityId": 336288,
    "Name": "4-year",
    "Active": true,
    "NumberOfPayments": 48,
    "CanFinance": true,
    "TermLengthInYears": 4,
    "DisplayName": "4-Year Contract",
    "CarrierEntityId": null
}

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.
TermId (Integer) The identifier of the pricing term record.

Request Parameters

Name Description
Id (Integer) Optional. Unlike most PUT requests, this endpoint is lenient with respect to missing record identifiers. The identifier for the pricing term.
EntityId (Integer) Required. The identifier of the entity.
Name (String) Required. A name for the pricing term.
Active (Boolean) Optional. Indicates whether the pricing term is active (true) or inactive (false). The default is true.
NumberOfPayments (Integer) Optional. For pricing terms that include financing, the number of payments. The default is null. If the term is not financed (CanFinance is false), this value must be set to null.
CanFinance (Boolean) Optional. Indicates whether the item(s) associated with this pricing term can be financed (true) or not (false). The default is false. If CanFinance is set to null, NumberOfPayments must also be null.
TermLengthInYears (Integer) Optional. The length of the term.
DisplayName (String) Optional. The public-facing display name. You can set a pricing term display name in any or all supported languages, by including the Accept-Language and Content-Language headers.
CarrierEntityId (Integer) Optional. The carrier associated with the term, if any.

Response

Example Response

HTTP 200 Content-Type: application/json
{
    "Id": 53115,
    "EntityId": 336288,
    "Name": "4-years",
    "Active": true,
    "NumberOfPayments": 48,
    "CanFinance": true,
    "TermLengthInYears": 5,
    "DisplayName": "4-Year Contract",
    "CarrierEntityId": null
}

A successful request returns a 200 (OK) response with the updated pricing term record, represented as a PricingTerm resource. For a description of the properties defined for the PricingTerm resource, see PricingTerm.

DELETE a Pricing Term

Use this request to soft-delete a pricing term record. Soft-deleting a pricing term sets the Active property to false. Note that pricing term records cannot be completely deleted.

Request

DELETE /Companies({CompanyId})/PricingTerms({TermId})

Example Request

DELETE /Companies(336288)/PricingTerms(53116)
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json
Content-Type: application/json

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.
TermId (Integer) The identifier of the pricing term record.

Request Parameters

None.

Response

Example Response

HTTP 200 Content-Type: application/json

A successful request returns a 200 (OK) response.

GET All Pricing Terms for a Company

Use this request to retrieve all pricing term records that have been defined for a company.

Request

GET /Companies()/PricingTerms

Example Request

GET /Companies(336288)/PricingTerms
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.

Request Parameters

None.

Response

Example Response

HTTP 200 Content-Type: application/json
[
    {
        "Id": 53115,
        "EntityId": 336288,
        "Name": "4-years",
        "Active": true,
        "NumberOfPayments": 48,
        "CanFinance": true,
        "TermLengthInYears": 5,
        "DisplayName": "4-Year Contract",
        "CarrierEntityId": null
    }
]

A successful request returns a 200 (OK) response with the list of pricing term records, represented as an array of PricingTerm resources. For a description of the properties defined for the PricingTerm resource, see PricingTerm.

GET a Pricing Term Record

Use this request to retrieve a specific pricing term record, using its identifier.

Request

GET /Companies()/PricingTerms({TermId})

Example Request

GET /Companies(336288)/PricingTerms(53118)
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.
TermId (Integer) The identifier of the pricing term record.

Request Parameters

None.

Response

Example Response

HTTP 200 Content-Type: application/json
{
    "Id": 53115,
    "EntityId": 336288,
    "Name": "4-years",
    "Active": true,
    "NumberOfPayments": 48,
    "CanFinance": true,
    "TermLengthInYears": 5,
    "DisplayName": "4-Year Contract",
    "CarrierEntityId": null
}

A successful request returns a 200 (OK) response with the requested pricing term record, represented as a PricingTerm resource. For a description of the properties defined for the PricingTerm resource, see PricingTerm.

Search for Disabled Pricing Term Records

This request queries for pricing term records that have been disabled (that is, soft-deleted), by filtering for Active set to false.

Request

GET /Companies({CompanyId})/PricingTerms?$filter=Active eq false

Example Request

GET /Companies(336288)/PricingTerms?$filter=Active eq false
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.

Request Parameters

None.

Response

Example Response

HTTP 200 Content-Type: application/json
[
    {
        "Id": 50549,
        "EntityId": 336288,
        "Name": "2-year",
        "Active": false,
        "NumberOfPayments": 24,
        "CanFinance": true,
        "TermLengthInYears": 2,
        "DisplayName": "2-Year Contract",
        "CarrierEntityId": null
    }
]

A successful request returns a 200 (OK) response with the list of pricing term records matching the filter, represented as an array of PricingTerm resources. For a description of the properties defined for the PricingTerm resource, see PricingTerm.

POST a Pricing Tier Record

Use this request to create a pricing tier.

Request

POST /Companies({CompanyId})/PricingTiers

Example Request

POST /Companies(336288)/PricingTiers
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json
Content-Type: application/json


{
    "CompanyId": 336288,
    "TierName": "Platinum",
    "QuantityLowerBound":null
}

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.

Request Parameters

Name Description
CompanyId (Integer) The identifier of the company.
TierName (String) A name for the pricing term. You can set a pricing tier name in any or all supported languages, by including the Accept-Language and Content-Language headers.
QuantityLowerBound (Integer) The bottom bound of the tier, inclusive of the bottom bound. If set to null, there is no bottom bound.

Response

Example Response

HTTP 201 Content-Type: application/json
{
    "Id": 366,
    "CompanyId": 336288,
    "TierName": "Platinum",
    "QuantityLowerBound": null
}

A successful request returns a 201 (Created) response with the new pricing tier record, represented as a PricingTier resource. For a description of the properties defined for the PricingTier resource, see PricingTier.

PUT a Pricing Tier Record

Use this request to update a pricing tier.

Request

PUT /Companies({CompanyId})/PricingTiers({TierId})

Example Request

PUT /Companies(336288)/PricingTiers(366)
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json
Content-Type: application/json


{
    "CompanyId": 336288,
    "TierName": "Platinum",
    "QuantityLowerBound":22
}

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.
TierId (Integer) The identifier of the pricing tier record.

Request Parameters

Name Description
CompanyId (Integer) Required. The identifier of the company.
TierName (String) Required. A name for the pricing term. You can set a pricing tier name in any or all supported languages, by including the Accept-Language and Content-Language headers.
QuantityLowerBound (Integer) Optional. The bottom bound of the tier, inclusive of the bottom bound. If set to null, there is no bottom bound.

Response

Example Response

HTTP 200 Content-Type: application/json
{
    "Id": 366,
    "CompanyId": 336288,
    "TierName": "Platinum",
    "QuantityLowerBound": 22
}

A successful request returns a 200 (OK) response with the updated pricing tier record, represented as a PricingTier resource. For a description of the properties defined for the PricingTier resource, see PricingTier.

DELETE a Pricing Tier Record

Use this request to delete a pricing tier record.

Request

DELETE /Companies({CompanyId})/PricingTier({TierId})

Example Request

DELETE /Companies(336288)/PricingTier(366)
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json
Content-Type: application/json

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.
TierId (Integer) The identifier of the pricing tier record.

Request Parameters

None.

Response

Example Response

HTTP 200 Content-Type: application/json

A successful request returns a 200 (OK) response.

GET All Pricing Tiers for a Company

Use this request to retrieve all pricing tier records that have been defined for a company.

Request

GET /Companies({CompanyId})/PricingTiers

Example Request

GET /Companies(336288)/PricingTiers
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.

Request Parameters

None.

Response

Example Response

HTTP 200 Content-Type: application/json
[
    {
        "Id": 194,
        "CompanyId": 336288,
        "TierName": "Bronze",
        "QuantityLowerBound": 16
    }
]

A successful request returns a 200 (OK) response with the list of pricing tier records, represented as an array of PricingTier resources. For a description of the properties defined for the PricingTier resource, see PricingTier.

GET a Pricing Tier Record

Use this request to retrieve a specific pricing tier record, using its identifier.

Request

GET /Companies()/PricingTiers({TierId})

Example Request

GET /Companies(336288)/PricingTiers(193)
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.
TierId (Integer) The identifier of the pricing tier record.

Request Parameters

None.

Response

Example Response

HTTP 200 Content-Type: application/json
{
    "Id": 193,
    "CompanyId": 336288,
    "TierName": "Bronze",
    "QuantityLowerBound": 16
}

A successful request returns a 200 (OK) response with the requested pricing tier record, represented as a PricingTier resource. For a description of the properties defined for the PricingTier resource, see PricingTier.

POST a Pricing Group

Use this request to create a pricing group.

Request

POST /Companies({CompanyId})/PricingGroups

Example Request

POST /Companies(336288)/PricingGroups
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json
Content-Type: application/json

{
    "CompanyId": 336288,
    "GroupName": "Seniors",
    "Description": "Seniors - 10% Off",
    "IsDeleted": false
}

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.

Request Parameters

Name Description
CompanyId (GUID) Required. The identifier of the company creating the pricing group. This value is read-only after the pricing group record has been created.
GroupName (String) Required. The name for the pricing group. Maximum 255 characters. You can set a pricing group name in any or all supported languages, by including the Accept-Language and Content-Language headers.
Description (String) Optional. A description for the pricing group. Maximum 1000 characters. You can set a pricing group description in any or all supported languages, by including the Accept-Language and Content-Language headers.
IsDeleted (Boolean) Optional. Indicates whether this pricing group has been deleted (true) or is active (false). The default is false.

Response

Example Response

HTTP 201 Content-Type: application/json
{
    "Id": 485,
    "CompanyId": 336288,
    "GroupName": "Seniors",
    "Description": "Seniors - 10% Off",
    "IsDeleted": false
}

A successful request returns a 201 (Created) response with the new pricing group record, represented as a PricingGroup resource. For a description of the properties defined for the PricingGroup resource, see PricingGroup.

PUT a Pricing Group

Use this request to update a pricing group.

Request

PUT /Companies({CompanyId})/PricingGroups({GroupID})

Example Request

PUT /Companies(336288)/PricingGroups(485)
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json
Content-Type: application/json

{
    "CompanyId": 336288,
    "GroupName": "Seniors",
    "Description": "Seniors - 10% Off",
    "IsDeleted": false
}

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.
GroupId (Integer) The identifier of the pricing group.

Request Parameters

Name Description
CompanyId (GUID) Required. The identifier of the company creating the pricing group. This value is read-only after the pricing group record has been created.
GroupName (String) Required. The name for the pricing group. Maximum 255 characters. You can set a pricing group name in any or all supported languages, by including the Accept-Language and Content-Language headers.
Description (String) Optional. A description for the pricing group. Maximum 1000 characters. You can set a pricing group description in any or all supported languages, by including the Accept-Language and Content-Language headers.
IsDeleted (Boolean) Optional. Indicates whether this pricing group has been deleted (true) or is active (false). (Pricing groups can only be soft-deleted.)

Response

Example Response

HTTP 200 Content-Type: application/json
{
    "Id": 485,
    "CompanyId": 336288,
    "GroupName": "Seniors",
    "Description": "Seniors - 10% Off",
    "IsDeleted": false
}

A successful request returns a 200 (OK) response with the updated pricing group record, represented as a PricingGroup resource. For a description of the properties defined for the PricingGroup resource, see PricingGroup.

DELETE a Pricing Group

Use this request to delete a pricing group.

Request

DELETE /Companies({CompanyId})/PricingGroups({GroupId})

Example Request

DELETE /Companies(336288)/PricingGroups(485)
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json
Content-Type: application/json

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.
GroupId (Integer) The identifier of the pricing group.

Request Parameters

None.

Response

Example Response

HTTP 200 Content-Type: application/json

A successful request returns a 200 (OK) response.

GET All Pricing Groups for a Company

Use this request to retrieve all pricing groups that have been defined for a company.

Request

GET /Companies({CompanyId})/PricingGroups

Example Request

GET /Companies(336288)/PricingGroups
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.

Request Parameters

None.

Response

Example Response

HTTP 200 Content-Type: application/json
[
    {
        "Id": 293,
        "CompanyId": 336288,
        "GroupName": "Employees",
        "Description": "Employees - 15% Off",
        "IsDeleted": false
    }
]

A successful request returns a 200 (OK) response with the list of pricing groups, represented as an array of PricingGroup resources. For a description of the properties defined for the PricingGroup resource, see PricingGroup.

GET a Pricing Group

Use this request to retrieve a specific pricing group.

Request

GET /Companies({CompanyId})/PricingGroups({GroupId})

Example Request

GET /Companies(336288)/PricingGroups(485)
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.
GroupId (Integer) The identifier of the pricing group.

Request Parameters

None.

Response

Example Response

HTTP 200 Content-Type: application/json
{
    "Id": 293,
    "CompanyId": 336288,
    "GroupName": "Employees",
    "Description": "Employees - 15% Off",
    "IsDeleted": false
}

A successful request returns a 200 (OK) response with the requested pricing group, represented as a PricingGroup resource. For a description of the properties defined for the PricingGroup resource, see PricingGroup.

Search for Disabled Pricing Groups

This request queries for pricing groups that have been disabled (that is, soft-deleted), by filtering for IsDeleted set to true.

Request

GET /Companies({CompanyId})/PricingGroups?$filter=IsDeleted eq true

Example Request

GET /Companies(336288)/PricingGroups?$filter=IsDeleted eq true
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.

Request Parameters

None.

Response

Example Response

HTTP 200 Content-Type: application/json
[
    {
        "Id": 290,
        "CompanyId": 336288,
        "GroupName": "Employees",
        "Description": "Employees - 15% Off",
        "IsDeleted": true
    }
]

A successful request returns a 200 (OK) response with the list of pricing groups matching the filter, represented as an array of PricingGroup resources. For a description of the properties defined for the PricingGroup resource, see PricingGroup.

POST a Pricing Shelf

Use this request to create a pricing shelf.

Request

POST /Companies({CompanyId})/PricingShelves

Example Request

POST /Companies(336288)/PricingShelves
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json
Content-Type: application/json

{
    "CompanyId": 336288,
    "ShelfName": "Clearance",
    "Description": "Clearance - 60% Off"
}

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.

Request Parameters

Name Description
CompanyId (Integer) Required. The identifier of the company. This value is read-only after the shelf has been created.
ShelfName (String) Required. A name for the pricing shelf. Maximum 255 characters. You can set a pricing shelf name in any or all supported languages, by including the Accept-Language and Content-Language headers.
Description (String) Optional. A description for the pricing shelf. Maximum 1000 characters. You can set a pricing shelf description in any or all supported languages, by including the Accept-Language and Content-Language headers.

Response

Example Response

HTTP 201 Content-Type: application/json

{
    "Id": 483,
    "CompanyId": 336288,
    "ShelfName": "Clearance",
    "Description": "Clearance - 60% Off"
}

A successful request returns a 201 (Created) response with the new pricing shelf record, represented as a PricingShelf resource. For a description of the properties defined for the PricingShelf resource, see PricingShelf.

PUT a Pricing Shelf

Use this request to update a pricing shelf.

Request

PUT /Companies({CompanyId})/PricingShelves({ShelfId})

Example Request

PUT /Companies(336288)/PricingShelves(355)
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json
Content-Type: application/json

{
    "Id": 483,
    "CompanyId": 336288,
    "ShelfName": "Clearance",
    "Description": "Clearance - 50% Off"
}

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.
ShelfId (Integer) The identifier of a pricing shelf.

Request Parameters

Name Description
Id (Integer) The identifier of the pricing shelf record.
CompanyId (Integer) Required. The identifier of the company. This value is read-only after the shelf has been created.
ShelfName (String) Required. A name for the pricing shelf. Maximum 255 characters. You can set a pricing shelf name in any or all supported languages, by including the Accept-Language and Content-Language headers.
Description (String) Optional. A description for the pricing shelf. Maximum 1000 characters. You can set a pricing shelf description in any or all supported languages, by including the Accept-Language and Content-Language headers.

Response

Example Response

HTTP 200 Content-Type: application/json
{
    "Id": 355,
    "CompanyId": 336288,
    "ShelfName": "Clearance",
    "Description": "Clearance - 50% Off"
}

A successful request returns a 200 (OK) response with the updated pricing shelf record, represented as a PricingShelf resource. For a description of the properties defined for the PricingShelf resource, see PricingShelf.

DELETE a Pricing Shelf

Use this request to delete a pricing shelf.

Request

DELETE /Companies({CompanyId})/PricingShelves({ShelfId})

Example Request

DELETE /Companies(336288)/PricingShelves(355)
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json
Content-Type: application/json

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.
ShelfId (Integer) The identifier of the pricing shelf.

Request Parameters

None.

Response

Example Response

HTTP 200 Content-Type: application/json

A successful request returns a 200 (OK) response.

GET All Pricing Shelves for a Company

Use this request to retrieve all pricing shelves that have been defined for a company.

Request

GET /Companies({CompanyId})/PricingShelves

Example Request

GET /Companies(336288)/PricingShelves
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.

Request Parameters

None.

Response

Example Response

HTTP 200 Content-Type: application/json
[
    {
        "Id": 32,
        "CompanyId": 336288,
        "ShelfName": "Clearance",
        "Description": "Clearance - 60% Off"
    }
]

A successful request returns a 200 (OK) response with the list of pricing shelves, represented as an array of PricingShelf resources. For a description of the properties defined for the PricingShelf resource, see PricingShelf.

GET a Pricing Shelf

Use this request to retrieve a specific pricing shelf record using its identifier.

Request

GET /Companies({CompanyId})/PricingShelves({ShelfId})

Example Request

GET /Companies(336288)/PricingShelves(32)
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.
ShelfId (Integer) The identifier of the pricing shelf record.

Request Parameters

None.

Response

Example Response

HTTP 200 Content-Type: application/json
{
    "Id": 356,
    "CompanyId": 336288,
    "ShelfName": "$10",
    "Description": "All Items $10.00"
}

A successful request returns a 200 (OK) response with the requested pricing shelf, represented as a PricingShelf resource. For a description of the properties defined for the PricingShelf resource, see PricingShelf.

GET All Pricing Shelf Prices for an Entity

Use this request to retrieve the prices set for a pricing shelf defined for an entity.

Request

GET /Companies({CompanyId})/Entities({EntityId})/PricingShelfPrices({ShelfId})

Example Request

GET /Companies(336288)/Entities(337756)/PricingShelfPrices(351)
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.
EntityId (Integer) The identifier of the entity.
ShelfId (Integer) The identifier of the pricing shelf record.

Request Parameters

None.

Response

Example Response

HTTP 200 Content-Type: application/json
{
    "Id": 351,
    "Prices": [
        9.99,
        8.79
    ]
}

A successful request returns a 200 (OK) response with the requested pricing shelf prices, represented as a PricingShelfPrice resource. For a description of the properties defined for the PricingShelfPrice resource, see PricingShelfPrice.

POST a Pricing Shelf Product

Use this request to assign a product to a pricing shelf.

Request

POST /Companies({CompanyId})/PricingShelfProducts

Example Request

POST /Companies(336288)/PricingShelfProducts
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json
Content-Type: application/json

{
    "CompanyId": 336288,
    "Id": "f5c04e2d-97cd-4d17-9cda-c256fc178ce1",
    "PricingShelfId": 356
}

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.

Request Parameters

Name Description
CompanyId (Integer) Required. The identifier of the company.
Id (GUID) Required. The identifier of the product in the iQmetrix Product Catalog.
PricingShelfId (Integer) Required. The identifier of the pricing shelf.

Response

Example Response

HTTP 201 Content-Type: application/json

{
    "CompanyId": 336288,
    "Id": "47fc58d5-08f3-4a03-976f-f088d96c5a1a",
    "PricingShelfId": 356
}

A successful request returns a 201 (Created) response with the new pricing shelf product record, represented as a PricingShelfProduct resource. For a description of the properties defined for the PricingShelfProduct resource, see PricingShelfProduct.

PUT a Pricing Shelf Product

Use this request to update a pricing shelf product.

Request

PUT /Companies({CompanyId})/PricingShelfProducts({ProductId})

Example Request

PUT /Companies(336288)/PricingShelfProducts(c47c68d7-8d1d-425d-8536-75423e95b629)
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json
Content-Type: application/json

{
    "CompanyId": 336288,
    "Id": "47fc58d5-08f3-4a03-976f-f088d96c5a1a",
    "PricingShelfId": 356
}

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.
ProductId (GUID) The identifier of the product in the iQmetrix Product Catalog.

Request Parameters

Name Description
CompanyId (Integer) Required. The identifier of the company.
Id (GUID) Required. The identifier of the product in the iQmetrix Product Catalog.
PricingShelfId (Integer) Required. The identifier of the pricing shelf.

Response

Example Response

HTTP 200 Content-Type: application/json
{
    "Id": 355,
    "CompanyId": 336288,
    "ShelfName": "Clearance",
    "Description": "Clearance - 50% Off"
}

A successful request returns a 200 (OK) response with the updated pricing shelf product record, represented as a PricingShelfProduct resource. For a description of the properties defined for the PricingShelfProduct resource, see PricingShelfProduct.

DELETE a Pricing Shelf Product

Use this request to delete a pricing shelf product.

Request

DELETE /Companies({CompanyId})/PricingShelfProducts({ProductId})

Example Request

DELETE /Companies(336288)/PricingShelfProducts(c47c68d7-8d1d-425d-8536-75423e95b629)
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json
Content-Type: application/json

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.
ProductId (GUID) The identifier of the product in the iQmetrix Product Catalog.

Request Parameters

None.

Response

Example Response

HTTP 200 Content-Type: application/json

A successful request returns a 200 (OK) response.

GET a Pricing Shelf Product

Use this request to retrieve a specific pricing shelf product record using the product identifier.

Request

GET /Companies({CompanyId})/PricingShelfProducts({ProductId})

Example Request

GET /Companies(336288)/PricingShelfProducts(c47c68d7-8d1d-425d-8536-75423e95b629)
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.
ProductId (GUID) The identifier of the product in the iQmetrix Product Catalog.

Request Parameters

None.

Response

Example Response

HTTP 200 Content-Type: application/json
{
    "CompanyId": 336288,
    "Id": "47fc58d5-08f3-4a03-976f-f088d96c5a1a",
    "PricingShelfId": 356
}

A successful request returns a 200 (OK) response with the requested pricing shelf product record, represented as a PricingShelfProduct resource. For a description of the properties defined for the PricingShelfProduct resource, see PricingShelfProduct.

POST a Sale (Override) Price

Use this request to create a sale (override) price for an existing regular price.

You can set a default sale price by:

Request

POST /Companies({CompanyId})/Pricing({PricingId})/SaleOverridePrices

Example Request

POST /Companies(336288)/Pricing(21528790)/SaleOverridePrices
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json
Content-Type: application/json

{
    "CompanyId": 336288,
    "StartDateUTC": "2018-07-30T21:42:24.840Z",
    "StopDateUTC": "2018-08-03T21:42:24.840Z",
    "SalePrice": 1.99,
    "PricingInformationId": 21528790,
    "IsDefault": false
}

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.
PricingId (Integer) The identifier of the pricing record this sale price overrides.

Request Parameters

Name Description
CompanyId (Integer) Required. The identifier of the company.
IsDefault (Boolean) Optional. Indicates whether this is a default sale price (true) or not (false). The default is false.
PricingInformationId (Integer) Required. The identifier of the PricingInformation record this sale price overrides.
SalePrice (Decimal) Required. The sale (override) price.
StartDateUTC (DateTime) Optional. The date and time the sale pricing begins, in UTC. If not set, the sale price takes effect immediately. Set to null if IsDefault is true.
StopDateUTC (DateTime) Optional. The date and time the sale pricing ends, in UTC. If not set, the sale price stays in effect forever. Set to null if IsDefault is true.

Response

Example Response

HTTP 201 Content-Type: application/json

{
    "Id": 32740,
    "CompanyId": 336288,
    "StartDateUTC": "2018-07-30T21:42:24.84Z",
    "StopDateUTC": "2018-08-03T21:42:24.84Z",
    "SalePrice": 1.99,
    "PricingInformationId": 21528790,
    "IsDefault": false
}

A successful request returns a 201 (Created) response with the new sale override price record, represented as a SaleOverridePrice resource. For a description of the properties defined for the SaleOverridePrice resource, see SaleOverridePrice.

PUT a Sale (Override) Price

Use this request to update a sale (override) price.

Request

PUT /Companies({CompanyId})/Pricing({PricingId})/SaleOverridePrices({SaleOverrideId})

Example Request

PUT /Companies(336288)/Pricing(21528790)/SaleOverridePrices(32740)
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json
Content-Type: application/json

{
    "CompanyId": 336288,
    "StartDateUTC": "2018-07-30T21:42:24.840Z",
    "StopDateUTC": "2018-08-03T21:42:24.840Z",
    "SalePrice": 2.99,
    "PricingInformationId": 21528790,
    "IsDefault": false
}

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.
ProductId (GUID) The identifier of the product in the iQmetrix Product Catalog.
SaleOverrideId (Integer) The identifier of a sale override price record.

Request Parameters

Name Description
Id (Integer) Required. The identifier of the sale override pricing record.
CompanyId (Integer) Optional. The identifier of the company.
IsDefault (Boolean) Optional. Indicates whether this is a default sale price (true) or not (false).
PricingInformationId (Integer) Optional. The identifier of the PricingInformation record this sale price overrides.
SalePrice (Decimal) Optional. The sale (override) price.
StartDateUTC (DateTime) Optional. The date and time the sale pricing begins, in UTC.
StopDateUTC (DateTime) Optional. The date and time the sale pricing ends, in UTC.

Response

Example Response

HTTP 200 Content-Type: application/json
{
    "Id": 32740
    "CompanyId": 336288,
    "StartDateUTC": "2018-07-30T21:42:24.840Z",
    "StopDateUTC": "2018-08-03T21:42:24.840Z",
    "SalePrice": 2.99,
    "PricingInformationId": 21528790,
    "IsDefault": false
}

A successful request returns a 200 (OK) response with the updated sale override price record, represented as a SaleOverridePrice resource. For a description of the properties defined for the SaleOverridePrice resource, see SaleOverridePrice.

DELETE a Sale (Override) Price

Use this request to delete a sale (override) price record.

Request

DELETE /Companies({CompanyId})/Pricing({PricingId})/SaleOverridePrices(SaleOverrideId)

Example Request

DELETE /Companies(336288)/PricingShelfProducts(c47c68d7-8d1d-425d-8536-75423e95b629)
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json
Content-Type: application/json

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.
ProductId (GUID) The identifier of the product in the iQmetrix Product Catalog.
SaleOverrideId (Integer) The identifier of the sale override price record to be deleted.

Request Parameters

None.

Response

Example Response

HTTP 200 Content-Type: application/json

A successful request returns a 200 (OK) response.

GET All Sale (Override) Prices Defined for a Company

Use this request to retrieve all sale (override) prices that have been defined for a company.

Request

GET /Companies({CompanyId})/SaleOverridePrices

Example Request

GET /Companies(336288)/SaleOverridePrices
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.

Request Parameters

None.

Response

Example Response

HTTP 200 Content-Type: application/json
[
    {
        "Id": 27936,
        "CompanyId": 336288,
        "StartDateUTC": null,
        "StopDateUTC": null,
        "SalePrice": 9.54,
        "PricingInformationId": 15293277,
        "IsDefault": true
    }
]

A successful request returns a 200 (OK) response with the list of sale (override) prices, represented as an array of SaleOverridePrice resources. For a description of the properties defined for the SaleOverridePrice resource, see SaleOverridePrice.

GET All Sale (Override) Prices for a Pricing Information Record

Use this request to retrieve all sale (override) prices that are associated with a pricing information record.

Request

GET /Companies({CompanyId})/Pricing({PricingId})/SaleOverridePrices

Example Request

GET /Companies(336288)/Pricing(21528790)/SaleOverridePrices
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.
PricingId (Integer) The identifier of the pricing information record.

Request Parameters

None.

Response

Example Response

HTTP 200 Content-Type: application/json
[
    {
        "Id": 27936,
        "CompanyId": 336288,
        "StartDateUTC": null,
        "StopDateUTC": null,
        "SalePrice": 9.54,
        "PricingInformationId": 15293277,
        "IsDefault": true
    }
]

A successful request returns a 200 (OK) response with the list of sale (override) prices, represented as an array of SaleOverridePrice resources. For a description of the properties defined for the SaleOverridePrice resource, see SaleOverridePrice.

GET a Sale (Override) Price Record

Use this request to retrieve a sale (override) price record using its identifier.

Request

GET /Companies({CompanyId})/Pricing({PricingId})/SaleOverridePrices({SaleOverrideId})

Example Request

GET /Companies(336288)/Pricing(15293277)/SaleOverridePrices(27936)
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.
PricingId (Integer) The identifier of the pricing information record.
SaleOverrideId (Integer) The identifier of the sale (override) pricing record.

Request Parameters

None.

Response

Example Response

HTTP 200 Content-Type: application/json
{
    "Id": 27936,
    "CompanyId": 336288,
    "StartDateUTC": null,
    "StopDateUTC": null,
    "SalePrice": 9.54,
    "PricingInformationId": 15293277,
    "IsDefault": true
}

A successful request returns a 200 (OK) response with the requested sale (override) price, represented as a SaleOverridePrice resource. For a description of the properties defined for the SaleOverridePrice resource, see SaleOverridePrice.

SEARCHING

The Pricing API supports filtering on any property contained in the resource in question. Queries filtered on PricingShelfId or PricingShelfId are optimized.

For queries filtered on strings, the strings are case-sensitive.

Query Parameters

Search For Products Assigned to a Pricing Shelf

Use this request to search for all products that have been assigned to a pricing shelf.

Note that the only property that can be queried is PricingShelfId.

Request

GET /Companies({CompanyId})/PricingShelfProducts?$filter=PricingShelfId eq {ShelfId}

Example Request

GET /Companies(336288)/PricingShelfProducts?$filter=PricingShelfId eq 356
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.

Request Parameters

None.

Response

Example Response

HTTP 200 Content-Type: application/json
[
    {
        "CompanyId": 336288,
        "Id": "47fc58d5-08f3-4a03-976f-f088d96c5a1a",
        "PricingShelfId": 356
    }
]

A successful request returns a 200 (OK) response with the list of the products assigned to this pricing shelf, represented as an array of PricingShelfProduct resources. For a description of the properties defined for the PricingShelfProduct resource, see PricingShelfProduct.

Search for Price Changes by Date

Use this request to search for all prices that have changed since a given date. If date is specified but not time, the system assumes a time of midnight.

Note that the only property that can be queried is LastModifiedDateUtc.

Request

GET /Companies({CompanyId})/Entities({EntityId})/ChangedPrices?$filter=LastModifiedDateUtc ge datetime'2018-06-08'&$skip=0&$top=1000

Example Request

GET /Companies(336288)/Entities(337756)/ChangedPrices?$filter=LastModifiedDateUtc ge datetime'2018-06-08'&$skip=0&$top=1000
Authorization: Bearer d24zZnduM2Z2NjNmd_0DZndvQCxBLFwrJhx6FgY7QzIRCAcpBiJrKyElXRAwDXdROAJ-FDUgSTc_PmorRyZUBy8PclQNNgMxDz5q
Accept: application/json

Path Parameters

Name Description
CompanyId (Integer) The identifier of the company.
EntityId (Integer) The identifier of the entity.

Request Parameters

None.

Response

Example Response

HTTP 200 Content-Type: application/json
[
    {
        "Id": 24,
        "CompanyId": 91416,
        "EntityId": 91452,
        "CatalogItemId": "535e1ed9-34c8-4402-89c1-48160eb1e9d0",
        "PricingTermId": null,
        "RegularPrice": 29.99,
        "IsDiscountable": true,
        "FloorPrice": 10,
        "OriginalPrice": 15,
        "PricingTierId": null,
        "PricingGroupId": null,
        "PricingShelfId": null,
        "OverridePriceId": null,
        "OverridePrice": null,
        "OverrideStartDateUtc": null,
        "OverrideStopDateUtc": null,
        "LastModifiedDateUtc": "2017-12-02T00:00:00"
    }
]

A successful request returns a 200 (OK) response with the list of the pricing records changed since the specified date, represented as an array of ChangedPrice resources. For a description of the properties defined for the ChangedPrice resource, see ChangedPrice.

ERRORS

HTTP Status Code Description How to Resolve
HTTP 400 A non-default sale override price must have
start and stop dates associated with it.
StartDate and StopDate must either both be set or both be null
HTTP 400 The start date is after, or equal to the end date.
The start date must come before the end date.
StartDate must be before StopDate
HTTP 400 Uri parameter representing resource id and resource
id found in the request content don't match.
When performing a PUT, ensure any URI parameters also in the request body match
HTTP 400 The date range overlaps with another sale period for
this pricing record.
Update or delelete the existing SaleOverridePrice that overlaps with the date range
HTTP 400 A default sale override price cannot have start
or stop dates associated with it.
Ensure StartDate and StopDate are not set if IsDefault is true
HTTP 400 The sale price must be greater or equal to zero. Ensure SalePrice is non-negative
HTTP 400 There is already a default sales overide for this pricing record.
Either delete it first, or modify that record.
Delete or modify the existing default SaleOverridePrice
HTTP 400 Entity is not related to company Ensure the Location belongs to the Company specified in the URI
HTTP 400 Error while extracting the request query... Ensure $filter query parameter is formatted correctly
HTTP 400 If a floor price is set, discountable must be set to true. Set discountable to true
HTTP 400 The set regular price must be smaller or equal to the floor price Ensure regular price is smaller then floor price
HTTP 400 If a floor price is set, discountable must be set to true. Set discountable to true
HTTP 404 Cannot find matching records Ensure CatalogItem ID is valid, CatalogItem exists and belongs to the Company specified in the URI
HTTP 404 That term does not exist Ensure PricingTerm ID is valid
HTTP 500 An error occurred while updating the entries Ensure request body is correct, ensure Name property does not contain more then 255 characters

RELEASE NOTES

2.8.0

Release Date: 24-05-2018

NEW
Support for Querying Changed Prices
This release adds support for querying product pricing that has been updated since a given date/time. This information helps you ensure that downstream devices have correct information. To support this feature, this release introduces the /ChangedPrices endpoint.
The new endpoint is read-only. Queries will identify new or updated prices. Returned records are ordered according to LastModifiedDateUtc, in descending order. Pagination controls ($skip and $top) are supported, as in the following example.

  • Companies({CompanyId})/Entities({EntityId})/ChangedPrices?$filter=LastModifiedDateUtc ge datetime'2018-04-01'&$skip=0&$top=1000

The query returns a list of ChangedPrice resources–a new resource derived from the PricingInformationResource.
In queries to the /ChangedPrices endpoint:
  • The CompanyId and EntityId must be distinct. In other words, you cannot query all prices changes at the company level.
  • The LastModifiedDateUtc filter is mandatory; the date/time cannot be more recent than the previous day at midnight.
  • The default value for $top is 500. The maximum allowed value for $top is 1000.

Was this page helpful?