Supporting Dynamic Pricing in other order actions
Updating Pricing Attributes
The PricingAttributes of ABP charges can be updated via update product order action through REST API.
When PricingAttributes is updated, the charge’s originalListPrice will not be updated automatically, the user needs to update its value via the originalListPrice field explicitly.
To update a charge’s pricing attributes by creating an order:
-
Determine the values of the following variables and configure the dynamic pricing enabled charge in the product catalog accordingly:
Variable Description $AccountNum The number of the account that will own the order and the subscription. For example, A00000001. $subscriptionNumber The number of the subscription that owns the rate plans. For example, A-S0000001. $subscriptionRatePlanId The ID of the subscription rate plan. For example, 8a90876c84ae5ef70184c2080c307343. $chargeNumber The number of the subscription rate plan charge to be updated. For example, C-00036197. $Today Today's date. For example, 2025-07-20. -
Refer to the example payload to create a new order. In this example, the user updates the charge’s pricing attribute, site_size from 7 to 99, originalListPrice to $22 and quantity of the charge to 15.
The charge with number, $chargeNumber was added by the previous Add Product example.
Request POST /v1/orders/Request Body { "existingAccountNumber": "$AccountNum", "orderDate": "$Today", "subscriptions": [ { "subscriptionNumber": "$subscriptionNumber", "orderActions": [ { "updateProduct": { "ratePlanId": "$subscriptionRatePlanId", "customFields": { "RateClass__c": "High" }, "chargeUpdates": [ { "chargeNumber": "$chargeNumber", "pricingAttributes": { "Site_Size": 99 }, "pricing": { "recurringPerUnit": { "originalListPrice": 22, "quantity": 15 } } } ] }, "triggerDates": [ { "name": "ContractEffective", "triggerDate": "$Today" }, { "name": "CustomerAcceptance", "triggerDate": "$Today" }, { "name": "ServiceActivation", "triggerDate": "$Today" } ], "type": "UpdateProduct" } ] } ] } -
After the rate plan is updated successfully, you can retrieve the pricingAttributes value of the charge via the GET subscription end point. This is an example response of pricingAttributes.
"pricingAttributes": {
"Site_Size": 99,
"Account_Type": "VIP",
"EffectiveDate": "2025-06-20T00:00:00+08:00",
"Subscription_Renewal_Term": 12,
"Subscription_RatePlan_Class": "Low"
}
pricingAttributes includes all the pricing attribute values including both external attributes and attributes mapped to Zuora object fields.
Renewing a subscription with dynamic pricing enabled charges
When renewing a subscription with dynamic pricing enabled charges set to “Use Latest Product Catalog Pricing”, Zuora will automatically:
-
Retrieve the latest values of the pricing attributes.
-
Use the new term’s start date to pull the updated list price from the product catalog.
-
Set the sales price in the renewal term to that new list price.
For example a per unit recurring charge, License Fee has the following decision table in dynamic pricing configuration.
Attribute 1: Account_Type Attribute 2: Site_Size Effective Date Price VIP
>=10
2025/01/01 ~ 2025/12/31
$10
VIP
<=10
2025/01/01 ~ 2025/12/31
$15
Normal
>=10
2025/01/01 ~ 2025/12/31
$15
Normal
<=10 2025/01/01 ~ 2025/12/31 $20
VIP
>=10
>= 2026/01/01
$11
VIP <=10 >= 2026/01/01 $15 Normal >=10 >= 2026/01/01 $17 Normal <10 >= 2026/01/01 $22 On 2025/01/01, create a new 12 months term subscription to subscribe to a rate plan with the License Fee charge with the following pricing attributes: Account_Type = “VIP”, Site_Size = “88”, so the original list price is $10/seat. Set the License Fee price change option to “Use Latest Product Catalog Pricing” so that it can adopt the new price upon renewal automatically.
On 2025/12/01, create an order to renew the subscription, Zuora will use the following pricing attribute value to lookup the latest list price from catalog:
-
Effective Date = 2026/01/01 (New term start date)
-
Account_Type = “VIP”
-
Site_Size = “88”
After renewal, the price of License Fee will become $11/seat from 2026/01/01 onwards.
-
Tags recommended by the template: article:topic
