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.
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 |
ApplyDiscountTo | optional |
Create |
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)
|
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 |
BillCycleType | required | Create Query Update Delete Filter |
Specifies how to determine the billing day for the charge. Type: string (enum)
Note:
|
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)
Note: Specify the number of months or weeks in the SpecificBillingPeriod field if you set this field to |
BillingPeriodAlignment | optional | Create Query Update Delete Filter |
Aligns charges within the same subscription if multiple charges begin on different dates. Type: string (enum)
|
BillingTiming | optional |
Create |
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)
|
ChargeFunction | optional | Create Query Update Delete Filter |
This field is only available if you have the Prepaid with Drawdown feature enabled. Type: string (enum)
|
CommitmentType | optional | Create Query Update Delete Filter |
This field is only available if you have the Prepaid with Drawdown feature enabled. Type: string (enum) A prepaid charge can be
|
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)
|
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 |
ConfigurationItem | optional | Create Update |
An array of Charge Model Configuration Key-Value pairs. Type: array |
Key | required | Create Update |
The name of the field that is specified for a specific charge model. Values:
|
Value | required | Create Update |
The value of the field that is specified in the Values:
|
ChargeType | required | Create Query Filter |
Specifies the type of charge. Type: string (enum)
Note: To query and filter one time charges, you need to specify |
CreatedById | optional |
Query |
The ID of the Zuora user who created the ProductRatePlanCharge object.
Type: zns:ID |
CreatedDate | optional |
Query |
The date when the Type: dateTime |
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) |
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 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 |
DiscountClass |
optional |
Create |
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 |
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)
|
EndDateCondition |
optional |
Create |
Defines when the charge ends after the charge trigger date. Type: string (enum)
Note: |
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 or Order to Revenue. 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 |
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 or Order to Revenue. 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 |
Id | optional | Query Filter |
The ID of this object. Upon creation, the ID of this object is Type: zns:ID |
IncludedUnits | optional |
Create |
Specifies the number of units in the base set of units.
Type: decimal |
IsAllocationEligible | optional | Create Query Update |
This field is used to identify if the charge segment is allocation eligible in revenue recognition.
Type: boolean 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 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 |
ListPriceBase | optional |
Create |
The list price base for the product rate plan charge.
Type: string (enum)
|
MaxQuantity | optional |
Create |
Specifies the maximum number of units for this charge. Use this field and the Type: decimal (quantity) |
MinQuantity | optional |
Create |
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) |
Model | n/a |
n/a |
Deprecated. Use |
Name | required |
Create |
The name of the product rate plan charge.
Type: string |
NumberOfPeriod | optional |
Create |
Specifies the number of periods to use when calculating charges in an overage smoothing charge model.
Type: integer |
OverageCalculationOption | optional |
Create |
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)
|
OverageUnusedUnitsCreditOption | optional |
Create |
Determines whether to credit the customer with unused units of usage. Type: string (enum)
|
PriceChangeOption | optional | Create Query Update Delete Filter |
Applies an automatic price change when a termed subscription is renewed. Type: string (enum)
|
PriceIncreaseOption | optional |
Create |
Applies an automatic price change when a termed subscription is renewed. Type: string (enum)
|
PriceIncreasePercentage | optional |
Create |
Specifies the percentage to increase or decrease the price of a termed subscription's renewal. Use this field if you set the Type: decimal |
ProductCategory | optional | Create Query Update |
This is used to maintain the product category. Type: string 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 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 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 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 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 Type: array |
AppliedProductRatePlanId | optional | Create Update |
The ID of the product rate plan that the discount product rate plan charge applies to. If the The Type: zns:ID |
AppliedProductRatePlanChargeId | optional | Create Update |
The ID of the product rate plan charge that the discount product rate plan charge applies to. The If you specify a value in the If the 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 Type: zns:ID |
ProductRatePlanChargeTierData |
required |
Create |
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 |
The ID of the product rate plan associated with this product rate plan charge. Type: zns: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 helps you automatically backfill this field with tenant ID for your existing product catalog. If you want to backfill this field, contact Zuora Global Support.
|
RatingGroup |
conditional |
Create |
Specifies a rating group based on which usage records are rated. See Usage Rating by Group for more information. Type: string (enum)
Note:
|
RecognizedRevenueAccount | Conditional | Create Query Update |
The name of the recognized revenue account for this charge.
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 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)
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 |
Associates this product rate plan charge with a specific revenue recognition code.
Type: string |
RevRecTriggerCondition | optional |
Create |
Specifies when revenue recognition begins. Type: string (enum)
|
SmoothingModel |
optional |
Create |
Specifies the smoothing model for an overage smoothing charge model. Type: string (enum)
|
SpecificBillingPeriod |
optional |
Create |
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 Type: long |
IsStackedDiscount | optional |
Create |
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 |
Taxable | optional |
Create |
Determines whether the charge is taxable. When set to Type: boolean Note: This value affects the tax calculation of rate plan charges that come from the ProductRatePlanCharge. |
TaxCode | conditional |
Create |
Specifies the tax code for taxation rules. Required when the Taxable field is set to Type: string 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 Type: string (enum)
Note: This value affects the tax calculation of rate plan charges that come from the ProductRatePlanCharge. |
TriggerEvent | required |
Create |
Specifies when to start billing the customer for the charge. Type: string (enum)
|
Type | n/a |
n/a |
Deprecated. Use ChargeType instead. |
UOM | optional |
Create |
Specifies the units to measure usage. Units of measure are configured in the web-based UI: Z-Billing > Settings. Type: string
|
UpdatedById | optional |
Query |
The ID of the last user to update the object.
Type: zns:ID |
UpdatedDate | optional |
Query |
The date when the object was last updated.
Type: dateTime |
UpToPeriods |
optional |
Create |
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 Note:
|
UpToPeriodsType |
optional |
Create |
The period type used to define when the charge ends. Type: string (enum)
Note:
|
UsageRecordRatingOption |
optional |
Create |
Determines how Zuora processes usage records for per-unit usage charges. Type: string (enum)
|
UseDiscountSpecificAccountingCode | required |
Create |
Determines whether to define a new accounting code for the new discount charge.
Type: boolean |
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 |
WeeklyBillCycleDay |
optional | Create Update Query |
Specifies which day of the week as the bill cycle day (BCD) for the charge. Type: string (enum)
|
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 |
PrepaidOperationType | Required | Create Query |
The type of this charge. It is either a prepayment (topup) charge or a drawdown charge. Type: string(enum) |
PrepaidQuantity |
Optional (Required for prepayment charge) | Create Update Query |
The number of units included in a prepayment charge. Type: decimal |
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 |
PrepaidUom | Optional (Required for prepayment charge) | Create Update Query |
Unit of measurement for a prepayment charge. Type: string |
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
|
CreditOption | Optional | Create Update Query |
The way to calculate credit. See Credit option for more information. Type: enum
|
DrawdownRate | Optional | Create Update Query |
The conversion rate between DrawdownUom and UOM in a drawdown charge, as follows:
Type: decimal
|
DrawdownUom | Optional (Required for drawdown charge) | Create Update Query |
The unit of measurement that is configured in a drawdown charge. You should set this field to be the same as the PrepaidUom field of the corresponding prepayment charge. Note that the unit of measurement for the usage is configured in the UOM field of your drawdown charge. Type: string |
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 theBillCycleDay
field value in relatedAccount
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 theBillCycleDay
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 theSubscription
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 theWeeklyBillCycleDay
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 SettingsSpecificPercentageValue
overrides the tenant-level uplift value with a specific value that you provide in thePriceIncreasePercentage
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>
<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
<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>
<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
<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>
<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>