Update Pricing Attributes
This topic explains how to update the PricingAttributes of ABP charges using the REST API, including explicit updates to the originalListPrice field.
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
$AccountNumThe number of the account that will own the order. For example,
A00000001.$subscriptionNumberThe number of the subscription that will own the rate plans. For example,
A-S0000001.$subscriptionRatePlanIdThe ID of the subscription rate plan. For example,
8a90876c84ae5ef70184c2080c307343.$chargeNumberThe number of the subscription rate plan charge to be updated. For example,
C-00036197..$TodayToday'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
pricingAttributesvalue of the charge via the GET subscription end point. This is an example response ofpricingAttributes."pricingAttributes": {
"Site_Size": 99,
"Account_Type": "VIP",
"EffectiveDate": "2025-06-20T00:00:00+08:00",
"Subscription_Renewal_Term": 12,
"Subscription_RatePlan_Class": "Low"
}
Note:pricingAttributes includes all the pricing attribute values including both external attributes and attributes mapped to Zuora object fields.