A rate plan is part of a subscription or an amendment to a subscription, and it comes from a product rate plan. Like a product and its product rate plans, a subscription can have one or more rate plans. Rate plans are sometimes called subscription rate plans. Rate plans that are part of an amendment are sometimes called amendment rate plans.
Rate plans represent a price or a collection of prices for a service you sell. An individual rate plan contains all charges specific to a particular subscription.
Use a RatePlan object to create a Subscription object-specific structure of pricing and terms. You can think of a ProductRatePlan object as a template for creating a subscription. The Subscription object's individual RatePlan objects are constructed from the ProductRatePlan "template." Typically, the terms of a RatePlan object mimic its corresponding ProductRatePlan object closely. However, you can alter the terms on an individual subscription basis using the subscription's rate plan.
A RatePlan object can have multiple RatePlanCharge objects, which can be one-time fees, recurring fees, or usage fees.
A one-time fee is a charge that your customer pays only once. One-time fees don't recur. Upfront setup fees and activation fees are examples of a one-time fee.
A recurring fee is a fee that repeats on a regular basis. You can set the schedule to be monthly, quarterly, semi-annually, or annually. Once the charge is triggered, the customer is automatically charged on the appropriate dates in the future. Monthly charges for satellite TV and yearly charges for authoring licenses on a hosted wiki are examples of a recurring fee.
A usage fee is a fee based on the amount of units, such as media storage, that customers use during a given billing period. Usage charges are billed in arrears based on a customer's actual usage. Per-minute charges for phone calls and GB of media storage are examples of usage fees.
Here are some common ways to use this object:
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 |
The ID of the amendment associated with the rate plan. This field only applies to amendment rate plans.
|The ID of the subscription rate plan modified by the amendment. This field only applies to amendment rate plans. |
|The type of amendment associated with the rate plan. This field only applies to amendment rate plans. |
|The ID of the Zuora user who created the RatePlan object. |
|The date when the |
|The ID of this object. Upon creation, the ID of this object is |
|The name of the rate plan. |
|The ID of the associated product rate plan. |
|The ID of the subscription that the rate plan belongs to. |
The ID of the user who last updated the rate plan.
The date when the rate plan was last updated.
|One or more custom fields.|
|One or more custom fields.|
Here's more information we think you might like to have about some of these fields. Use the Comments form at the bottom of this page if you have more questions.
The type of amendment associated with the rate plan. This field only applies to amendment rate plans, which are rate plans that are part of amendments.
The value for this field is inherited from the
Type field in the Amendment object, which can have the following values:
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 RatePlan object is
By default, rate plans that were removed by an amendment with the type,
Remove Product Amendment, aren't returned by queries.
If you want to return rate plans that were removed by an amendment, add
AmendmentType != null in the
where clause conditions.
For example, the following query will return two RatePlans. One of the RatePlans was previously removed by an amendment.
select Id, SubscriptionId, AmendmentType, Name from RatePlan Where AmendmentType!=null and SubscriptionId = '4028e4883294aa9c013296255d7b2a83'
The following query will return one RatePlan, which is included in the latest subscription.
select Id, SubscriptionId, AmendmentType, Name from RatePlan Where SubscriptionId = '4028e4883294aa9c013296255d7b2a83'