# List product charge definitions Retrieves basic information about the product charge definitions. Note: This operation requires the Attribute-based Pricing feature to be enabled, which is in the Early Adopter phase. Endpoint: GET /v1/product-charge-definitions Version: 2026-02-20 Security: bearerAuth ## Header parameters: - `Accept-Encoding` (string) Include the Accept-Encoding: gzip header to compress responses as a gzipped file. It can significantly reduce the bandwidth required for a response. If specified, Zuora automatically compresses responses that contain over 1000 bytes of data, and the response contains a Content-Encoding header with the compression algorithm so that your client can decompress it. - `Content-Encoding` (string) Include the Content-Encoding: gzip header to compress a request. With this header specified, you should upload a gzipped file for the request payload instead of sending the JSON payload. - `Zuora-Track-Id` (string) A custom identifier for tracing the API call. If you set a value for this header, Zuora returns the same value in the response headers. This header enables you to associate your system process identifiers with Zuora API calls, to assist with troubleshooting in the event of an issue. The value of this field must use the US-ASCII character set and must not include any of the following characters: colon (:), semicolon (;), double quote ("), and quote ('). - `Zuora-Entity-Ids` (string) An entity ID. If you have Zuora Multi-entity enabled and the OAuth token is valid for more than one entity, you must use this header to specify which entity to perform the operation in. If the OAuth token is only valid for a single entity, or you do not have Zuora Multi-entity enabled, you should not set this header. - `Zuora-Version` (string) The minor API version. For a list of available minor versions, see API upgrades. ## Query parameters: - `charge` (string) The unique number or ID of the charge for which the product charge definitions are to be retrieved. - `rateplan` (string) The unique number or ID of the product rate plan for which the product charge definitions are to be retrieved. - `hide-inherited-values` (boolean) The flag that controls whether the response will merge the default charge definition fields for those fields that are not overridden. ## Response 200 fields (application/json): - `chargeDefinitions` (array) The list of the product charge definitions that are retrieved. - `chargeDefinitions.applyDiscountTo` (string,null) Indicates which type of charge the discount charge applies to. Enum: "ONETIME", "RECURRING", "USAGE", "ONETIMERECURRING", "ONETIMEUSAGE", "RECURRINGUSAGE", "ONETIMERECURRINGUSAGE", null - `chargeDefinitions.billingDay` (string) The bill cycle type for the charge. - `chargeDefinitions.billingPeriod` (string) The billing period for the product charge definition. - `chargeDefinitions.billingPeriodAlignment` (string) The billing period alignment setting for the charge. Enum: "AlignToCharge", "AlignToSubscriptionStart", "AlignToTermStart", "AlignToTermEnd" - `chargeDefinitions.billingTiming` (string) The billing timing setting for the product charge definition. Enum: "IN_ADVANCE", "IN_ARREARS" - `chargeDefinitions.chargeModel` (string) Determines how to calculate charges. Charge models must be individually activated in Zuora Billing administration. Enum: "DiscountFixedAmount", "DiscountPercentage", "FlatFee", "PerUnit", "Overage", "Tiered", "TieredWithOverage", "Volume", "Delivery", "MultiAttributePricing", "PreratedPerUnit", "PreratedPricing", "HighWatermarkVolumePricing", "HighWatermarkTieredPricing" - `chargeDefinitions.chargeType` (string) Indicates the type of charge. Enum: "OneTime", "Recurring", "Usage" - `chargeDefinitions.customFields` (object) Container for custom fields of a Product Charge Definition object. - `chargeDefinitions.defaultQuantity` (number,null) The default quantity. This field is applicable only for one-time and recurring charges. - `chargeDefinitions.deliverySchedule` (object,null) - `chargeDefinitions.deliverySchedule.frequency` (string) The frequency of the delivery. Only weekly delivery is supported now. Enum: "Weekly" - `chargeDefinitions.deliverySchedule.friday` (boolean) The flag to indicate whether the delivery happens on Friday. - `chargeDefinitions.deliverySchedule.monday` (boolean) The flag to indicate whether the delivery happens on Monday. - `chargeDefinitions.deliverySchedule.saturday` (boolean) The flag to indicate whether the delivery happens on Saturday. - `chargeDefinitions.deliverySchedule.sunday` (boolean) The flag to indicate whether the delivery happens on Sunday. - `chargeDefinitions.deliverySchedule.thursday` (boolean) The flag to indicate whether the delivery happens on Thursday. - `chargeDefinitions.deliverySchedule.tuesday` (boolean) The flag to indicate whether the delivery happens on Tuesday. - `chargeDefinitions.deliverySchedule.wednesday` (boolean) The flag to indicate whether the delivery happens on Wendesday. - `chargeDefinitions.description` (string) The description for the charge. - `chargeDefinitions.discountClass` (string,null) The class that the discount belongs to. The discount class defines the order in which discount product rate plan charges are applied. For more information, see [Manage Discount Classes](https://knowledgecenter.zuora.com/BC_Subscription_Management/Product_Catalog/B_Charge_Models/Manage_Discount_Classes). - `chargeDefinitions.discountLevel` (string,null) The application scope of the discount charge. For example, if the value of this field is subscription and the value of the applyDiscountTo field is RECURRING, the discount charge applies to all recurring charges in the same subscription as the discount charge. Enum: "rateplan", "subscription", "account", null - `chargeDefinitions.effectiveEndDate` (string) The effective end date of the product charge definition. - `chargeDefinitions.effectiveStartDate` (string) The effective start date of the product charge definition. - `chargeDefinitions.endDateCondition` (string) The end date condition for this charge. Enum: "Subscription_End", "One_Time", "Fixed_Period", "Specific_End_Date" - `chargeDefinitions.excludeItemBillingFromRevenueAccounting` (boolean) Indicates whether to exclude the related invoice items, invoice item adjustments, credit memo items, and debit memo items from revenue accounting. Note: This field is only available if you have the Order to Revenue or Billing - Revenue Integration feature enabled. - `chargeDefinitions.excludeItemBookingFromRevenueAccounting` (boolean) Indicates whether to exclude the related rate plan charges and order line items from revenue accounting. Note: This field is only available if you have the Order to Revenue or Billing - Revenue Integration feature enabled. - `chargeDefinitions.isAllocationEligible` (boolean) Indicates whether the charge segment is allocation eligible in revenue recognition. The default value is false. Values: true, false Note: The field is only available if you have the Order to Revenue feature enabled. To enable this field, submit a request at Zuora Global Support. - `chargeDefinitions.isUnbilled` (boolean) Specifies how to perform the accounting during revenue recognition. The default value is false. Values: true, false Note: The field is only available if you have the Order to Revenue feature enabled. To enable this field, submit a request at Zuora Global Support. - `chargeDefinitions.productCategory` (string) This field is used to maintain the product category for integration with Zuora Revenue. Note: This field is available only if you have the Additional Revenue Fields property enabled. - `chargeDefinitions.productClass` (string) This field is used to maintain the product class for integration with Zuora Revenue. Note: This field is available only if you have the Additional Revenue Fields property enabled. - `chargeDefinitions.productFamily` (string) This field is used to maintain the product family for integration with Zuora Revenue. Note: This field is available only if you have the Additional Revenue Fields property enabled. - `chargeDefinitions.productLine` (string) This field is used to maintain the product line for integration with Zuora Revenue. Note: This field is available only if you have the Additional Revenue Fields property enabled. - `chargeDefinitions.revenueRecognitionTiming` (string) Specifies the type of revenue recognition timing. Predefined options are listed as enum values in this API Reference. Other options might also be avaliable depending on the revenue recognition policy configuration in the Zuora Billing UI. Note: This field is only available if you have the Order to Revenue feature enabled. Enum: "Upon Billing Document Posting Date", "Upon Order Activation Date" - `chargeDefinitions.revenueAmortizationMethod` (string) Specifies the type of revenue amortization method. Predefined options are listed as enum values in this API Reference. Other options might also be avaliable depending on the revenue recognition policy configuration in the Zuora Billing UI. Note: This field is only available if you have the Order to Revenue feature enabled. Enum: "Immediate", "Ratable Using Start And End Dates" - `chargeDefinitions.numberOfPeriods` (integer,null) Specifies the number of periods to use when calculating charges in an overage smoothing charge model. This field is ued when overage smoothing model is RollingWindow or Rollover. - `chargeDefinitions.financeInformation` (object) Container for finance information of the rate plan charge. - `chargeDefinitions.financeInformation.accountsReceivableAccountingCode` (string,null) The accounting code for accounts receivable. - `chargeDefinitions.financeInformation.accountsReceivableAccountingCodeType` (string,null) The type of the accounting code for accounts receivable. - `chargeDefinitions.financeInformation.adjustmentLiabilityAccountingCode` (string) The accounting code for adjustment liability. Note: This field is only available if you have the Zuora Billing - Revenue Integration feature enabled. - `chargeDefinitions.financeInformation.adjustmentLiabilityAccountingCodeType` (string,null) The type associated with the adjustment liability accounting code. Note: This field is only available if you have the Zuora Billing - Revenue Integration feature enabled. - `chargeDefinitions.financeInformation.adjustmentRevenueAccountingCode` (string) The accounting code for adjustment revenue. Note: This field is only available if you have the Zuora Billing - Revenue Integration feature enabled. - `chargeDefinitions.financeInformation.adjustmentRevenueAccountingCodeType` (string,null) The type associated with the adjustment revenue accounting code. Note: This field is only available if you have the Zuora Billing - Revenue Integration feature enabled. - `chargeDefinitions.financeInformation.contractAssetAccountingCode` (string) The accounting code for contract asset. Note: This field is only available if you have the Zuora Billing - Revenue Integration feature enabled. - `chargeDefinitions.financeInformation.contractAssetAccountingCodeType` (string) The type associated with the contract asset accounting code. Note: This field is only available if you have the Zuora Billing - Revenue Integration feature enabled. - `chargeDefinitions.financeInformation.contractLiabilityAccountingCode` (string) The accounting code for contract liability. Note: This field is only available if you have the Zuora Billing - Revenue Integration feature enabled. - `chargeDefinitions.financeInformation.contractLiabilityAccountingCodeType` (string) The type associated with the contract liability accounting code. Note: This field is only available if you have the Zuora Billing - Revenue Integration feature enabled. - `chargeDefinitions.financeInformation.contractRecognizedRevenueAccountingCode` (string) The accounting code for contract recognized revenue. Note: This field is only available if you have the Zuora Billing - Revenue Integration feature enabled. - `chargeDefinitions.financeInformation.contractRecognizedRevenueAccountingCodeType` (string) The type associated with the contract recognized revenue accounting code. Note: This field is only available if you have the Zuora Billing - Revenue Integration feature enabled. - `chargeDefinitions.financeInformation.deferredRevenueAccountingCode` (string) The accounting code for deferred revenue, such as Monthly Recurring Liability. - `chargeDefinitions.financeInformation.deferredRevenueAccountingCodeType` (string,null) The type associated with the deferred revenue accounting code, such as Deferred Revenue. - `chargeDefinitions.financeInformation.recognizedRevenueAccountingCode` (string) The accounting code for recognized revenue, such as Monthly Recurring Charges or Overage Charges. - `chargeDefinitions.financeInformation.recognizedRevenueAccountingCodeType` (string,null) The type associated with the recognized revenue accounting code, such as Sales Revenue or Sales Discount. - `chargeDefinitions.financeInformation.unbilledReceivablesAccountingCode` (string) The accounting code for unbilled receivables. Note: This field is only available if you have the Zuora Billing - Revenue Integration feature enabled. - `chargeDefinitions.financeInformation.unbilledReceivablesAccountingCodeType` (string) The type associated with the unbilled receivables accounting code. Note: This field is only available if you have the Zuora Billing - Revenue Integration feature enabled. - `chargeDefinitions.isDefault` (boolean) Indicates whether this charge definition is the default one for the charge. - `chargeDefinitions.isStackedDiscount` (boolean) Note: This field is only applicable to the Discount - Percentage charge model. To use this field, you must set the X-Zuora-WSDL-Version request header to 130 or higher. Otherwise, an error occurs. This field indicates whether the discount is to be calculated as stacked discount. Possible values are as follows: - True: This is a stacked discount, which should be calculated by stacking with other discounts. - False: This is not a stacked discount, which should be calculated in sequence with other discounts. For more information, see [Stacked discounts](https://knowledgecenter.zuora.com/Zuora_Billing/Products/Product_Catalog/B_Charge_Models/B_Discount_Charge_Models). - `chargeDefinitions.listPriceBase` (string) The list price base. This field is applicable only for recurring charges. Note: The Per_Year enum value is available only if you have the Annual List Price feature enabled. Enum: "Per_Billing_Period", "Per_Month", "Per_Week", "Per_Year" - `chargeDefinitions.numberOfPeriod` (integer) Indicates the number of periods to use when calculating charges in an overage smoothing charge model. The valid value is a positive whole number. - `chargeDefinitions.overageCalculationOption` (string,null) Determines when to calculate overage charges. If the value of the SmoothingMode field is not specified, the value of this field is ignored. Values: - EndOfSmoothingPeriod: This option is used by default. The overage is charged at the end of the smoothing period. - PerBillingPeriod: The overage is charged on-demand rather than waiting until the end of the smoothing period. Enum: "EndOfSmoothingPeriod", "PerBillingPeriod", null - `chargeDefinitions.overageUnusedUnitsCreditOption` (string,null) Determines whether to credit the customer with unused units of usage. Enum: "NoCredit", "CreditBySpecificRate", null - `chargeDefinitions.priceChangeOption` (string,null) Applies an automatic price change when a termed subscription is renewed. Enum: "NoChange", "SpecificPercentageValue", "UseLatestProductCatalogPricing", null - `chargeDefinitions.priceIncreaseOption` (string) Applies an automatic price change when a termed subscription is renewed. Enum: "FromTenantPercentageValue", "SpecificPercentageValue" - `chargeDefinitions.priceIncreasePercentage` (number,null) Specifies the percentage to increase or decrease the price of a termed subscription's renewal. Use this field if you set the priceIncreaseOption value to SpecificPercentageValue. Character limit: 16 Values: a decimal value between -100 and 100 - `chargeDefinitions.prices` (array) Container for the prices of the product charge definition. - `chargeDefinitions.prices.currency` (string) The currency for the price. - `chargeDefinitions.prices.discountAmount` (number) The specific amount for a fixed discount. The field is applicable only for charges based on the Discount-Fixed Amount charge model. - `chargeDefinitions.prices.discountPercentage` (number) The percentage of discount for a percentage discount. The field is applicable only for charges based on the Discount-Percentage charge model. - `chargeDefinitions.prices.includedUnits` (number) The number of units included in this price item. This field is only applicable for charges based on the Overage Pricing charge model. - `chargeDefinitions.prices.overagePrice` (number) The overage price of the price item. This field is only applicable for charges based on the Overage Pricing or Tiered with Overage Pricing charge model. - `chargeDefinitions.prices.price` (number) The price of this item. This field is only applicable for charges based on the following charge models: - Flat Fee - Per Unit - Delivery Pricing - `chargeDefinitions.prices.tiers` (array) Container for the tiers of the price item. This field is only applicable for charges based on the following charge models: - Tiered Pricing - Volume Pricing - Tiered with Overage Pricing - `chargeDefinitions.prices.tiers.currency` (string) The code corresponding to the currency for the tier's price. - `chargeDefinitions.prices.tiers.endingUnit` (number) The end number of a range of units for the tier. The field is applicable only for charges based on the Tiered Pricing or Tiered with Overage Pricing charge model. - `chargeDefinitions.prices.tiers.overagePrice` (number) Indicates whether the price is an overage price, which is the price when usage surpasses the last defined tier. - `chargeDefinitions.prices.tiers.price` (number) The price of the tier if the price format is flat fee, or the price of each unit in the tier if the price format is per unit. - `chargeDefinitions.prices.tiers.startingUnit` (number) The starting number of a range of units for the tier. The field is applicable only for charges based on the Tiered Pricing or Tiered with Overage Pricing charge model. - `chargeDefinitions.productChargeDefinitionId` (string) The unique ID of the product charge definition. - `chargeDefinitions.productChargeDefinitionNumber` (string) The unique number (natural key) of the product charge definition. - `chargeDefinitions.productDiscountApplyDetails` (array) Container for the application details about a discount product rate plan charge. Only discount product rate plan charges have values for this field. - `chargeDefinitions.productDiscountApplyDetails.appliedProductRatePlanChargeId` (string) The ID of the product rate plan charge that the discount product rate plan charge applies to. - `chargeDefinitions.productDiscountApplyDetails.appliedProductRatePlanId` (string) The ID of the product rate plan that the discount product rate plan charge applies to. - `chargeDefinitions.productRatePlanChargeId` (string) The unique ID of the product charge of the charge definition. - `chargeDefinitions.productRatePlanChargeNumber` (string,null) The unique number (natural key) of the product charge of the charge definition. - `chargeDefinitions.productRatePlanId` (string,null) The unique ID of the product rate plan that uses this charge definition. - `chargeDefinitions.productRatePlanName` (string,null) Th name of the product rate plan that uses this charge definition. - `chargeDefinitions.productRatePlanNumber` (string,null) The unique number (natural key) of the product rate plan that uses this charge definition. - `chargeDefinitions.ratingGroup` (string,null) The rating group based on which usage records are rated. Possible values: - ByBillingPeriod: The rating is based on all the usages in a billing period. - ByUsageStartDate: The rating is based on all the usages on the same usage start date. - ByUsageRecord: The rating is based on each usage record. - ByUsageUpload: The rating is based on all the usages in a uploaded usage file (.xls or .csv). - ByGroupId: The rating is based on all the usages in a custom group. Notes: - The ByBillingPeriod value can be applied for all charge models. - The ByUsageStartDate, ByUsageRecord, and ByUsageUpload values can only be applied for Per Unit, Volume Pricing, and Tiered Pricing charge models. - The ByGroupId value is only available if you have the Active Rating feature enabled. - Use this field only for Usage charges. One-time charges and recurring charges return NULL. Enum: "ByBillingPeriod", "ByUsageStartDate", "ByUsageRecord", "ByUsageUpload", "ByGroupId", null - `chargeDefinitions.recognizedRevenueAccount` (string) The name of the recognized revenue account for this charge. - Required when the Allow Blank Accounting Code setting is No. - Optional when the Allow Blank Accounting Code setting is Yes. This feature is in Limited Availability. If you wish to have access to the feature, submit a request at [Zuora Global Support](http://support.zuora.com/). - `chargeDefinitions.revRecCode` (string,null) Associates this product rate plan charge with a specific revenue recognition code. - `chargeDefinitions.revRecTriggerCondition` (string,null) Indicates when revenue recognition begins. Enum: "ContractEffectiveDate", "ServiceActivationDate", "CustomerAcceptanceDate", null - `chargeDefinitions.revenueRecognitionRuleName` (string) Determines when to recognize the revenue for this charge. Enum: "Recognize upon invoicing", "Recognize daily over time" - `chargeDefinitions.smoothingModel` (string,null) Indicates the smoothing model for an overage smoothing charge model. Enum: "RollingWindow", "Rollover", null - `chargeDefinitions.specificBillingPeriod` (number,null) The specific number of billing period for the product charge definition. - `chargeDefinitions.specificListPriceBase` (integer,null) The number of months for the list price base of the charge definition. This field is null if the listPriceBase field is not set to Per_Specific_Months. - `chargeDefinitions.taxCode` (string) Specifies the tax code for taxation rules. Note: This value affects the tax calculation of the rate plan charge. - `chargeDefinitions.taxMode` (string,null) Determines how to define taxation for the charge. Note: This value affects the tax calculation of the rate plan charge. Enum: "TaxExclusive", "TaxInclusive", null - `chargeDefinitions.taxable` (boolean) Determines whether the charge definition is taxable. Character limit: 5 Values: true, false Note: This value affects the tax calculation of the rate plan charge. - `chargeDefinitions.term` (number,null) The number of periods of a termed subscription that is eligible for this charge definition. This field is applicable when the termType field is set to TERMED, and is to be used together with the termPeriodType field. - `chargeDefinitions.termPeriodType` (string,null) The period type for the subscription term that is eligible for this charge definition. Enum: "Month", "Year", "Day", "Week", null - `chargeDefinitions.termType` (string,null) The type of the subscription that is eligible for this charge definition. Enum: "TERMED", "EVERGREEN", null - `chargeDefinitions.triggerEvent` (string) Specifies when to start billing the customer for the charge definition. Values: - ContractEffective is the date when the subscription's contract goes into effect and the charge is ready to be billed. - ServiceActivation is the date when the services or products for a subscription have been activated and the customers have access. - CustomerAcceptance is when the customer accepts the services or products for a subscription. Enum: "ContractEffective", "ServiceActivation", "CustomerAcceptance" - `chargeDefinitions.uom` (string,null) Indicates the unit of measure (UOM) that is configured in Settings > Billing for the product rate plan charge. - `chargeDefinitions.upToPeriods` (number,null) The number of up-to periods for this charge. - `chargeDefinitions.upToPeriodsType` (string,null) The up-to-periods type for this charge. Enum: "Billing_Periods", "Days", "Weeks", "Months", "Years", null - `chargeDefinitions.usageRecordRatingOption` (string,null) Determines how Zuora processes usage records for per-unit usage charges. Enum: "EndOfBillingPeriod", "OnDemand", null - `chargeDefinitions.useDiscountSpecificAccountingCode` (boolean,null) Determines whether to define a new accounting code for the new discount charge. Character limit: 5 Values: true, false - `chargeDefinitions.useTenantDefaultForPriceChange` (boolean) Applies the tenant-level percentage uplift value for an automatic price change to a termed subscription's renewal. Character limit: 5 Values: true, false - `success` (boolean) Indicates whether the request succeeded. ## Response 500 fields (application/json): - `reasons` (array) Example: [{"code":"ObjectNotFound","message":"Notification definition with id 6e569e1e05f040eda51a927b140c0ac1 does not exist"}] - `reasons.code` (string) The error code of response. - `reasons.message` (string) The detail information of the error response ## Response 4XX fields (application/json): - `processId` (string) The ID of the process that handles the operation. - `reasons` (array) The container of the error code and message. This field is available only if the success field is false. - `reasons.code` (string) The error code of response. - `reasons.message` (string) The detail information of the error response - `requestId` (string) Unique identifier of the request. - `success` (boolean) Indicates whether the call succeeded.