Azure consumption promotions in Partner Center

Applies to: Partner Center

Appropriate roles: Admin agent, Billing admin, Sales agent

Important

Azure promotions (the experience, APIs, and reconciliation attribute) are currently available in the Sandbox environment only and aren't yet available in production.

Overview

Azure promotions for CSPs help partners accelerate customer adoption of Azure services by offering targeted, time-bound discounts on eligible Azure workloads, services, and commitment-based offerings. These promotions enable partners to reduce a customer’s cost of entry, support migrations, drive consumption growth, and create compelling sales opportunities without sacrificing the value of the underlying Azure platform. CSP partners can discover available promotions, identify eligible customers, and apply promotional offers as part of their customer engagement strategy. This approach helps them win new business, increase workload expansion, and strengthen customer retention. For eligible partners, Azure promotions work alongside existing partner economics. Promotional discounts apply in addition to standard CSP benefits, providing greater savings and a more competitive offering for customers while maintaining transparency through Partner Center, billing, and reconciliation experiences.

Scope

Azure promotions in CSP support the complete partner lifecycle, enabling partners to discover available offers, drive customer acquisition, apply promotional discounts, and track realized savings through billing and reporting. By supporting the end-to-end journey, Azure promotions help partners accelerate Azure consumption, increase customer value, and grow their cloud business.

  • Partners can discover and acquire Azure consumption promotions.
  • Partners can construct discoverability, acquisition, and management flows in their own portals via APIs.
  • Partners can see the acquisition and discounted amounts the promo gave them in their billing.

Sandbox availability

Sandbox availability is starting July 8, 2026. The early sandbox available window helps partners prepare to operationalize and adopt the new Azure promotions models.

In sandbox starting July 8, 2026:

  • Discovery: Enabling partners to view available promotions and add them to the cart. This includes support for catalog APIs to return the product, SKUs, and availabilities for the new benefit artifacts. Partners can export the Azure promotions data by market from the billing workspace.
  • Transact: Partners can add desired promotions to their cart and check out, acquiring the promotion for their customers.
  • Manage: Partners can view the acquired promotions and view the property details for the acquired promotions.
  • Authorization: Initial sandbox releases mandate that Admin agent roles are supported requiring Azure GDAP permissions.
  • Eligibility: Customer eligibility for Azure promotions is available when purchasing or by calling the eligibility API.
  • Reservation promotions: Promotions for reservations have been available starting in July. However, sandbox reservation purchases have been unsupported. The team is working to re-enable them in sandbox.

Available in future sandbox updates:

  • Billing: Aggregated recon file data for partner price and price benefits values were null for July sandbox usage. These properties will be available for August usage recon files available the first 10 days of September. Partner price and price benefits data will be available in the aggregate recon file, unbilled, and billed artifacts.
  • More support for roles other than admin agents. Updates to sandbox in the comming months enable sales agent partner users and APPID API paths.

Out of scope

  • Azure promotions aren't surfaced in the license-based getPromotions API (These are only applied office promotions).
  • Transferring Azure promos.

High-level scenarios

Discovery

You can find Azure promotions directly within the CSP catalog experience under Azure > Benefits > Azure Promotions. This feature makes it easy for partners to discover and evaluate available offers. The platform enforces promotion availability based on the customer's market eligibility and, when customer context is provided, displays only promotions that market. Each promotion includes detailed information such as the promotion name, description, discount type (consumption- or purchase-based), promotion ID, discount percentage, eligibility criteria, start and end dates, and term length. Catalog APIs also support both discovery scenarios and customer-specific views, so partners can either browse all available Azure promotions or retrieve only the promotions applicable to a particular customer.

Download and view Azure promotions list

Partners can download or view Azure promotions details directly in the Partner Center UX.

To download or view Azure promotions:

  1. Go to Partner Center and navigate to the Pricing workspace.
  2. Select Benefits from the left navigation.
  3. Select Azure consumption promotions from the Benefit type dropdown.
  4. Browse the Azure consumption promotions table showing Product ID, Name, Sku Id, and Description.
  5. Select an Azure promotions row to open the details panel with full information including offer dates, discount type and value, term, billing cycle, and constraints.
  6. Partners can download list of active commercial growth margins for a given market (country/region) and segment. For example, if a partner wants to get growth margins for products sold to a German (DE) Commercial customer, then select the German (DE) market and Commercial segment to download the growth margins list.

The Azure consumption promotions download list contains the following data:

Field Example Description
country US Customer country/market.
productId DZH318XZMPS8 Identifier of the product.
skuId 0001 Identifier of the SKU.
skuTitle Azure tenant Id based promotions Title or name of the promotion.
skuDescription 20% discount on Azure consumption of product DZH318Z0C120 SKU 002Q - …. Promotion short description
startDate 2026-06-01T00:00:00Z Start date for when promotion is applied.
endDate 2026-10-01T00:00:00Z End date for when promotion is applied.
isRenewable FALSE Describes if end of term can renew.
termDuration P3M Length of the term.
termDescription 3 (Month) Description for term length.
billingCycle OneTime How frequently billing occurs.
discountType PercentDiscount Type of discount applied (percentage or flat).
discountValue 0.2 Value of the discount.
productType Azure Type of product the promotion is for.
productSubType AzurePromotion Subtype identifying the promotion.

Transact

Azure promotions are different from license-based promotions. License-based promotions attach to or apply to a purchased SKU. You can view them in the context of an acquired subscription. You acquire Azure promotions outright. They're effectively zero-dollar purchases. Once acquired, if the partner's customer meets the promotion's criteria, usage-based line item charges get the promotional discount at the end of the billing period. Partners can use the Partner Center user interface to acquire an Azure promotion, just like buying any other subscription.

  1. Partners go to a customer.
  2. Partners select add subscription to get to the catalog.
  3. Partners select Azure, Benefits, and then Azure promotions to view available promotions.
  4. Partners select an Azure plan, Azure subscription, and the resource group the promotion aligns to.
  5. Partners add the promotion to the cart and check out, like any other purchase activity.

APIs support promotion acquisition and allow partners to evaluate a customer's eligibility for a specific promotion before purchase. Once an eligible promotion is selected, you can add it to the cart, with the quantity automatically set to one and not editable. The acquisition process requires the partner to specify the Azure subscription and resource group that receive the promotion. The checkout experience includes a confirmation page displaying the promotion details and requiring acknowledgement of the promotion's terms and conditions. The purchase process revalidates eligibility, ensuring that only qualifying customers can acquire the promotion. If a customer isn't eligible, the system returns specific eligibility error types and provides a reason why the promotion can't be added to the cart. Where configured, concurrency controls enforce one-time purchases to prevent duplicate acquisitions. Historical criteria determine promotion eligibility. Once a promotion is successfully acquired, the associated benefits apply to eligible Azure charges for the duration of the promotion.

Subscriptions and resource groups

Partners assign a subscription and resource group when acquiring a promotion. Both eligibly and discounts applied by the promotion are considered at the transacting partner-customer pair. The subscription and resource group assigned during acquisition explain where the promotion is stored or organized in Azure, it doesn't impact the partner-customer scooping of the promotion's eligibly or discounts. Partners can change a promotion's subscription or resource group with no impact on eligibility of applied discounts during the promotion's lifetime.

Manage

Under Promotions, partners can view high-level details for each line item, including the promotion name (SKU name), status (active or expired), discount type (Consumption or Purchase), discount percentage, start date, and end date. Redeemed promotions appear as subscriptions within Subscriptions > Azure > Benefits, providing a consistent experience alongside other Azure benefits. Partners can view the promotions they acquire but can't make any modifications to them. Azure promotion benefit can't be canceled, however, if an associated Azure subscription is canceled, all promotions tied to that subscription are canceled as well. Benefits APIs also return promotion information. Selecting a promotion displays a details pane containing key attributes such as Product ID, SKU ID, UPN, type (AzurePromotion), name, description, discount type (Consumption or Purchase), discount percentage, eligible services, and term. Azure promotions can't be transferred from one partner to another. Transferring an Azure resource that has a promotion cancels the promotion under the source partner. The target partner acquires the promotion if needed.

Billing

After you acquire Azure promotions, the portal displays them as benefits under Subscriptions > Azure > Benefits. Partners can view and track all redeemed promotions within this familiar management experience. For each promotion, partners can see key information such as the promotion name, status (active or expired), discount type (consumption-based or purchase-based), discount percentage, start date, and end date. Partners have read-only visibility into acquired promotions and can't modify promotion settings after purchase. Through the experience, partners can access detailed promotion information, including the Product ID, SKU ID, UPN, promotion type, name, description, discount type, discount percentage, eligible services, and term length. Benefits APIs also return promotion data, enabling partners to integrate promotion visibility into their own management tools and workflows. If you cancel the associated Azure subscription, the cancellation process also cancels any promotions aligned to that subscription.

  • Azure promo acquisitions show up in the BilledInvoiceRecon as entitlement-based purchases with PSA, SKU name, SKU description, with $0 values.
  • Azure promos apply to BilledUsage and unbilled recon files reducing the UnitPrice to the EffectiveUnitPrice, BenefitID is the resourceURI.
  • Partner earned credit (PEC) is applied first, then the promo discount is applied to the post-PEC resulting in a discounted effectiveUnitPrice.

Supplemental recon file

A new supplemental reconciliation (aggregated recon file) is available 48 hours from the time the base recon file is available. The aggregated recon file includes usage line items where Azure promotions were applied. It doesn't replace the existing recon file. Instead, it's a richer companion report intended to help partners understand:

  • Which promotion was applied
  • Promotion identifiers
  • Discount percentages and pricing modifiers
  • How billed amounts are calculated
  • Future reconciliation and scenarios

Partners match records to the recon file rows by using the same productId, SkuId, and meterID. The aggregated recon file only includes records with promotion benefit discounts, not the whole recon file.

You can find documentation for the aggregated recon file in the billing and recon learn article.

API details

Discoverability

Partners discover promotions by using the catalog APIs: getProducts, getSKU, and getAvailabilities.

Get promotion products

The getProducts API returns Azure promotions if the targetView is AzurePromotions. You need to specify the market. For example:

Request

GET /v1/products?targetView=AzurePromotions&country=AU

Response

{
  "totalCount": 1,
  "items": [
    {
      "id": "DZH318XZR8NQ",
      "title": "Test Azure Apps Service Promotion",
      "description": "Get a 20% promotion on Azure Apps Services consumption",
      "productType": {
        "id": "Azure",
        "displayName": "Azure",
        "subType": {
          "id": "AzurePromotion",
          "displayName": "AzurePromotion"
        }
      },
      "isMicrosoftProduct": true,
      "publisherName": "Microsoft Corporation",
      "links": {
        "skus": {
          "uri": "/products/DZH318XZR8NQ/skus?country=AU",
          "method": "GET",
          "headers": []
        },
        "self": {
          "uri": "/products/DZH318XZR8NQ?country=AU",
          "method": "GET",
          "headers": []
        }
      }
    }
  ],
  "links": {
    "self": {
      "uri": "/products?targetView=AzurePromotions&market=AU",
      "method": "GET",
      "headers": []
    }
  },
  "attributes": {
    "objectType": "Collection"
  }
}

Get SKUs for a promotion product

Gets a list of SKUs for a given product ID.

Request

GET /v1/customers/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/products/DZH318XZR8NQ/skus

Response

{
  "totalCount": 1,
  "items": [
    {
      "id": "0001",
      "productId": "DZH318XZR8NQ",
      "title": "Test Azure Apps Service Promotion",
      "description": "Get a 20% promotion on Azure Apps Services consumption",
      "minimumQuantity": 1,
      "maximumQuantity": 1,
      "isTrial": false,
      "supportedBillingCycles": [
        "one_time"
      ],
      "purchasePrerequisites": [
        "MicrosoftCustomerAgreement"
      ],
      "inventoryVariables": [],
      "provisioningVariables": [],
      "actions": [
        "Refund"
      ],
      "dynamicAttributes": {
        "isMicrosoftProduct": true,
        "reselleeQualifications": "commercial"
      },
      "links": {
        "availabilities": {
          "uri": "/products/DZH318XZR8NQ/skus/0001/availabilities?country=US",
          "method": "GET",
          "headers": []
        },
        "self": {
          "uri": "/products/DZH318XZR8NQ/skus/0001?country=US",
          "method": "GET",
          "headers": []
        }
      },
      "manualActivation": true,
      "productCodes": [
        {
          "termId": "u7oow88ay6my",
          "upn": "0008f841-0000-0160-10a6-9598fed22cd0"
        }
      ]
    }
  ],
  "links": {
    "self": {
      "uri": "/products/DZH318XZR8NQ/skus?country=US",
      "method": "GET",
      "headers": []
    }
  },
  "attributes": {
    "objectType": "Collection"
  }
}

Get availabilities for a promotion product

Gets availabilities for an Azure promotion SKU.

Request

GET /v1/products/DZH318XZR8NQ/skus/0001/availabilities?Country=GB

Response

{
  "totalCount": 2,
  "items": [
    {
      "id": "DZH318Z0BMT8",
      "productId": "DZH318XZR8NQ",
      "skuId": "0001",
      "catalogItemId": "DZH318XZR8NQ:0001:DZH318Z0BMT8",
      "defaultCurrency": {
        "code": "USD",
        "symbol": "US$"
      },
      "segment": "commercial",
      "country": "GB",
      "isPurchasable": true,
      "isRenewable": false,
      "renewalInstructions": [],
      "terms": [
        {
          "id": "u7oow88ay6my",
          "duration": "P3M",
          "description": "3 (Month)",
          "billingCycle": "OneTime"
        }
      ],
      "links": {
        "self": {
          "uri": "/products/DZH318XZR8NQ/skus/0001/availabilities/DZH318Z0BMT8?country=GB",
          "method": "GET",
          "headers": []
        }
      },
      "product": {
        "id": "DZH318XZR8NQ",
        "title": "Test Azure Apps Service Promotion",
        "description": "Get a 20% promotion on Azure Apps Services consumption",
        "productType": {
          "id": "Azure",
          "displayName": "Azure",
          "subType": {
            "id": "AzurePromotion",
            "displayName": "AzurePromotion"
          }
        },
        "isMicrosoftProduct": true,
        "publisherName": "Microsoft Corporation",
        "links": {
          "skus": {
            "uri": "/products/DZH318XZR8NQ/skus?country=GB",
            "method": "GET",
            "headers": []
          },
          "self": {
            "uri": "/products/DZH318XZR8NQ?country=GB",
            "method": "GET",
            "headers": []
          }
        }
      },
      "sku": {
        "id": "0001",
        "productId": "DZH318XZR8NQ",
        "title": "Test Azure Apps Service Promotion",
        "description": "Get a 20% promotion on Azure Apps Services consumption",
        "minimumQuantity": 1,
        "maximumQuantity": 1,
        "isTrial": false,
        "supportedBillingCycles": [
          "one_time"
        ],
        "purchasePrerequisites": [
          "MicrosoftCustomerAgreement"
        ],
        "inventoryVariables": [],
        "provisioningVariables": [],
        "actions": [
          "Refund"
        ],
        "dynamicAttributes": {
          "isMicrosoftProduct": true,
          "internal": false,
          "reselleeQualifications": "commercial"
        },
        "links": {
          "availabilities": {
            "uri": "/products/DZH318XZR8NQ/skus/0001/availabilities?country=GB",
            "method": "GET",
            "headers": []
          },
          "self": {
            "uri": "/products/DZH318XZR8NQ/skus/0001?country=GB",
            "method": "GET",
            "headers": []
          }
        },
        "manualActivation": true,
        "productCodes": [
          {
            "termId": "u7oow88ay6my",
            "upn": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f"
          }
        ]
      },
      "pricingPolicies": [
        {
          "policyId": "PricingPolicyId:tgepmofpe48o",
          "policyData": {
            "benefits": [
              {
                "type": "PercentDiscount",
                "value": 0.2
              }
            ]
          }
        }
      ],
      "offerPolicies": [
        {
          "policyId": "OfferPolicyId:oumrakkj1i1o",
          "policyData": {
            "beneficiary": "Customer",
            "properties": {
              "startDate": "2026-03-15T00:00:00Z",
              "endDate": "2026-06-30T00:00:00Z"
            },
            "isOptional": false
          }
        }
      ],
      "eligibilityPolicies": [
        {
          "policyId": "EligibilityPolicyId:ow3m58s5oioy",
          "policyData": {
            "eligibility": {
              "constraintsData": {
                "seatConstraints": [],
                "assetOwnershipLimits": [],
                "eligibilityConstraints": [],
                "productOwnershipConstraints": [
                  []
                ],
                "purchaseRequirementConstraints": []
              },
              "dynamicPurchaseConstraint": {
                "ConfigurationProperties": {
                  "parameters": [
                    {
                      "name": "lookbackDays",
                      "type": "string",
                      "description": "Lookback period",
                      "value": "30d",
                      "required": true,
                      "datasource": null
                    },
                    {
                      "name": "productNames",
                      "type": "array",
                      "description": "Resolved product names from catalog",
                      "value": [
                        "Azure App Service Basic Plan - Linux",
                        "Azure App Service Basic Plan"
                      ],
                      "required": true,
                      "datasource": null
                    },
                    {
                      "name": "spendThreshold",
                      "type": "string",
                      "description": "Minimum spend threshold",
                      "value": "1000000000",
                      "required": true,
                      "datasource": null
                    }
                  ],
                  "query": "Charges | where Date >= ago('30d') | where ProductName in~ ('Azure App Service Basic Plan - Linux', 'Azure App Service Basic Plan') | summarize TotalSpend=sum(RetailChargesInPC) by BillingAccountId | where TotalSpend > '1000000000'"
                }
              }
            }
          }
        }
      ]
    },
    {
      "id": "DZH318Z0BMT9",
      "productId": "DZH318XZR8NQ",
      "skuId": "0001",
      "catalogItemId": "DZH318XZR8NQ:0001:DZH318Z0BMT9",
      "defaultCurrency": {
        "code": "USD",
        "symbol": "US$"
      },
      "segment": "commercial",
      "country": "GB",
      "isPurchasable": true,
      "isRenewable": false,
      "renewalInstructions": [],
      "terms": [
        {
          "id": "u7oow88ay6my",
          "duration": "P3M",
          "description": "3 (Month)",
          "billingCycle": "OneTime"
        }
      ],
      "links": {
        "self": {
          "uri": "/products/DZH318XZR8NQ/skus/0001/availabilities/DZH318Z0BMT9?country=GB",
          "method": "GET",
          "headers": []
        }
      },
      "product": {
        "id": "DZH318XZR8NQ",
        "title": "Test Azure Apps Service Promotion",
        "description": "Get a 20% promotion on Azure Apps Services consumption",
        "productType": {
          "id": "Azure",
          "displayName": "Azure",
          "subType": {
            "id": "AzurePromotion",
            "displayName": "AzurePromotion"
          }
        },
        "isMicrosoftProduct": true,
        "publisherName": "Microsoft Corporation",
        "links": {
          "skus": {
            "uri": "/products/DZH318XZR8NQ/skus?country=GB",
            "method": "GET",
            "headers": []
          },
          "self": {
            "uri": "/products/DZH318XZR8NQ?country=GB",
            "method": "GET",
            "headers": []
          }
        }
      },
      "sku": {
        "id": "0001",
        "productId": "DZH318XZR8NQ",
        "title": "Test Azure Apps Service Promotion",
        "description": "Get a 20% promotion on Azure Apps Services consumption",
        "minimumQuantity": 1,
        "maximumQuantity": 1,
        "isTrial": false,
        "supportedBillingCycles": [
          "one_time"
        ],
        "purchasePrerequisites": [
          "MicrosoftCustomerAgreement"
        ],
        "inventoryVariables": [],
        "provisioningVariables": [],
        "actions": [
          "Refund"
        ],
        "dynamicAttributes": {
          "isMicrosoftProduct": true,
          "internal": false,
          "reselleeQualifications": "commercial"
        },
        "links": {
          "availabilities": {
            "uri": "/products/DZH318XZR8NQ/skus/0001/availabilities?country=GB",
            "method": "GET",
            "headers": []
          },
          "self": {
            "uri": "/products/DZH318XZR8NQ/skus/0001?country=GB",
            "method": "GET",
            "headers": []
          }
        },
        "manualActivation": true,
        "productCodes": [
          {
            "termId": "u7oow88ay6my",
            "upn": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f"
          }
        ]
      },
      "pricingPolicies": [
        {
          "policyId": "PricingPolicyId:tgepmofpe48o",
          "policyData": {
            "benefits": [
              {
                "type": "PercentDiscount",
                "value": 0.2
              }
            ]
          }
        }
      ],
      "offerPolicies": [
        {
          "policyId": "OfferPolicyId:oumrakkj1i1o",
          "policyData": {
            "beneficiary": "Customer",
            "properties": {
              "startDate": "2026-03-15T00:00:00Z",
              "endDate": "2026-06-30T00:00:00Z"
            },
            "isOptional": false
          }
        }
      ],
      "eligibilityPolicies": [
        {
          "policyId": "EligibilityPolicyId:ow3m58s5oioy",
          "policyData": {
            "eligibility": {
              "constraintsData": {
                "seatConstraints": [],
                "assetOwnershipLimits": [],
                "eligibilityConstraints": [],
                "productOwnershipConstraints": [
                  []
                ],
                "purchaseRequirementConstraints": []
              },
              "dynamicPurchaseConstraint": {
                "ConfigurationProperties": {
                  "parameters": [
                    {
                      "name": "lookbackDays",
                      "type": "string",
                      "description": "Lookback period",
                      "value": "30d",
                      "required": true,
                      "datasource": null
                    },
                    {
                      "name": "productNames",
                      "type": "array",
                      "description": "Resolved product names from catalog",
                      "value": [
                        "Azure App Service Basic Plan - Linux",
                        "Azure App Service Basic Plan"
                      ],
                      "required": true,
                      "datasource": null
                    },
                    {
                      "name": "spendThreshold",
                      "type": "string",
                      "description": "Minimum spend threshold",
                      "value": "1000000000",
                      "required": true,
                      "datasource": null
                    }
                  ],
                  "query": "Charges | where Date >= ago('30d') | where ProductName in~ ('Azure App Service Basic Plan - Linux', 'Azure App Service Basic Plan') | summarize TotalSpend=sum(RetailChargesInPC) by BillingAccountId | where TotalSpend > '1000000000'"
                }
              }
            }
          }
        }
      ]
    }
  ],
  "links": {
    "self": {
      "uri": "/products/DZH318XZR8NQ/skus/0001/availabilities?country=GB",
      "method": "GET",
      "headers": []
    }
  },
  "attributes": {
    "objectType": "Collection"
  }
}

Get customer eligibility

Important

The eligibility API is available in sandbox starting September 18, 2025.

Returns a customer's eligibility for an Azure promotion. Partners pass the Azure subscription ID and the IDs for the promotion.

Request

POST v1/customers/{customer_id}/priceBenefitEligibilities

Request

{
  "items": [
    {
      "id": 0,
      "type": "Promotion",
      "cloudSubscriptionId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
      "priceBenefit": {
        "productId": "DZH318Z0BXWC",
        "skuId": "0001"
      }
    }
  ]
}

Response

Request for customer eligible for a reservations promotion.

{
  "totalCount": 1,
  "items": [
    {
      "id": 0,
      "type": "Promotion",
      "cloudSubscriptionId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
      "eligibilities": [
        {
          "priceBenefit": {
            "productId": "DZH318XZMR1C",
            "skuId": "0001"
          },
          "isEligible": true,
          "applicableProducts": [
            {
              "productId": "DZH318Z0D1L4",
              "skuId": "02BV",
              "productCode": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
              "productName": "Virtual Machines Dv4 Series",
              "skuName": "Reserved VM Instance, Standard_D2_v4, PL Central, 1 Year",
              "productProperties": {
                "armSkuName": "Standard_D2_v4",
                "armRegionName": "polandcentral"
              }
            }
          ]
        }
      ]
    }
  ]
}

Response for not eligible.

{
  "items": [
    {
      "id": 0,
      "type": "Promotion",
      "cloudSubscriptionId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
      "eligibilities": [
        {
          "priceBenefit": {
            "productId": "DZH318Z0BXWC",
            "skuId": "0001"
          },
          "isEligible": false,
          "errors": [
            {
              "type": "PromotionEligibilityCriteriaNotMet",
              "description": "The subscription does not meet the eligibility criteria for this promotion."
            }
          ]
        }
      ]
    }
  ]
}

Transact

Partners add promotions as cart line items, like any other transaction. CartLineItem includes a new property called PurchaseContext where the partner supplies cloudSubscriptionId (Azure Subscription) and their resource group.

Request

{
  "LineItems": [
    {
      "id": 0,
      "catalogItemId": "DZH318XZR8NQ:0001:DZH318Z0BMT8",
      "quantity": 1,
      "billingCycle": "OneTime",
      "termDuration": "P3M",
      "purchaseContext": {
        "cloudSubscriptionId": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
        "resourceGroupName": "M365"
      }
    }
  ]
}

Manage

Get benefits

New API to return benefits GetBenefits. Here's a sample from Benefits:

Request

GET /v1/customers/{{customerId}}/benefits
GET /v1/customers/{{customerId}}/benefits/{{benefitsName}}

Response

{
  "totalCount": 3,
  "items": [
    {
      "name": "2b6ccdee-1568-43ae-bdf0-59eec4b74af8",
      "displayName": "Test Azure Apps Service Promotion",
      "status": "Pending",
      "discountPercentage": 20.0,
      "startDate": "2026-06-11T16:55:10.307+00:00",
      "endDate": "2026-09-11T16:55:10.307+00:00",
      "subscriptionDetails": {
        "resourceId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/testmo01_group/providers/Microsoft.BillingBenefits/discounts/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
        "subscriptionId": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
        "resourceGroup": "testmo01_group"
      },
      "orderId": "819fa27d18da",
      "links": {
        "self": {
          "uri": "/customers/ee1a18f8-8c0b-4a11-a8ea-dbc92b0356eb/benefits/2b6ccdee-1568-43ae-bdf0-59eec4b74af8",
          "method": "GET",
          "headers": []
        }
      }
    },
    {
      "name": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
      "displayName": "Test Azure Apps Service Promotion",
      "product": {
        "productId": "DZH318XZR8NQ",
        "skuId": "0001"
      },
      "status": "Active",
      "discountPercentage": 20.0,
      "startDate": "2026-05-21T16:35:21.7128047+00:00",
      "endDate": "2026-08-21T16:35:21.7128047+00:00",
      "subscriptionDetails": {
        "resourceId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/TestRG/providers/Microsoft.BillingBenefits/discounts/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
        "subscriptionId": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
        "resourceGroup": "testrg"
      },
      "orderId": "cc02dcf0d4cb",
      "links": {
        "self": {
          "uri": "/customers/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/benefits/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
          "method": "GET",
          "headers": []
        }
      }
    },
    {
      "name": "6ee60883-1792-48e9-a40d-7fb79f4152dd",
      "displayName": "Test Azure Apps Service Promotion",
      "status": "Pending",
      "discountPercentage": 20.0,
      "startDate": "2026-06-12T16:40:36.295+00:00",
      "endDate": "2026-09-12T16:40:36.295+00:00",
      "subscriptionDetails": {
        "resourceId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/M365/providers/Microsoft.BillingBenefits/discounts/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
        "subscriptionId": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
        "resourceGroup": "m365"
      },
      "orderId": "0049aed67ab5",
      "links": {
        "self": {
          "uri": "/customers/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/benefits/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
          "method": "GET",
          "headers": []
        }
      }
    }
  ],
  "attributes": {
    "objectType": "Collection"
  }
}

Get benefits by name

New method GetBenefitByName returns the benefit by name.

Request

GET /v1/customers/{{customerId}}/benefits/{{benefitsName}}

Response

{
  "name": "250450a2-00d4-4781-8766-905fedcecf21",
  "displayName": "Test Azure Apps Service Promotion",
  "product": {
    "productId": "DZH318XZR8NQ",
    "skuId": "0001"
  },
  "status": "Active",
  "discountPercentage": 20.0,
  "startDate": "2026-06-08T21:03:04.0383293+00:00",
  "endDate": "2026-09-08T21:03:04.0383293+00:00",
  "subscriptionDetails": {
    "resourceId": "/subscriptions/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/resourceGroups/TestRG/providers/Microsoft.BillingBenefits/discounts/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
    "subscriptionId": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
    "resourceGroup": "testrg"
  },
  "links": {
    "self": {
      "uri": "/customers/ee1a18f8-8c0b-4a11-a8ea-dbc92b0356eb/benefits/250450a2-00d4-4781-8766-905fedcecf21",
      "method": "GET",
      "headers": []
    }
  }
}