Skip to main content

ProductRatePlanCharge

Zuora

ProductRatePlanCharge

A product rate plan charge represents a charge model or a set of fees associated with a product rate plan. This SOAP API reference describes the ProductRatePlanCharge object and its fields.

About the ProductRatePlanCharge Object

A product rate plan charge represents a charge model or a set of fees associated with a product rate plan, which is the part of a product that your customers subscribe to. Each product rate plan can have multiple product rate plan charges.

Do not confuse a product rate plan charge with a rate plan charge. A product rate plan charge is a charge that's part of a product in your product catalog. A rate plan charge is the specific charge in a subscription.

Use the ProductRatePlanCharge object to define the charges for the ProductRatePlan objects that customers subscribe to.

Product rate plan charges can be of three types: one-time fees, recurring fees, and usage fees. For example, the $50 activation fee for the Topaz product rate plan is a one-time product rate plan charge.

Diagram of the ProductRatePlan Object and Fields

For more information on this example, review the Product object.

The set of {Product objects, ProductRatePlan objects, ProductRatePlanCharge objects} is a defined set of products that a company sells, such as in the Family Plan example.

Supported Calls

You can use this object with the following calls:

Walkthroughs and Use Cases

Here are some common ways to use this object:

  • Set up an activation fee for a product rate plan
  • Apply multiple discount charges
    See Discount Charge Use Cases for more information.
  • Total charges inclusive of taxes

Field Descriptions

All field names are case sensitive. Check enumerated values in descriptions to confirm capitalization and spacing. See Field Types for additional information.

Name Required to Create? Allowed Operations Description
AccountingCode optional Create
Query
Update
Delete
Filter
The accounting code for the charge. Accounting codes group transactions that contain similar accounting attributes.

Type: string
Character limit: 100
Version notes: Create operation available in WSDL 22.0+
Values: an active accounting code in your Zuora Chart of Accounts

ApplyDiscountTo optional

Create
Query
Update
Filter

Specifies the type of charges that you want a specific discount to apply to. All field values are case sensitive: note that these values are in all-caps.

Type: string (enum)
Character limit: 21
Version notes: WSDL 41.0+
Values: one of the following:

  • ONETIME (1)
  • RECURRING (2)
  • USAGE (4)
  • ONETIMERECURRING (3)
  • ONETIMEUSAGE (5)
  • RECURRINGUSAGE (6)
  • ONETIMERECURRINGUSAGE (7)
BillCycleDay optional Create
Query
Update
Delete
Filter

Sets the bill cycle day (BCD) for the charge. The BCD determines which day of the month customer is billed. The BCD value in the account can override the BCD in this object.

Type: int
Character limit: 2
Version notes: WSDL 30.0+
Values: a valid BCD integer, 1 - 31

BillCycleType required Create
Query
Update
Delete
Filter

Specifies how to determine the billing day for the charge. 

Type: string (enum)
Character limit: 20
Version notes: The SpecificDayofWeek value is available in WSDL 74.0+, all other values are available in WSDL 25.0 or earlier.
Values: one of the following:

  • DefaultFromCustomer
  • SpecificDayofMonth:
  • SubscriptionStartDay
  • ChargeTriggerDay
  • SpecificDayofWeek

Note:

  • If you set this field to SpecificDayofMonth​, you must specify which day of the month as the billing day for the charge in the BillCycleDay field. 
  • If you set this field to SpecificDayofWeek, you must specify which day of the week as the billing day for the charge in the WeeklyBillCycleDay field. 
BillingPeriod required Create
Query
Update
Delete
Filter

The billing period for the charge. The start day of the billing period is also called the bill cycle day (BCD).

Type: string (enum)
Character limit: 15
Version notes: The Specific Months value is available in WSDL 27.0+. The Week and Specific Weeks values are available in WSDL 74.0+.
Values: one of the following

  • Month
  • Quarter
  • Annual
  • Semi-Annual
  • Specific Months
  • Subscription Term (This value is in Limited Availability.)
  • Week
  • Specific Weeks

Note:

Specify the number of months or weeks in the SpecificBillingPeriod field if you set this field to Specific Months or Specific Weeks.

BillingPeriodAlignment optional Create
Query
Update
Delete
Filter

Aligns charges within the same subscription if multiple charges begin on different dates.

Type: string (enum)
Character limit: 24
Version notes: --
Values: one of the following:

  • AlignToCharge
  • AlignToSubscriptionStart
  • AlignToTermStart
BillingTiming optional

Create
Update
Query

The billing timing for the charge. You can choose to bill in advance or in arrears for recurring charge types. This field is not used in one-time or usage based charge types.

Type: string (enum)
Character limit
Version notes: WSDL 70.0+
Values: one of the following:

  • In Advance
  • In Arrears
ChargeFunction optional Create
Query
Update
Delete
Filter

This field is only available if you have the Unbilled Usage feature enabled.

Type: string (enum)
Character limit
Version notes: WSDL 141.0+
Values: This field defines what type of charge it is in Advanced Consumption Billing:

  • Standard: Normal charge with no Prepayment or Commitment or Drawdown.
  • Prepayment: For recurring charges. Unit or currency based prepaid charge.
  • CommitmentTrueUp: For recurring charges. Currency based minimum commitment charge.
  • Drawdown: For usage charges. Drawdown from prepaid funds.
  • DrawdownAndCreditCommitment: For usage charges. Drawdown from prepaid funds and then credit to minimum commitment funds.
CommitmentType optional Create
Query
Update
Delete
Filter

This field is only available if you have the Unbilled Usage feature enabled.

Type: string (enum)
Character limit
Version notes: WSDL 133.0+
Values: This field defines the type of commitment.

A prepaid charge can be UNIT or CURRENCY. A minimum commitment (in-arrears) charge can only be CURRENCY type. For topup (recurring or one-time) charges, this field indicates what type of funds are created. 

  • If UNIT, it will create a fund with the given prepaidUom.
  • If CURRENCY, it will create a fund with the currency amount calculated in the list price.
 For drawdown (usage) charges, this field indicates what type of funds are drawdown from that created from topup charges.
ChargeModel required Create
Query
Update
Delete
Filter

Determines how to calculate charges. Charge models must be individually activated in Z-Billing administration.

Type: string (enum)
Character limit: 27
Version notes: WSDL 20.0+
Values: one of the following:

  • Discount-Fixed Amount
  • Discount-Percentage
  • Flat Fee Pricing
  • Per Unit Pricing
  • Overage Pricing
  • Tiered Pricing
  • Tiered with Overage Pricing
  • Volume Pricing
  • MultiAttributePricing (only available in WSDL 102.0 and later if you have the Multi-Attribute Pricing charge model enabled. The charge model is available for customers with Enterprise and Nine editions by default. If you are a Growth customer, see Zuora Editions for pricing information.)
  • PreratedPerUnit (only available in WSDL 102.0 and later if you have the Pre-Rated Per Unit Pricing charge model enabled. The charge model is available for customers with Enterprise and Nine editions by default. If you are a Growth customer, see Zuora Editions for pricing information.)
  • PreratedPricing (only available in WSDL 102.0 and later if you have the Pre-Rated Pricing model enabled. The charge model is available for customers with Enterprise and Nine editions by default. If you are a Growth customer, see Zuora Editions for pricing information.)
  • HighWaterMarkVolumePricing (only available in WSDL 102.0 and later if you have the Volume with High Water Mark Pricing charge model enabled. The charge model is available for customers with Enterprise and Nine editions by default. If you are a Growth customer, see Zuora Editions for pricing information.)
  • HighWaterMarkTieredPricing (only available in WSDL 102.0 and later if you have the Tiered with High Water Mark Pricing charge model enabled. The charge model is available for customers with Enterprise and Nine editions by default. If you are a Growth customer, see Zuora Editions for pricing information.)
ChargeModelConfiguration optional Create
Update

Container of charge model configuration details 

This field is only available if you have the Pre-Rated Per Unit Pricing, Pre-Rated Pricing, or Multi-Attribute Pricing charge models enabled. These charge models are available for customers with Enterprise and Nine editions by default. If you are a Growth customer, see Zuora Editions for pricing information coming October 2020.

 

Type: object
Character limit: --
Version notes: WSDL 102.0+
Values: array of Charge Model Configuration Key-Value pairs

ConfigurationItem optional Create
Update

An array of Charge Model Configuration Key-Value pairs.

Type: array
Character limit: --
Version notes: WSDL 102.0+
Values: An array of Charge Model Configuration Key-Value pairs.

Key required Create
Update

The name of the field that is specified for a specific charge model.

Values:

  • formula (only available if you have the Multi-Attribute Pricing charge model enabled. The charge model is available for customers with Enterprise and Nine editions by default. If you are a Growth customer, see Zuora Editions for pricing information coming October 2020.)
  • customFieldPerUnitRate (only available if you have the Pre-Rated Per Unit Pricing charge model enabled. The charge model is available for customers with Enterprise and Nine editions by default. If you are a Growth customer, see Zuora Editions for pricing information coming October 2020.)
  • customFieldTotalAmount (only available if you have the Pre-Rated Pricing model enabled. The charge model is available for customers with Enterprise and Nine editions by default. If you are a Growth customer, see Zuora Editions for pricing information coming October 2020.)
Value required Create
Update

The value of the field that is specified in the Key field.

Values:

  • A valid pricing formula if you have the Multi-Attribute Pricing charge model enabled. The charge model is available for customers with Enterprise and Nine editions by default. If you are a Growth customer, see Zuora Editions for pricing information coming October 2020.
  • A usage custom field that carries the per-unit rate for each usage record if you have the Pre-Rated Per Unit Pricing charge model enabled. The charge model is available for customers with Enterprise and Nine editions by default. If you are a Growth customer, see Zuora Editions for pricing information coming October 2020.
  • A usage custom field that carries the total amount for a usage record if you have the Pre-Rated Pricing model enabled. The charge model is available for customers with Enterprise and Nine editions by default. If you are a Growth customer, see Zuora Editions for pricing information coming October 2020.
ChargeType required Create
Query
Filter

Specifies the type of charge.

Type: string (enum)
Character limit: 9
Version notes: WSDL 20.0+
Values: one of the following:

  • OneTime
  • Recurring
  • Usage

Note: To query and filter one time charges, you need to specify One-Time rather than OneTime in the WHERE clause.

CreatedById optional

Query
Filter

The ID of the Zuora user who created the ProductRatePlanCharge object.

Type: zns:ID
Character limit: 32
Version notes: WSDL 20.0+
Values: automatically generated

CreatedDate optional

Query
Filter

The date when the  ProductRatePlanCharge object was created.

Type: dateTime
Character limit: 29
Version notes: WSDL 20.0+
Values: automatically generated

DefaultQuantity optional Create
Query
Update
Delete
Filter

The default quantity of units, such as the number of authors in a hosted wiki service. This field is required if you use a per-unit pricing model.

Type: decimal (quantity)
Character limit: 16
Version notes: type is double for WSDL 18.0 and older
Values: a valid quantity value

DeferredRevenueAccount optional Create
Query
Update

The name of the deferred revenue account for this charge. 

Note: If you want to implement "recognise without deferral", you should pass the same accounting code for DeferredRevenueAccount  and RecognizedRevenueAccount, and pass "Recognize upon invoicing" for RevenueRecognitionRuleName.

Type: string
Character limit: 100
Version notes: WSDL 39.0+, requires Z-Finance
Values: an active accounting code in your Zuora Chart of Accounts

This feature is in Limited Availability. If you want to have access to the feature, submit a request at Zuora Global Support

Description optional Create
Query
Update
Delete
Filter
A description of the charge.

Type: string
Character limit: 500
Version notes: --
Values: a string of 500 characters or fewer

DiscountClass

optional

Create
Query
Update

The class that the discount belongs to. The discount class defines the order in which discount product rate plan charges are applied.

The status of the discount class must be active.

The default value is null. Discount charges that do not have a discount class are applied after discount charges that do have a discount class.

For the order in which discount charges apply to the same product rate plan charge, see Processing Discount Charges.

Type: string
Character limit: 50
Version notes: 85.0+
Values: a string of 50 characters or fewer

DiscountLevel optional Create
Query
Update
Filter

Specifies if the discount applies to just the product rate plan, the entire subscription, or to any activity in the account.

Type: string (enum)
Character limit: 12
Version notes: WSDL 41.0+
Values: one of the following:

  • rateplan
  • subscription
  • account

EndDateCondition

optional

Create
Query
Update
Filter

Defines when the charge ends after the charge trigger date.

Type: string (enum)
Character limit: --
Version notes: WSDL 72.0+
Values: one of the following:

  • SubscriptionEnd: The charge ends on the subscription end date after a specified period based on the trigger date of the charge. This is the default value. 
  • FixedPeriod: The charge ends after a specified period based on the trigger date of the charge. If you set this field to FixedPeriod, you must specify the length of the period and a period type by defining the UpToPeriods and UpToPeriodsType fields. 

Note
If the subscription ends before the charge end date, the charge ends when the subscription ends. But if the subscription end date is subsequently changed through a Renewal, or Terms and Conditions amendment, the charge will end on the charge end date.

ExcludeItemBookingFromRevenueAccounting optional Create
Query
Update

Specifies whether to exclude non-revenue related rate plan charges and order line items from syncing to Zuora Revenue. This field is only available if you have enabled Zuora Billing - Revenue Integration.

You can set and update this field for a product rate plan charge through both the Zuora UI and API. You can access this field for a product rate plan charge through the Zuora UI, API, and Product Rate Plan Charge data source.

Type: boolean
Character limit: 5
Version notes: WSDL 115.0 and later
Values:truefalse (default)

ExcludeItemBillingFromRevenueAccounting optional Create
Query
Update

Specifies whether to exclude non-revenue related invoice items, invoice item adjustments, credit memo items, and debit memo items from syncing to Zuora Revenue. This field is only available if you have enabled Zuora Billing - Revenue Integration.

You can set and update this field for a product rate plan charge through both the Zuora UI and API. You can access this field for a product rate plan charge through the Zuora UI, API, and Product Rate Plan Charge data source.

Type: boolean
Character limit: 5
Version notes: WSDL 115.0 and later
Values:truefalse (default)

Id optional Query
Filter

The ID of this object. Upon creation, the ID of this object is ProductRatePlanChargeId.

Type: zns:ID
Character limit: 32
Version notes: --
Values: automatically generated

IncludedUnits optional

Create
Query
Update
Delete
Filter

Specifies the number of units in the base set of units.

Typedecimal
Character limit: 16
Version notes: --
Values: a positive decimal value

IsAllocationEligible optional Create
Query
Update
This field is used to identify if the charge segment is allocation eligible in revenue recognition.

Type: boolean
Character limit: 5
Version notes: WSDL 132.0 and later
Values: truefalse (default)

Note: This feature is in the Early Adopter phase. If you want to use the feature, submit a request at Zuora Global Support, and we will evaluate whether the feature is suitable for your use cases.

IsUnbilled optional Create
Query
Update
This field is used to dictate how to perform the accounting during revenue recognition.

Type: boolean
Character limit: 5
Version notes: WSDL 132.0 and later
Values: truefalse (default)

Note: This feature is in the Early Adopter phase. If you want to use the feature, submit a request at Zuora Global Support, and we will evaluate whether the feature is suitable for your use cases.

LegacyRevenueReporting optional Create
Query
Update
Delete
Filter

Specifies whether to include in legacy revenue reports.

Type: boolean
Character limit: 5
Version notes: --
Values: true or false

ListPriceBase optional

Create
Query
Update
Subscribe
Amend

The list price base for the product rate plan charge.

Type: string (enum)
Character limit: --
Version notes: WSDL 67+
Values: one of the following:

  • Per Month
  • Per Billing Period
  • Per Week
  • Per Year
MaxQuantity optional

Create
Query
Update
Delete
Filter

Specifies the maximum number of units for this charge. Use this field and the MinQuantity field to create a range of units allowed in a product rate plan charge.

Type: decimal (quantity)
Character limit: 16
Version notes: type is double for WSDL 18.0 and older
Values: a positive decimal value

MinQuantity optional

Create
Query
Update
Delete
Filter

Specifies the minimum number of units for this charge. Use this field and the MaxQuantity field to create a range of units allowed in a product rate plan charge.

Type: decimal (quantity)
Character limit: 16
Version notes: type is double for WSDL 18.0 and older
Values: a positive decimal value

Model n/a

n/a

Deprecated. Use ChargeModel instead.

Name required

Create
Query
Update
Delete
Filter

The name of the product rate plan charge.

Type: string
Character limit: 100
Version notes: --
Values: a string of 100 characters or fewer

NumberOfPeriod optional

Create
Query
Update
Delete
Filter

Specifies the number of periods to use when calculating charges in an overage smoothing charge model.

Type: integer
Character limit
Version notes: --
Values: a positive whole number

OverageCalculationOption optional

Create
Query
Update
Delete
Filter

Determines when to calculate overage charges. If the value of the SmoothingModel field is not specified, the value of this field is ignored.

Type: string (enum)
Character limit: 20
Version notes: --
Values: one of the following:

  • 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.
OverageUnusedUnitsCreditOption optional

Create
Query
Update
Delete
Filter

Determines whether to credit the customer with unused units of usage.

Type: string (enum)
Character limit: 20
Version notes: --
Values: one of the following:

  • NoCredit
  • CreditBySpecificRate
PriceChangeOption optional Create
Query
Update
Delete
Filter

Applies an automatic price change when a termed subscription is renewed.

Type: string (enum)
Character limit
Version notes: WSDL 43.0+
Values: one of the following:

  • NoChange (default)
  • SpecificPercentageValue
  • UseLatestProductCatalogPricing
PriceIncreaseOption optional

Create
Update
Delete
Filter

Applies an automatic price change when a termed subscription is renewed.

Type: string (enum)
Character limit: 25
Version notes: deprecated at WSDL 43.0
Values: one of the following

  • FromTenantPercentageValue
  • SpecificPercentageValue
PriceIncreasePercentage optional

Create
Query
Update
Delete
Filter

Specifies the percentage to increase or decrease the price of a termed subscription's renewal. Use this field if you set the PriceChangeOption value to SpecificPercentageValue.

Type: decimal
Character limit: 16
Version notes: WSDL 43.0+
Values: a decimal value between -100 and 100

ProductCategory optional Create
Query
Update

This is used to maintain the product category.

Type: string
Character limit
Version notes: WSDL 132.0 and later
Values:

Note: This field is only available if you have the Additional Revenue Fields property enabled.

ProductClass optional Create
Query
Update

This is used to maintain the product class.

Type: string
Character limit
Version notes: WSDL 132.0 and later
Values:

Note: This field is only available if you have the Additional Revenue Fields property enabled.

ProductFamily optional Create
Query
Update

This is used to maintain the product family.

Type: string
Character limit
Version notes: WSDL 132.0 and later
Values:

Note: This field is only available if you have the Additional Revenue Fields property enabled.

ProductLine optional Create
Query
Update

This is used to maintain the product line.

Type: string
Character limit
Version notes: WSDL 132.0 and later
Values:

Note: This field is only available if you have the Additional Revenue Fields property enabled.

ProductDiscountApplyDetailData optional Create
Update

Container of application details about the discount product rate plan charge. 

For more information about discount charge use cases, see Discount Charge Use Cases.

You can specify this field only when the DiscountLevel field is rateplan or subscription. If you specify this field when DiscountLevel is not set to rateplan or subscription, even if the value is set to null, an error is returned.

You can use this field to specify the product rate plans or product rate plan charges that the discount product rate plan charge is applied to. In this field, you can specify at most 1,000 ProductDiscountApplyDetail.

If this field is not specified, discount charges apply to all product rate plan charges defined by the DiscountLevel field and ApplyDiscountTo field.

Type: array
Character limit: --
Version notes: 85.0+
Values: array of ProductDiscountApplyDetail

AppliedProductRatePlanId

optional

Create
Update

The ID of the product rate plan that the discount product rate plan charge applies to.

If the DiscountLevel field is rateplan, the value of the AppliedProductRatePlanId field must be the same as the ID of the product rate plan that the discount charge belongs to.

The AppliedProductRatePlanId and AppliedProductRatePlanChargeId fields cannot be null at the same time.

Type: zns:ID
Character limit: 32
Version notes: 85.0+
Values: a valid product rate plan ID

AppliedProductRatePlanChargeId

optional

Create
Update

The ID of the product rate plan charge that the discount product rate plan charge applies to.

The AppliedProductRatePlanId and AppliedProductRatePlanChargeId fields cannot be null at the same time.

If you specify a value in the AppliedProductRatePlanId field, the charge specified in the AppliedProductRatePlanChargeId field must belong to the product rate plan specified in the AppliedProductRatePlanId field.

If the DiscountLevel field is rateplan, the charge specified in the AppliedProductRatePlanChargeId field must belong to the product rate plan that the discount charge belongs to. 

If this field is not specified, discount charges apply to all product rate plan charges in the product rate plan whose ID is the value specified in the AppliedProductRatePlanId field.

Type: zns:ID
Character limit: 32
Version notes: 85.0+
Values: a valid product rate plan charge ID

ProductRatePlanChargeTierData

required

Create
Update

Container for pricing information associated with the product rate plan charge.

For more information about this container, see Create a Product Catalog and Update Product Catalog.

ProductRatePlanId required

Create
Query
Update
Delete
Filter

The ID of the product rate plan associated with this product rate plan charge.

Type: zns:ID
Character limit: 32
Version notes: --
Values: a valid product rate plan ID

ProductRatePlanChargeNumber optional Create
Update
Query

The natural key of the product rate plan charge.  

For existing objects that were created before this field was introduced, this value will be null. Use this field in the CRUD: Update a product rate plan charge operation to specify a value. Zuora also provides a tool to help you automatically backfill this field with tenant ID for your existing product catalog. If you want to use this backfill tool, contact Zuora Global Support.

  • Type: string
  • Character limit: 100
  • Values: one of the following:
    • leave null for automatically generated string
    • an alphanumeric string of 100 characters or fewer
  • Version notes: WSDL 133.0+

RatingGroup

conditional

Create
Query
Update
Delete
Filter

Specifies a rating group based on which usage records are rated.

See Usage Rating by Group for more information.

Type: string (enum)
Character limit
Version notes: WSDL 74.0+
Values: one of the following:

  • ByBillingPeriod (default): 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). If you import a mass usage in a single upload, which contains multiple usage files in .xls or .csv format, usage records are grouped for each usage file. 
  • ByGroupId: The rating is based on all the usages in the same custom group. 

Note:

  • The ByBillingPeriod value can be applied for all charge models.
  • The ByUsageStartDate, ByUsageRecord, and ByUsageUpload values can only be applied for the per unit, volume pricing, or tiered pricing charge model.
  • 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.

RecognizedRevenueAccount Conditional Create
Query
Update

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.

Navigate to Z-Finance Settings > Configure Accounting Rules to check this setting.

Note: If you want to implement "recognise without deferral", you should pass the same accounting code for DeferredRevenueAccount  and RecognizedRevenueAccount, and pass "Recognize upon invoicing" for RevenueRecognitionRuleName.

Type: string
Character limit: 100
Version notes: WSDL 39.0+, requires Z-Finance
Values: an active accounting code in your Zuora Chart of Accounts

This feature is in Limited Availability. If you want to have access to the feature, submit a request at Zuora Global Support

RevenueRecognitionRuleName optional Create
Query
Update
Determines when to recognize the revenue for this charge.

Type: string (enum)
Character limit: 25
Version notes: WSDL 39.0+, requires Z-Finance
Values: one of the following:

  • Recognize upon invoicing
  • Recognize daily over time

Note: If you want to implement "recognise without deferral", you should pass the same accounting code for DeferredRevenueAccount  and RecognizedRevenueAccount, and pass "Recognize upon invoicing" for RevenueRecognitionRuleName.

RevRecCode optional

Create
Query
Update
Delete
Filter

Associates this product rate plan charge with a specific revenue recognition code.

Type: string
Character limit: 70
Version notes: --
Values: a valid revenue recognition code

RevRecTriggerCondition optional

Create
Query
Update
Delete
Filter

Specifies when revenue recognition begins.

Type: string (enum)
Character limit: 22
Version notes: --
Values: one of the following:

  • ContractEffectiveDate
  • ServiceActivationDate
  • CustomerAcceptanceDate

SmoothingModel

optional

Create
Query
Update
Delete
Filter

Specifies the smoothing model for an overage smoothing charge model.

Type: string (enum)
Character limit: 22
Version notes: --
Values: one of the following:

  • RollingWindow
  • Rollover
SpecificBillingPeriod

optional

Create
Query
Update
Delete
Filter

Customizes the number of months or weeks for the charges billing period. This field is required if you set the value of the BillingPeriod field to Specific Months or Specific Weeks.

Type: long
Character limit:
Version notes: WSDL 27.0+
Values: a positive integer

IsStackedDiscount optional

Create
Update
Query

Specifies whether the discount is to be calculated by stacking with other discount percentages. This field applies only to the discount percentage charge model. For more information, see Discount charge models.

Type: boolean
Character limit: –
Version notes: WSDL 130+
Values: True, False

Taxable optional

Create
Query
Update
Delete
Filter

Determines whether the charge is taxable. When set to True, the TaxMode and TaxCode fields are required when creating or updating the ProductRatePlanCharge object.

Type: boolean
Character limit: 5
Version notes: Z-Tax
Values: True, False

Note: This value affects the tax calculation of rate plan charges that come from the ProductRatePlanCharge.

TaxCode conditional

Create
Query
Update
Delete
Filter

Specifies the tax code for taxation rules. Required when the Taxable field is set to True.

Type: string
Character limit: 64
Version notes: Z-Tax
Values: a valid tax code

Note: This value affects the tax calculation of rate plan charges that come from the ProductRatePlanCharge.

TaxMode conditional Create
Query
Update
Filter

Determines how to define taxation for the charge. Required when the Taxable field is set to True.

Type: string (enum)
Character limit: 12
Version notes: Z-Tax, WSDL 42.0+
Values: one of the following:

  • TaxExclusive
  • TaxInclusive

Note: This value affects the tax calculation of rate plan charges that come from the ProductRatePlanCharge.

TriggerEvent required

Create
Query
Update
Delete
Filter

Specifies when to start billing the customer for the charge.

Type: string (enum)
Character limit: 18
Version notes: --
Values: one of the following:

  • 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.
Type n/a

n/a

Deprecated. Use ChargeType instead.
UOM optional

Create
Query
Update
Delete
Filter

Specifies the units to measure usage. Units of measure are configured in the web-based UI: Z-Billing > Settings.

Type: string
Character limit: 25
Version notes
Values: a configured unit of measure
Note: You must specify this field when creating the following charge models:

  • Per Unit Pricing
  • Volume Pricing
  • Overage Pricing
  • Tiered Pricing
  • Tiered with Overage Pricing
UpdatedById optional

Query
Filter

The ID of the last user to update the object.

Type: zns:ID
Character limit: 32
Version notes: WSDL 20.0+
Values: automatically generated

UpdatedDate optional

Query
Filter

The date when the object was last updated.

Type: dateTime
Character limit: 29
Version notes: --
Values: automatically generated

UpToPeriods

optional

Create
Query
Update
Filter

Specifies the length of the period during which the charge is active. If this period ends before the subscription ends, the charge ends when this period ends.

Type: long
Character limit: 5
Version notes: WSDL 41.0+
Values: a whole number between 0 and 65535, exclusive

Note:

  • You must use this field together with the UpToPeriodsType field to specify the time period. This field is applicable only when the EndDateCondition field is set to FixedPeriod
  • If the subscription end date is subsequently changed through a Renewal, or Terms and Conditions amendment, the charge end date will change accordingly up to the original period end.

UpToPeriodsType

optional

Create
Query
Update
Filter

The period type used to define when the charge ends.

Type: string (enum)
Character limit--
Version notes: WSDL 72.0+
Values: one of the following:

  • Billing Periods (default)
  • Days
  • Weeks
  • Months
  • Years

Note

  • You must use this field together with the UpToPeriods field to specify the time period.
  • This field is applicable only when the EndDateCondition field is set to FixedPeriod

UsageRecordRatingOption

optional

Create
Query
Update
Delete

Determines how Zuora processes usage records for per-unit usage charges. 

Type: string (enum)
Character limit: 18
Version notes: WSDL 83.0+
Values: one of the following:

  • EndOfBillingPeriod (default)
  • OnDemand
UseDiscountSpecificAccountingCode required

Create
Query
Update
Filter

Determines whether to define a new accounting code for the new discount charge.

Type: boolean
Character limit: 5
Version notes: all listed operations available for WSDL 41.0+; only Query and Filter available for WSDL 34.0 - 40.0; no availability for WSDL 33.0 and older
ValuesTrueFalse

UseTenantDefaultForPriceChange optional Create
Query
Update
Delete
Filter

Applies the tenant-level percentage uplift value for an automatic price change to a termed subscription's renewal. You set the tenant uplift value in the web-based UI: Z-Billing > Define Default Subscription Settings

Type: boolean
Character limit: 5
Version notes: WSDL 43.0+
Valuestruefalse

WeeklyBillCycleDay

optional Create
Update
Query

Specifies which day of the week as the bill cycle day (BCD) for the charge.

Type: string (enum)
Version notes: WSDL 74.0+
Values: one of the following:

  • Sunday
  • Monday
  • Tuesday
  • Wednesday
  • Thursday
  • Friday
  • Saturday

Additional Field Detail

Fields related to Prepaid with Drawdown

Note: These fields are only available if you have the Prepaid with Drawdown feature enabled.

Name Required to Create? Allowed Operations Description
IsPrepaid Required Create
Update
Query
 

Indicates whether this charge is a prepayment (topup) charge or a drawdown charge

Type: boolean
Character limit: 5
Version notes: WSDL 114+
Values: true or false

PrepaidOperationType Required Create
Query

The type of this charge. It is either a prepayment (topup) charge or a drawdown charge.  

Type: string(enum)
Character limit: - -
Version notes: WSDL 114+
Values: topup or drawdown

PrepaidQuantity

Optional (Required for  prepayment charge) Create
Update
Query

The number of units included in a prepayment charge.

Type: decimal
Character limit: 22
Version notes: WSDL 114+
Values: must be a positive number (>0). Null for drawdown charge

PrepaidTotalQuantity Optional Query

The total amount of units that end customers can use during a validity period when they subscribe to a prepayment charge.

Type: decimal
Character limit: 22
Version notes: WSDL 114+
Values: calculated with the formula “PrepaidQuantity * Default Quantity”. Only available for prepayment charge. Null for drawdown charge

PrepaidUom Optional (Required for prepayment charge) Create
Update
Query

Unit of measurement for a prepayment charge.

Type: string
Character limit: –
Version notes: WSDL 114+
Values: a configured unit of measure, such as Each. 

ValidityPeriodType Optional (Required for prepayment charge) Create
Update
Query

The period in which the prepayment units are valid to use as defined in a prepayment charge. See Validity period for more information. 

Type: enum
Character limit: –
Version notes: WSDL 114+
Values: One of the following:

  • Subscription_Term
  • Annual 
  • Semi_Annual  
  • Quarter 
  • Month 
CreditOption Optional Create
Update
Query

The way to calculate credit. See Credit option for more information. 

Type: enum
Character limit: –
Version notes: WSDL 114+
Values: One of the following:

  • TimeBased
  • ConsumptionBased
  • FullCreditBack
DrawdownRate Optional Create
Update
Query

The conversion rate between Usage UOM and Drawdown UOM for a drawdown charge.

Type: decimal
Character limit: –
Version notes: WSDL 114+
Values

  • Must be a positive number (>0). 
  • Drawdown Rate must be 1 when Drawdown UOM is the same as Usage UOM.  
  • If both DrawdownRate and DrawdownUOM are empty, the system will set default values respectively:
    • DrawdownRate: 1
    • DrawdownUOM: Same as the Usage UOM of this drawdown charge. 
  • DrawdownRate and DrawdownUOM need to have values or be empty at the same time. 
DrawdownUom Optional (Required for drawdown charge) Create
Update
Query

Unit of measurement for a drawdown charge.

Type: string
Character limit: –
Version notes: WSDL 114+
Values: a configured unit of measure, such as Each. 

BillCycleDay

Sets the bill cycle day (BCD) for the charge. The BCD determines which day of the month customer is billed. The BCD value in the account can override the BCD in this object.

Use this field for recurring charges and usage charges. Omit this field for one-time charges.

Set this field value to whole number, 1 - 31. Set the value to 31 if you want to bill this charge at the end of the month, including months with fewer than 31 days. The number, 0, isn't a valid value for this object; 0 represents the auto-set trigger, which applies to Account objects, not ProductRatePlanCharge objects.

BillCycleType

Specifies how to determine the billing day for the charge. Use one of the following values:

  • DefaultFromCustomer sets the bill cycle day (BCD) according to the BillCycleDay field value in related Account objects.
  • SpecificDayofMonth sets the BCD to a specific day of every month on a recurring basis. If you use this value, then you need to specify a BCD value for the BillCycleDay field in this object.
  • SubscriptionStartDay sets the BCD to the day that the subscription starts, which equates to one of the following dates. The date depends on which one you assigned to trigger the start of subscription charges in the Subscription object.
    • Contract effective date: the date that the contract for this subscription takes effect.
    • Service activation date: the date that services or products for this subscription are delivered or rendered.
    • Customer acceptance date: the date that the customer accepts the services or products for this subscription.
  • ChargeTriggerDay sets the BCD to the day that charges for this product rate plan are triggered to start.
  • SpecificDayofWeek sets the BCD to a specific day of every week on a recurring basis. If you use this value, then you need to specify a BCD value for the WeeklyBillCycleDay field in this object.

BillingPeriod

The billing period for the charge. The start day of the billing period is also called the bill cycle day (BCD).

Set a billing period for a charge only if the charge is recurring. Omit this field for one-time charges.

If the value is set to Specific Months or Specific Weeks then you must also set a value for the SpecificBillingPeriod field. The Specific Months  or Specific Weeks value lets you specify a month or a week in the SpecificBillingPeriod field to customize the billing period for the charge.

BillingPeriodAlignment

Aligns charges within the same subscription if multiple charges begin on different dates.

The billing period alignment field anchors quarterly, semiannual, or annual charges. When you set the same value for charges, then charges added to the same subscription on different dates have aligned billing periods.

Use one of the following values:

  • AlignToCharge starts the biling period on the first bill cycle day (BCD) on or after the charge trigger date. Charges bill on their own schedules and don't align with each other within the subscription. This value is the default value.
  • AlignToSubscriptionStart aligns all billing period to the first BCD on or after the subscription start date. Charges are aligned as soon as they're triggered.
  • AlignToTermStart aligns all billing periods to the first BCD on or after the current term start date. Charges are billed on their own schedules until the subscription reaches the end of its term and renews. The billing period for charges aligns when the subscription renews.

Proration

Proration allows you to select the proration behavior for a charge instead of using the tenant-level proration logic configured in the billing setting. The proration option under product rate plan charge level(recurring charges), allows you to select the proration behavior for a specific charge instead of using the tenant level proration logic configured in the billing setting.

You can choose different proration behaviors for different charges and settings.

  • Recurring charges 
    • DefaultFromTenantSetting allows to follow the customer billing rule proration setting.
    • ChargeFullPeriod allows to charge the full period amount for a partial billing period.
  • Usage charges (under unbilled usage)
    • NoProration is a default current system behavior for a usage charge.
    • TimeBased prorates the usage charge amount using the actual number of days if the billing period is a partial period.

ChargeModel

Determines how to calculate charges. Charge models must be individually activated in Z-Billing administration.

Use one of the following values if they are active on your tenant:

  • Discount-Fixed Amount is a fixed amount discount charge model, such as a one-time, $100 discount if the customer signs up for a subscription in January.
  • Discount-Percentage is a percentage discount charge model, such as a 15% discount on all subscription charges for the initial six months of service.
  • Flat Fee Pricing is a single price or fixed amount.
  • Per Unit Pricing charges per unit.
  • Overage Pricing charges a per-unit price on units in excess of included units in the base charge. Use this charge model only for usage-based charges.
  • Tiered Pricing changes pricing progressively as volume increases. A price table calculates pricing based on tiers that each define a range of volume and the corresponding pricing rule to apply when customers purchase a quantity of units that falls within the range of the tier.
  • Tiered with Overage Pricing is similar to the tiered charge model, except an overage charge exists for any units consumed above the ending units of the final tier.
  • Volume Pricing charges the price based on the volume purchased. 
  • MultiAttributePricing This value is only available in WSDL 102.0 and later if you have the Multi-Attribute Pricing charge model enabled. The charge model is available for customers with Enterprise and Nine editions by default. If you are a Growth customer, see Zuora Editions for pricing information. 
  • PreratedPerUnit  determines the total rated amount by multiplying the per unit rate with the provided quantity. This value is only available in WSDL 102.0 and later if you have the Pre-Rated Per Unit Pricing charge model enabled. The charge model is available for customers with Enterprise and Nine editions by default. If you are a Growth customer, see Zuora Editions for pricing information.
  • PreratedPricing charges the total rated amount that is passed in on the usage records that are uploaded to Zuora. This value is only available in WSDL 102.0 and later if you have the Pre-Rated Pricing model enabled. The charge model is available for customers with Enterprise and Nine editions by default. If you are a Growth customer, see Zuora Editions for pricing information.
  • HighWaterMarkVolumePricing charges end users only for the highest aggregated quantity of usage consumed on any day during a billing period. This value isonly available in WSDL 102.0 and later if you have the Volume with High Water Mark Pricing charge model enabled. The charge model is available for customers with Enterprise and Nine editions by default. If you are a Growth customer, see Zuora Editions for pricing information.
  • HighWaterMarkTieredPricing charges end users only for the highest aggregated quantity of usage consumed on any day during a billing period. This value is only available in WSDL 102.0 and later if you have the Tiered with High Water Mark Pricing charge model enabled. The charge model is available for customers with Enterprise and Nine editions by default. If you are a Growth customer, see Zuora Editions for pricing information.

You cannot create multiple discounts in a single product rate plan.

You cannot update the charge model on a product rate plan charge if it's part of an existing subscription.

ChargeType

Specifies the type of charge:

  • OneTime is a charge that happens once during the subscription, such as an activation or initiation fee.
  • Recurring is a charge that repeats during the subscription, such as monthly or annually.
  • Usage is a charge assessed on a customer's actual usage during a specific billing period of a subscription. Usage is always billed in arrears because it's based on actual usage. For example, a customer's usage in January is billed in February in a monthly billing period plan.

DiscountLevel

Specifies if the discount applies to just the product rate plan, the entire subscription, or to any activity in the account. This field is required if your ChargeModel field value is DiscountFixedAmount or DiscountPercentage.

You can't create multiple discounts in a single rate plan. However, you can apply multiple discounts to an individual customer. Customers can have a discount of each discount level type.

For example, Sergio has a $1000 recurring subscriptioncharge. He has the following discounts to apply to that $1000 charge:

  • A rate plan discount of 10%, which equals $100, and reduces his charge from $1000 to $900:
    $1000 charge - 10% discount = $900 charge
  • A subscription discount of 20%, which equals $180, and reduces his charge from $900 to $720:
    $900 charge - 20% discount = $720 charge
  • An account discount of 30%, which equals $216, and reduces his charge from $720 to $504:
    $720 charge - 30% discount = $504 charge

Discount charge models don't support tax inclusive modes; don't use this field if you set the TaxMode field value to TaxInclusive.

Id

The ID of this object. Every object has a unique identifier that Zuora automatically assigns upon creation. You use this ID later when you work with the object. For example, if you send an amend() call to modify an existing subscription, then you need to include the specific Subscription object's ID with the call.

The ID for the ProductRatePlanCharge object is ProductRatePlanChargeId.

IncludedUnits

Specifies the number of units in the base set of units. For example, in the Topaz product rate plan example, 500 minutes are included in the plan. This field is for usage-based fees only. This field isn't supported for tiered or volume-pricing.

NumberOfPeriod

Specifies the number of periods to use when calculating charges in an overage smoothing charge model, which is an advanced type of usage model that avoids spikes in usage charges. If a customer's usage spikes in a single period, an overage smoothing model eases overage charges by considering usage over multiple periods. The value that you provide in the NumberOfPeriod field determines the number of these periods to consider.

OverageCalculationOption

Determines whether to calculate overage charges at the end of the smoothing period or at the individual billing periods. Use this field for usage charges that use either an overage charge model or a tiered overage charge model.

OverageUnusedUnitsCreditOption

Determines whether to credit the customer with unused units of usage. Use this field for usage charges that use either an overage charge model or a tiered overage charge model.

Use NoCredit to issue no credit to the customer for unused usage. Use CreditBySpecificRate to issue credit to the customer for unused usage at a specified rate of units to credit.

PriceChangeOption

Applies an automatic price change when a termed subscription is renewed. Typically, this price change is an increase, and is commonly called an uplift. To enable this feature, use this field with one of the following values:

  • FromTenantPercentageValue uses the tenant-level percentage uplift, which you set in the web-based UI: Z-Billing > Define Default Subscription Settings
  • SpecificPercentageValue overrides the tenant-level uplift value with a specific value that you provide in the PriceIncreasePercentage field.

RevRecCode

Associates this product rate plan charge with a specific revenue recognition code. This code facilitates revenue recognition in accounting systems and reports.

Revenue recognition is commonly called rev rec.

Rev rec is an accounting principle and process for reporting revenue. Rev rec allows companies to recognize the monetary value of a subscription over a period of time as the revenue is realized and earned when services are rendered or goods are delivered.

Use any rev rec code for the RevRecCode field value that's active in Z-Billing. Open Z-Billing > Settings in the web-based UI to configure rev rec codes.

RevRecTriggerCondition

Specifies when revenue recognition begins. This code facilitates revenue recognition in accounting systems and reports.

Revenue recognition is commonly called rev rec.

Rev rec is an accounting principle and process for reporting revenue. Rev rec allows companies to recognize the monetary value of a subscription over a period of time as the revenue is realized and earned when services are rendered or goods are delivered.

Use one of the following values to specify when to recognize revenue:

  • ContractEffectiveDate is the date when the charge is ready to be billed.
  • ServiceActivationDate is the date when the services or products for a subscription are activated and the customers have access.
  • CustomerAcceptanceDate is the date when then customer accepts the services or products for a subscription.

SmoothingModel

Specifies the smoothing model for an overage smoothing charge model, which is an advanced type of a usage model that avoids spikes in usage charges. If a customer's usage spikes in a single period, then an overage smoothing model eases overage charges by considering usage and multiple periods.

Use one of the following values to specify which smoothing model to apply to the charge:

  • RollingWindow considers a number of periods to smooth usage. The rolling window starts and increments forward based on billing frequency. When allowed usage is met, then period resets and a new window begins.
  • Rollover considers a fixed number of periods before calculating usage. The net balance at the end of a period is unused usage, which is carried over to the next period's balance.

SpecificBillingPeriod

Customizes the number of month for the charges billing period. This field is required if you set the value of the BillingPeriod field to Specific Months.

If you want to charge a customer annually, semi-annually, quarterly, or monthly, then use the BillingPeriod field; don't use the SpecificBillingPeriod field.

TaxCode

Specifies the tax code for taxation rules. Tax codes identify which tax rules and rates to apply to a specific charge.

A tax code must be activated before you can use it as a valid TaxCode field value. For more information on tax codes in the Zuora API, see the TaxationItem object. For instructions on configuring tax codes in the web-based UI, see Configure Tax Codes in Z-Billing.

TaxMode

Determines how to define taxation for the charge.

Set the value to one of the following options:

  • TaxExclusive excludes tax in charge prices. Tax is calculated and added to the charge.
  • TaxInclusive includes tax in charge prices. Tax is part of the charge.

For example, a taxable service costs $100. If your tax mode is exclusive, then the invoice shows a charge of $100, adds a tax of $8.75, and shows a total of $108.75. If your tax mode is inclusive, then the invoices shows a total charge of $108.75, which includes both the $100 charge and the $8.75 tax.

Tax inclusive mode is typically used in Europe, Australia, and New Zealand. Tax exclusive mode is typically used in the United States.

The tax inclusive mode has the following limitations:

  • Tax codes can includes only one tax rate.
  • Tax codes can't include flat taxes.
  • Discount charge models aren't supported in WSDL 42.0 and older.WSDL 42.0 and older.

UsageRecordRatingOption

Determines how Zuora processes usage records for per-unit usage charges.

This field value on ProductRatePlanCharge object is the "Master" value, and it can be created, updated, queried, and deleted. The value of the UsageRecordRatingOption field on the RatePlanCharge object is inherited from the ProductRatePlanCharge object, and thus it can only be queried. 

The UsageRecordRatingOption field on the ProductRatePlanCharge object is available in WSDL version 83.0 and above.

UseDiscountSpecificAccountingCode

Determines whether to define a new accounting code for the new discount charge.

Set the value to True to define a dedicated accounting code for the discount charge. Set the value to False to copy the accounting code from the regular charge that the discount applies to.

Code Samples

Example: Create DiscountPercentage charge

Request:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<ns1:SessionHeader xmlns:ns1="http://api.zuora.com/" soapenv:mustUnderstand="0">   
<ns1:session>VG5wfW54Wu9bKGyDkRelw3DOFRuN9Xz6JRZSEtOh-2UIDLzKkH6EQ3UyhS9_j7McGcAVvp4fBRIFXPRHsy-JV2wd6278MI-onjrCGBg6iWNGPbiLY04IuM8lzkVYrcGJ2r1Zxn6vVjl6ldZPclQ0qcDe2uQ_GJSXh6RDbBa33K8Ul6_UFEw8obs1ORENg9Iz</ns1:session>
</ns1:SessionHeader>
</soapenv:Header>
<soapenv:Body>
    <ns1:create xmlns:ns1="http://api.zuora.com/">
      <ns1:zObjects xmlns:ns2="http://object.api.zuora.com/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:ProductRatePlanCharge">
            <ns2:Name>API_discountPercentagecharge</ns2:Name>
            <ns2:BillCycleType>SubscriptionStartDay</ns2:BillCycleType>          
            <ns2:BillingPeriod>Annual</ns2:BillingPeriod>
            <ns2:BillingPeriodAlignment>AlignToTermStart</ns2:BillingPeriodAlignment>
            <ns2:TriggerEvent>ContractEffective</ns2:TriggerEvent>
            <ns2:ChargeModel>DiscountPercentage</ns2:ChargeModel>
            <ns2:ChargeType>Recurring</ns2:ChargeType>
            <ns2:ApplyDiscountTo>RECURRING</ns2:ApplyDiscountTo>
            <ns2:DiscountLevel>subscription</ns2:DiscountLevel>
            <ns2:UpToPeriods>6</ns2:UpToPeriods>
            <ns2:ProductRatePlanChargeTierData>
                <ns1:ProductRatePlanChargeTier xsi:type="ns2:ProductRatePlanChargeTier">
                    <ns2:DiscountPercentage>9.9</ns2:DiscountPercentage>
                </ns1:ProductRatePlanChargeTier>
            </ns2:ProductRatePlanChargeTierData>
            <ns2:ProductRatePlanId>402892a3384ff47801384ff9e5010004</ns2:ProductRatePlanId>
        </ns1:zObjects>
</ns1:create>
</soapenv:Body>
</soapenv:Envelope>
Reponse:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Body>
      <ns1:createResponse xmlns:ns1="http://api.zuora.com/">
         <ns1:result>
            <ns1:Id>402892a337e8edd90137ea1482100018</ns1:Id>
            <ns1:Success>true</ns1:Success>
         </ns1:result>
      </ns1:createResponse>
   </soapenv:Body>
</soapenv:Envelope>

Example: Update DiscountPercentage charge

Request:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Header>
      <ns1:SessionHeader xmlns:ns1="http://api.zuora.com/" soapenv:mustUnderstand="0">
      <ns1:session>Rpg8r3WMihMYauT9YKMk4y4Zz_zKH7GYO83ROLFYQchVlpCrvcKV84X1Agdcg-_9U8go3VJi8qZdw0JmvHRbeJXiZwJsHFyoGDrmAEQn-</ns1:session>
      </ns1:SessionHeader>
   </soapenv:Header>
    <soapenv:Body>
      <ns1:update xmlns:ns1="http://api.zuora.com/">
      <ns1:zObjects xmlns:ns2="http://object.api.zuora.com/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ns2:ProductRatePlanCharge">
         <ns2:Id>402892a338a317cc0138a341efe7000a</ns2:Id>
         <ns2:ChargeModel>DiscountPercentage</ns2:ChargeModel>
         <ns2:ProductRatePlanChargeTierData>
            <ns1:ProductRatePlanChargeTier xsi:type="ns2:ProductRatePlanChargeTier">
                 <ns2:DiscountPercentage>22.22</ns2:DiscountPercentage>
                 <ns2:Id>402892a338a317cc0138a341efe7000a</ns2:Id>
            </ns1:ProductRatePlanChargeTier>
        </ns2:ProductRatePlanChargeTierData>       
    </ns1:zObjects>
     </ns1:update>
    </soapenv:Body>
</soapenv:Envelope>
Response:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Body>
      <ns1:updateResponse xmlns:ns1="http://api.zuora.com/">
         <ns1:result>
            <ns1:Id>402892a338a317cc0138a341efe7000a</ns1:Id>
            <ns1:Success>true</ns1:Success>
         </ns1:result>
      </ns1:updateResponse>
   </soapenv:Body>
</soapenv:Envelope>

Example: Query DiscountPercentage charge

Request:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:api="http://api.zuora.com/">
   <soapenv:Header>
      <api:SessionHeader>
         <api:session>Rpg8r3WMihMYauT9YKMk4y4Zz_zKH7GYO83ROLFYQchVlpCrvcK</api:session>
      </api:SessionHeader>
   </soapenv:Header>
   <soapenv:Body>
      <api:query>
         <api:queryString>select id,name,ChargeModel,ChargeType,ApplyDiscountTo,DiscountLevel,UpToPeriods from ProductRatePlanCharge where id = '402892a338a317cc0138a341efe7000a'</api:queryString>
      </api:query>
   </soapenv:Body>
</soapenv:Envelope>
   Response:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Body>
      <ns1:queryResponse xmlns:ns1="http://api.zuora.com/">
         <ns1:result>
            <ns1:done>true</ns1:done>
            <ns1:queryLocator xsi:nil="1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
            <ns1:records xsi:type="ns2:ProductRatePlanCharge" xmlns:ns2="http://object.api.zuora.com/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
               <ns2:Id>402892a338a317cc0138a341efe7000a</ns2:Id>
               <ns2:ApplyDiscountTo>RECURRING</ns2:ApplyDiscountTo>
               <ns2:ChargeModel>Discount-Percentage</ns2:ChargeModel>
               <ns2:ChargeType>Recurring</ns2:ChargeType>
               <ns2:DiscountLevel>subscription</ns2:DiscountLevel>
               <ns2:Name>API_discountPercentagecharge</ns2:Name>
               <ns2:UpToPeriods>6</ns2:UpToPeriods>
            </ns1:records>
            <ns1:size>1</ns1:size>
         </ns1:result>
      </ns1:queryResponse>
   </soapenv:Body>
</soapenv:Envelope>

Example TaxMode query

Request:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:api="http://api.zuora.com/">
   <soapenv:Header>
      <api:SessionHeader>
         <api:Session>oX_WH9vz_mR5c8PqSlyG86ZotIFOr7rIXpKet8HAqg1-BhcAi0JV4iFv5NPUgRbo-eo1VCTxei2J8uNyG22zioK9wAXvzxPO3LdUbLUGnImdyLjVZhWhqnDbkuQG8_5E_TqEGOYq5XyPfVTmo6ExzM-JQDyDKoVQzy5oS2r7s0NFM7Uk-9e0BqPzCl4C1iQo</api:Session>
      </api:SessionHeader>
   </soapenv:Header>
   <soapenv:Body>
      <api:query>
         <api:queryString>select Id,TaxMode from ProductRatePlanCharge</api:queryString>
      </api:query>
   </soapenv:Body>
</soapenv:Envelope>

Response:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Body>
      <ns1:queryResponse xmlns:ns1="http://api.zuora.com/">
         <ns1:result>
            <ns1:done>true</ns1:done>
            <ns1:queryLocator xsi:nil="1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
            <ns1:records xsi:type="ns2:ProductRatePlanCharge" xmlns:ns2="http://object.api.zuora.com/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
               <ns2:Id>4028921e3971b317013971b659a300e4</ns2:Id>
               <ns2:TaxMode>TaxExclusive</ns2:TaxMode>
            </ns1:records>
            <ns1:records xsi:type="ns2:ProductRatePlanCharge" xmlns:ns2="http://object.api.zuora.com/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
               <ns2:Id>4028921e3971b317013971b65b0300e6</ns2:Id>
               <ns2:TaxMode>TaxInclusive</ns2:TaxMode>
            </ns1:records>
            <ns1:size>2</ns1:size>
         </ns1:result>
      </ns1:queryResponse>
   </soapenv:Body>
</soapenv:Envelope>