Knowledge Center

Knowledge Center > API > SOAP API > SOAP API Object Reference > ProductRatePlanCharge

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 Product RatePlanCharge 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.

Don't 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 a discount charge
  • 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

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

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
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
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.

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 wish 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

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.

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

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
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 SmoothingMode 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

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

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.

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

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. 

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

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 wish 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
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

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 th 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 required

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 required

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 56.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
Queary

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

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.

ChargeModel

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

Use one of the following values if they're 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.

You can't create multiple discounts in a single product rate plan.

You can't 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.

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 56.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>

 

Last modified
23:15, 30 Nov 2016

Tags

Classifications

(not set)