Get promotion by ID
Applies To
- Partner Center
Appropriate roles
- Admin agent
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.
Partners can get a single promotion for a given promotion ID and country/region. This method returns the promotion data, ignoring the promotion start and end dates. This method is used primarily for reconciliation purposes to retrieve promotion details even after the promotion expired.
Prerequisites
Credentials as described in Partner Center authentication. This scenario supports authentication with both standalone App and App+User credentials.
Promotion ID is delimited set of strings that represent a specific promotion.
Country represents the customer country/region promotions are available for. Country is represented by a two character country code.
REST request
Request syntax
Method | Request URI |
---|---|
GET | {baseURL}/v1/productpromotions/{promotion-id}?country={country-code HTTP/1.1 |
URI parameter
Use the following query parameters to return available promotions.
Name | Type | Required | Description |
---|---|---|---|
promotion-id | string | Y | A string defining the promotion to retrieve. |
country | string | Y | A two letter country code determining which customer country/region promotions are available for. |
Request headers
For more information, see Partner Center REST headers.
Request body
None
Promotional constraints
Promotional Constraints are now returned by this API. See examples in the response below. If a promotion has eligibility constraints, details are returned in the response. This data can be used to understand if your customer qualifies for the discount.
Constraint category | Constraint value | Constraint type | Description |
---|---|---|---|
SeatConstraints | MinSeats | SubscriptionQuantity | Minimum seats needed for the customer to be eligible for the promo. |
SeatConstraints | MaxSeats | SubscriptionQuantity | Maximum seats the promo can be applied to. |
AssetOwnershipLimits | MinAssets | LifetimeRedemptionCount | The minimum number of times the promo can be applied for a customer, typically 0. |
AssetOwnershipLimits | MaxAssets | LifetimeRedemptionCount | The maximum number of times the promo can be applied for customer. |
EligibilityConstraints | isApplicable | FirstPurchase | Flag indicating if this must be the customer's first purchase of the product SKU to receive the promo. |
ProductOwnershipConstraints | bigId | N/A | Specified offers the customer must already own to be eligible for the promo (Product SKU). |
Request example
GET https://api.partnercenter.microsoft.com/v1/productpromotions/CFQ7TTC0HD33:0003:CFQ7TTC0K59M?country=US HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 18752a69-1aa1-4ef7-8f9d-eb3681b2d70a
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US
REST response
If successful, this method returns a single promotion.
Response success and error codes
Each response comes with an HTTP status code that indicates success or failure and more debugging information. Use a network trace tool to read this code, error type, and other parameters. For the full list, see Error Codes.
Response example
HTTP/1.1 200 OK
Content-Length: 138
Content-Type: application/json
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: 18752a69-1aa1-4ef7-8f9d-eb3681b2d70a
Date: Fri, 24 Apr 2023 20:42:26 GMT
{
"id": "39NFJQT1SNC7:0001:39NFJQT1Q5KM",
"name": "TEST Promotion May 2023 - Microsoft 365 F3",
"description": "TEST Promotion May 2023 - Microsoft 365 F3",
"startDate": "2023-05-03T00:00:00+00:00",
"endDate": "9999-01-01T00:00:00+00:00",
"properties": {
"isAutoApplicable": true
},
"requiredProducts": [
{
"productId": "CFQ7TTC0LH05",
"skuId": "0001",
"term": {
"duration": "P1Y",
"billingCycle": "Annual"
},
"pricingPolicies": [
{
"policyType": "PercentDiscount",
"value": "0.5"
}
]
}
],
"promotionConstraints": {
"seatConstraints": [
{
"minSeats": 10,
"maxSeats": 100,
"type": "SubscriptionQuantity"
}
],
"assetOwnershipLimits": [
{
"minAssets": 0,
"maxAssets": 3,
"type": "LifetimeRedemptionCount"
}
],
"eligibilityConstraints": [
{
"isApplicable": true,
"type": "FirstPurchase"
}
],
"productOwnershipConstraints": [
[
{
"bigId": "CFQ7TTC0MBMD/0002"
}
]
]
}
}