Access Price Lists
Partners can leverage the Fetch Price List API to retrieve up-to-date pricing information for Adobe products. This API not only modernizes Adobe’s price list distribution process but also delivers several key advantages:
-
Real-time pricing access
Partners can retrieve available price lists programmatically to always work with the latest version of VIP Marketplace price lists, ensuring accuracy and reducing delays.
-
Historical pricing support (3YC)
The API provides access to historical pricing, including Three-Year Commitment (3YC) prices. This is essential for serving customers with price-locked agreements.
-
Comprehensive global coverage
Partners can access current price lists across all products, countries, and currencies.
-
Country-specific pricing support
Partners can retrieve country-specific price lists for accurate quoting. Depending on the
country, the price list uses USD or a local currency. See Local currency support for pricing, subscription, and renewal behavior.
Fetch Price List API
Sample request URL: POST <env root url>/v3/pricelist?offset=0&limit=10
The POST /v3/pricelist API retrieves the price list information for the partners.
Integration Guide
Partners will receive email notifications whenever updates are made to the Price List. Upon receiving the notification, partners can initiate a request to the Fetch Price List API by following the steps below:
-
Initiate API request
Use the
POST /v3/pricelistAPI. The request must include required parameters, with optional filters available to refine the response. See Request for the complete list of supported parameters. -
Handle API errors
If the API returns an error, refer to the Error Handling section for guidance on interpreting and resolving error codes.
-
Parse the response
The API returns a JSON response. Partners should parse this response and process the data outlined in the Response section.
-
Pagination support
The API supports pagination. Refer to the pagination guidelines to understand how to navigate through paged results efficiently.
-
Store Price List data
Partners are expected to store the Price List data in their internal systems. Key attributes to store include:
offerId– Unique identifier for the offer; required when placing orders through Order APIs.productFamily– Helps categorize and group offers that belong to the same product family.
Additional attribute details are available in the Response section.
-
Track Price List changes
To identify changes to the Price List, review the following fields:
acdIndicator: Indicates whether the offer is new, changed, or deleted.acdEffectiveDate: The date on which the acdIndicator status was set.
Request
Request header
Bearer <token>Query parameters
You can use the query parameters such as limit and offset in the request URL. For example: POST <env root url>/v3/pricelist?offset=0&limit=10
limitoffsetRequest body
A sample request is as follows:
{
"region": "NA",
"marketSegment": "GOV",
"priceListType": "3YC",
"currency": "USD",
"priceListMonth": "202601",
"filters": {
"offerId": "30001475CC01A12"
},
"includeOfferAttributes": [
"productFamily",
"productType",
"productTypeDetail",
"operatingSystem",
"language",
"version",
"users",
"metric",
"bridge",
"partNumber",
"acdIndicator",
"acdEffectiveDate",
"levelDetails",
"firstOrderDate",
"lastOrderDate",
"partnerPrice",
"estimatedStreetPrice",
"discountCode",
"estimatedShipDate",
"publicAnnounceDate",
"rmaRequestDeadline",
"acdDescription",
"pool",
"duration",
"additionalDetail"
]
}
Request parameters
regionAP, WE, LA, EE, PA, NA. <br /> - Supported country codes: JP, CN, MX, KR, TR, BR, IN, CA. See Local currency support for country-specific pricing and currencies.marketSegmentpriceListTypecurrencypriceListMonthYYYYMM format. Example: 202410.filtersofferId and productFamily filters are included in the request, then the API response will include results that match offerId AND productFamilyfilters → offerIdofferId.filters → productFamilyproductFamily.filters → firstOrderDatefilters → lastOrderDatefilters → discountCodeincludeOfferAttributesFilter
You can refine the data returned in the response by using the filters property in the request body. This allows you to narrow down the price lists based on specific criteria. All filter fields are combined using AND logic, meaning that only results matching all specified conditions will be returned if multiple filters are applied. Filters with null or empty values will be ignored. You can filter the data using the following parameters:
offerIdproductFamilyfirstOrderDatelastOrderDatediscountCode
Define offer data to be displayed in the response
To customize the offer details returned in the response, use the includeOfferAttributes parameter in the request body. This allows you to specify which offer attributes should be included in the response. For example:
productTypeproductTypeDetaillanguage
Notes:
-
The response will include only the attributes listed in
includeOfferAttributes, plus these default attributes:totalCountlimitoffsetoffersoffer → offerIdoffer → discountCodeoffer → productFamilyoffer → firstOrderDateoffer → lastOrderDateoffer → partnerPrice
-
Any request parameter that has no value is omitted from the response.
Response body
Disclaimer – Offer Attributes in Response
- When using the
includeOfferAttributesparameter in the request, the API will attempt to return the specified attributes for each offer. However, it is not guaranteed that every offer in the response will contain all the requested attributes. - The availability of each attribute depends on the underlying data applicability and validity for the specific offer. If an attribute is not relevant or does not have a valid (non-null) value for a given offer, it may be omitted from that offer’s attribute section in the response.
- Requesting all available
includeOfferAttributesdoes not ensure that all attributes will be present for every offer. Consumers of the API should design their integrations to handle missing or null attribute values gracefully.
A sample response is as follows:
{
"priceListMonth": "202601",
"marketSegment": "GOV",
"region": "NA",
"currency": "USD",
"priceListType": "3YC",
"totalCount": 2,
"count": 2,
"limit": 100,
"offset": 0,
"offers": [
{
"offerId": "30001475CC01A12",
"productFamily": "Creative Cloud For Enterprise All Apps",
"productType": "Subscription New",
"productTypeDetail": "Annual",
"additionalDetail": "GOV | First Order Date and Last Order Date=3-year commit accept. RMA Request Deadline=Last eligible order date.",
"operatingSystem": "Multiple Platforms",
"language": "Multi NorthAmerican Language",
"version": "ALL",
"users": "1 User",
"levelDetails": "Level 1 1 - 9",
"firstOrderDate": "2022-05-03T00:00:00.000+00:00",
"lastOrderDate": "2023-11-01T00:00:00.000+00:00",
"partnerPrice": "1206.84",
"estimatedStreetPrice": "1283.88",
"pool": "Application",
"duration": "12 Months"
},
{
"offerId": "30001475CC01A12",
"productFamily": "Creative Cloud For Enterprise All Apps",
"productType": "Subscription New",
"productTypeDetail": "Annual",
"additionalDetail": "GOV | First Order Date and Last Order Date=3-year commit accept. RMA Request Deadline=Last eligible order date.",
"operatingSystem": "Multiple Platforms",
"language": "Multi NorthAmerican Language",
"version": "ALL",
"users": "1 User",
"levelDetails": "Level 1 1 - 9",
"firstOrderDate": "2023-11-02T00:00:00.000+00:00",
"lastOrderDate": "2024-08-01T00:00:00.000+00:00",
"partnerPrice": "1263.24",
"estimatedStreetPrice": "1343.88",
"pool": "Application",
"duration": "12 Months"
}
]
}
Response parameters
priceListMonthmarketSegmentregioncurrencypriceListTypetotalCountcountlimitoffsetoffersoffer → offerIdoffer → productFamilyoffer → productTypeoffer → productTypeDetailoffer → additionalDetailoffer → operatingSystemoffer → languageoffer → versionoffer → usersoffer → levelDetailsoffer → firstOrderDateoffer → lastOrderDateoffer → partnerPriceoffer → estimatedStreetPriceoffer → pooloffer → durationHTTP status codes
Error codes specific to Fetch Price List API
The following table lists the error codes that are specific to the Fetch Price List API:
For the complete set of error codes, see Status codes and error handling.
Local currency support
Local currency support provides country-specific prices and, where applicable, a change in subscription currency. A country's cutover is the date on which its country-specific pricing and applicable currency take effect.
KR), Türkiye (TR), Brazil (BR), India (IN)CA)MX)Important:
- Local currency support will be rolled out in phases. The first phase, planned for November 2026, introduces country-specific pricing in USD. The second phase, planned for December 2026, introduces CAD for Canada and MXN for Mexico.
- The December 1, 2026 cutover date applies to South Korea, Türkiye, Brazil, and India only; it is not a CAD or MXN cutover date. Use the applicable country's cutover when planning orders and renewals.
Request country-specific prices
Use POST /v3/pricelist to retrieve country-specific prices. Use USD for KR, TR, BR, and IN, CAD for CA, and MXN for MX. See Request parameters for supported request fields and region and country codes.
Country-specific prices can differ from regional prices for the same offer, currency, and price list month. After cutover, use country-specific pricing, subject to existing 3YC partner price locks.
Each offer's firstOrderDate indicates when its country-specific price applies. The following example retrieves a price for Türkiye. The month and offer ID are illustrative.
{
"region": "TR",
"marketSegment": "COM",
"priceListType": "STANDARD",
"currency": "USD",
"priceListMonth": "202610",
"filters": {
"offerId": "65324779CA01A12"
}
}
To retrieve regional pricing, including historical pricing for a 3YC commitment accepted before cutover, specify the applicable regional code in region, such as NA for North America.
Quote and place orders at cutover
SWITCH_PLAN on or after cutoverFor order requests, send the applicable currencyCode on each line item as described in Create order.
Track subscriptions when the currency changes
Subscriptions are uniquely identified by SKU and currency. For Canada and Mexico, subscriptions transition from USD to the applicable local currency, CAD and MXN, as follows:
- New orders after cutover create subscriptions in CAD or MXN.
- At the next eligible anniversary renewal, the subscription renews in the new currency. If a subscription in that currency does not exist, a new one is created.
- Auto-renewal is disabled for the old-currency subscription, which remains active until it expires.
- Active 3YC and High Growth Offer, or HGO, commitments remain in the old currency until the commitment ends.
- Scheduled subscriptions migrate with the active subscription.
During the transition, two active subscriptions can exist for the same SKU. When tracking these subscriptions:
- Retain both subscription IDs and their currencyCode values.
- Do not treat the new subscription as a duplicate.
- Do not overwrite the history of the old subscription.
Currency changes also apply to global customers. Renewal consolidation applies only to subscriptions with the same deployment and SKU, not to all subscriptions for that SKU across countries. Continue to use deploymentId for deployment-specific orders. SeeManage deployments.
Use Get details of a customer's subscriptions to track the separate records and Manage auto-renewals to calculate the combined renewal quantity.
At the anniversary date, subscriptions for the same deployment and SKU are consolidated into one renewal order in the new currency. Preview Renewal shows the combined renewal quantity. The renewal quantity is calculated as follows:
- For each subscription, use renewalQuantity as the target quantity. If renewalQuantity is null, use currentQuantity.
- Subtract any quantity already early renewed from each subscription's target quantity.
- Add the remaining quantities from the old-currency and new-currency subscriptions to determine the final renewal quantity.
- If part of a subscription has been renewed early, the early-renewed quantity remains in the existing subscription until the next commitment. At the anniversary date, the remaining quantity is migrated to the new-currency subscription.
For example, if the USD subscription has a target of 100 licenses and 40 were already early renewed, and the CAD subscription has a target of 20 with no early renewals, the anniversary renewal is for 80 licenses in CAD:
(100 - 40) + (20 - 0) = 80
When the subscriptions are consolidated:
renewalQuantityis combined across both subscriptions. Either subscription can be updated before the anniversary date.- The
autoRenewablesetting from the new-currency subscription applies. flexDiscountCodesare carried over.- The Renewal / MOQ code is carried over.
Handle old-currency order rejections
After a country changes currency, new orders, order previews, manual renewals, early renewals, and seat additions in the old currency are rejected with CURRENCY_NOT_ACTIVE_FOR_COUNTRY (HTTP 422), subject to the commitment exceptions.
For eligible customers:
- Place a new order in the new currency instead of adding licenses to the old-currency subscription.
- Do not attempt to migrate an old subscription by changing the currency in a request that still references that subscription.
- For early renewals, specify the new currency without the old
subscriptionId. - Do not reference the old USD subscription, even if the request specifies
CADorMXN. - The new-currency subscription runs until the next anniversary date.
See Early renewal after a currency change for the request rules.
Preserve commitment pricing and currency
Existing commitments have the following exceptions:
- 3YC accepted before cutover: Retains the existing price list and currency until the commitment ends. Orders cannot be placed in the new currency during the commitment.
- 3YC early renewal: Active 3YC customers can continue to early renew in USD, subject to existing eligibility rules.
- Early currency transition: To move a customer to the new currency before the 3YC commitment ends, contact support to terminate the 3YC first.
- HGO commitments: Remain in the old currency until the commitment ends.
- HGO subscriptions: Remain ineligible for
SWITCH_PLAN.
Switch plans and process returns
For switch plans, returns, and reverts:
- An eligible
SWITCH_PLANacross currencies uses the destination currency for the entire transaction. - Returns retain the original order price and currency.
- Switch reverts retain the original order price and currency.
- Existing product, commitment, return-window, and switch-eligibility restrictions continue to apply.
See Mid-term upgrades.