Products resources

Resources that represent purchasable goods or services. Includes resources for describing the product type and shape (SKU), and for checking the availability of the product in an inventory.

Product

Represents a purchasable good or service. A product by itself isn't a purchasable item.

Property Type Description
id String The ID for a product.
title String The product title.
description String The product description.
productType ItemType An object that describes the type categorization(s) of this product.
isMicrosoftProduct Bool Indicates if the product is a Microsoft product.
publisherName String The name of the product's publisher if available.
links ProductLinks The resource links contained within the product.

ItemType

Represents the type of a product.

Property Type Description
id String The type identifier.
displayName String The display name for an item type.
subType ItemType Optional. An object that describes a subtype categorization for an item type.

Contains a list of links for a Product.

Property Type Description
skus Link The link for accessing the underlying SKUs.
links ResourceLinks The resource links contained within a resource.

Sku

Represents a purchasable Stock Keeping Unit (SKU) under a product.

Property Type Description
id String The ID for the SKU. The ID is unique only within the context of its parent product.
title String The title of the SKU.
description String The description of the SKU.
productId String The ID of the parent Product that contains a SKU.
minimumQuantity Int The minimum quantity allowed for purchase.
maximumQuantity Int The maximum quantity allowed for purchase.
isTrial Bool Indicates whether a SKU is a trial item.
supportedBillingCycles Array of strings The list of supported billing cycles for a SKU. Supported values are the member names found in BillingCycleType.
purchasePrerequisites Array of strings The list of prerequisite steps or actions that are needed prior to purchasing an item. The supported values are:
"InventoryCheck" - Indicates that the item's inventory should be evaluated before attempting to purchase an item.
"AzureSubscriptionRegistration" - Indicates that an Azure subscription is needed and must be registered before attempting to purchase an item.
inventoryVariables Array of strings The list of variables needed to execute an inventory check on an item. The supported values are:
"CustomerId" - The ID of the customer that the purchase would be for.
"AzureSubscriptionId" - The ID of the Azure subscription that would be used for an Azure reservation purchase.
"ArmRegionName" - The region for which to verify inventory. This value must match the "ArmRegionName" from the SKU's DynamicAttributes.
provisioningVariables Array of strings The list of variables that must be provided into the provisioning context of a cart line item when purchasing an item. The supported values are:
Scope - The scope for an Azure reservation purchase: "Single", "Shared".
"SubscriptionId" - The ID of the Azure subscription that would be used for an Azure reservation purchase.
"Duration" - The duration of the Azure reservation: "1Year", "3Year".
dynamicAttributes key/value pairs The dictionary of dynamic properties that apply to an item. The properties in a dictionary are dynamic and can change without notice. Partners should avoid creating strong dependencies on particular keys existing in the value of a property.
links ResourceLinks The resource links contained within the SKU.
AttestationProperties AttestationProperties The attestation properties for a SKU.
consumptionType String Is available only if the sku supports consumption such as overage.
specializedOfferProperties List of specializedOfferProperties Is available only if the product is subType of SpecializedOffer.
minimumPurchaseCommitment MinimumPurchaseCommitment The fixed amount committed on compute services.

Dynamic SKU attributes

Notable properties relevant to new commerce license-based products and services.

Note

The new commerce experiences for license-based services include many new capabilities and are available to all Cloud Solution Provider (CSPs). For more information, see new commerce experiences overview.

Property Type Description
hasConstraints Boolean Describes if the SKU contains assetContraints
isAddon Boolean Describes if the SKU is an add-on
prerequisiteSkus array of strings Describes products and skus the add-on can work with
upgradeTargetOffers array of strings A list of products and skus the item can upgrade to
conversionInstructions List of conversionInstructions List of instructions applicable to convert operations

specializedOfferProperties

Note

The new commerce experiences for license-based services include many new capabilities and are available to all Cloud Solution Provider (CSPs). For more information, see new commerce experiences overview.

Only applicable for product subTypes "SpecializedOffers"

Property Type Description
startDate String Term IDs the instructions apply to
endDate String Options that define renewals
pricingPolicies List of pricingPolicies A list of policies that define the promotion discount types and values.

MinimumPurchaseCommitment

Attributes of the minimum amount that can be committed on compute services.

Property Type Description
grain String The period of the minimum purchase commitment.
currencyCode Dictionary<String, String> The "currency" and "symbol" of the minimum amount that can be committed.
amount Int The minimum amount that can be committed on compute services.

PricingPolicies

Describe the promotion discount types and values.

Property Type Description
type String Describe whether the discount is based on percentages or flat rate discounts.
value String Defines the amount of the discount applied.

Availability

Represents a configuration in which a SKU is available for purchase (such as country/region, currency, and industry segment).

Property Type Description
id String The ID for this availability. This ID is unique only within the context of its parent product and SKU. Note Availability IDs can change over time. Partners should only rely on this value within a short time span after retrieving it.
productId String The ID of the product that contains this availability.
skuId String The ID of the SKU that contains this availability.
catalogItemId String The unique identifier for this item in the catalog. This ID must be populated into the OrderLineItem.OfferId or CartLineItem.CatalogItemId properties when purchasing the parent SKU. Note This ID can change over time. You should only rely on this value within a short time after retrieving it. It should only be accessed and used at the time of purchase.
defaultCurrency String The default currency supported for this availability.
segment String The industry segment for this availability. Supported values are: Commercial, Education, Government, NonProfit.
country String The country or region (in ISO country code format) where this availability applies.
isPurchasable Bool Indicates whether this availability is purchasable.
isRenewable Bool Indicates whether this availability is renewable.
RenewalInstructions RenewalInstruction Represents renewal instructions for a given availability.
product Product The product this availability corresponds to.
sku Sku The SKU this availability corresponds to.
terms Array of Term resources The collection of terms that are applicable to this availability.
links ResourceLinks The resource links contained within the availability.

Renewal instruction

Note

The new commerce experiences for license-based services include many new capabilities and are available to all Cloud Solution Provider (CSPs). For more information, see new commerce experiences overview.

Represents renewal instructions for a given availability.

Property Type Description
applicableTermIds Array of strings Term IDs the instructions apply to
RenewalOptions Array of RenewalOption Options that define renewals

RenewalOption

Note

The new commerce experiences for license-based services include many new capabilities and are available to all Cloud Solution Provider (CSPs). For more information, see new commerce experiences overview.

Represents renewal instructions for a given availability.

Property Type Description
renewToId String Represents the product and sku to renew to
isAutoRenewable Bool Whether or not the availability can be auto renewed

Term

Represents a term for which the availability can be purchased.

Property Type Description
duration String An ISO 8601 representation of the term's duration. The current supported values are P1M (one month), P1Y (one year) and P3Y (three years).
description String The description of the term.

InventoryCheckRequest

Represents a request to check inventory against certain catalog items.

Property Type Description
targetItems Array of InventoryItem The list of catalog items that the inventory check will evaluate.
inventoryContext Key/value pairs The dictionary of context values that are needed to carry out the inventory check(s). Each SKU of the products will define which values (if any) are needed to carry out this operation.
links ResourceLinks The resource links contained within the inventory check request.

InventoryItem

Represents a single item in an inventory check operation. This resource is used for specifying the target items in an input request and is also used to represent the output results of the inventory check operation.

Property Type Description
productId String (Required) The ID of the product.
skuId String The ID of the SKU. When using this resource as input to an inventory request, this value is optional. If this value isn't provided, then all SKUs under the product will be considered as target items of the inventory check operation.
isRestricted Bool Indicates whether this item was found to have a restricted inventory.
restrictions Array of InventoryRestriction The details of any restrictions that are found for this item. This property will only be populated if isRestricted = "true".

InventoryRestriction

Represents the details of an inventory restriction. These details are only applicable for inventory check output results, not for input requests.

Property Type Description
reasonCode String The code that identifies the reason for the restriction.
description String The description of the inventory restriction.
properties Key/value pairs The dictionary of properties that can provide further details on the restriction.

BillingCycleType

An [Enum/dotnet/api/system.enum) with values that indicate a type of billing cycle.

Value Position Description
Unknown 0 Enum initializer.
Monthly 1 Indicates that the partner will be charged monthly.
Annual 2 Indicates that the partner will be charged annually.
None 3 Indicates that the partner will not be charged. This value can be used for trial items.
OneTime 4 Indicates that the partner will be charged one time.
Triennial 5 Indicates that the partner will be charged every three years.

AttestationProperties

Represents an attestation type and if it is required for purchase.

Property Type Description
attestationType String Indicates the attestation type. Windows 365 products will have the value of Windows 365. Windows 365 attestation text is "I understand that each person using Windows 365 Business with Windows Hybrid Benefit also needs to have a valid copy of Windows 10/11 Pro installed on their primary work device."
enforceAttestation Boolean Indicates whether attestation is required for purchase.