Specifies the price with billing frequency for a subscription. Create separate plans for varied price or billing frequency. For example, if you need to charge $10 per month for a group of customers and $100 per year for another group of customers, then create separate plans for each.
Sample plan [ JSON ]
{
"charge_model": "flat_fee",
"enabled_in_hosted_pages": true,
"enabled_in_portal": true,
"free_quantity": 0,
"id": "silver",
"invoice_name": "sample plan",
"name": "Silver",
"object": "plan",
"period": 1,
"period_unit": "month",
"price": 5000,
"status": "active",
"taxable": true
}
API Index URL GET
https://{site}.chargebee.com/api/v1/plans
A unique ID for your system to identify the plan.
string, max chars=100
The display name used in web interface for identifying the plan.
string, max chars=50
Display name used in invoice. If it is not configured then name is used in invoice.
optional, string, max chars=100
Description about the plan to show in the hosted pages & customer portal.
optional, string, max chars=500
The price of the plan.
optional, in cents, min=0
Defines billing frequency. Example: to bill customer every 3 months, provide "3" here.
integer, default=1, min=1
Defines billing frequency in association with billing period.
enumerated string, default=monthPossible values are
dayCharge based on day(s).weekCharge based on week(s).monthCharge based on month(s).yearCharge based on year(s).
The free time window for your customer to try your product.
optional, integer, min=1
Time unit for the trial period.
optional, enumerated stringPossible values are
dayIn days.monthIn months.
Defines how the subscription recurring charge for this plan should be calculated.
enumerated stringPossible values are
flat_feeCharge a single price on recurring basis.per_unitCharge the price for each unit of the plan for the subscription on recurring basis.
Free quantity the subscriptions of this plan will have. Only the quantity more than this will be charged for the subscription.
integer, default=0, min=0
One-time setup fee charged as part of the first invoice.
optional, in cents, min=1
The plan state.
enumerated string, default=activePossible values are
activeNew subscriptions can be created with the plan.archivedNo new subscriptions allowed for the plan. Existing subscriptions on this plan will remain as-is and can be migrated to another active plan if required.
Time at which the plan was moved to archived status.
optional, timestamp(UTC) in seconds
The number of billing cycles the subscription is active. The subscription is moved to non renewing state and then to cancelled state automatically.
optional, integer, min=1
The url to redirect on successful checkout. Eg: https://yoursite.com/success.html?plan=basic.
optional, string, max chars=500
If true, allow checkout through plan specific hosted page URL for this plan.
boolean, default=true
If enabled, customers can switch to this plan using the 'Change Subscription' option in the customer portal.
boolean, default=true
Invoice Notes for this resource.
optional, string, max chars=2000
Specifies if the plan should be taxed or not.
optional, boolean, default=true
A set of key-value pairs stored as additional information for the subscription.
Learn more.
optional, jsonobject
Create a new plan.
Sample Request
curl https://{site}.chargebee.com/api/v1/plans \
-u {site_api_key}:\
-d id="silver" \
-d name="Silver" \
-d invoice_name="sample plan" \
-d price=5000
copy
curl https://{site}.chargebee.com/api/v1/plans \
-u {site_api_key}:\
-d id="silver" \
-d name="Silver" \
-d invoice_name="sample plan" \
-d price=5000
Sample Response [ JSON ]
Show more...
{"plan": {
"charge_model": "flat_fee",
"enabled_in_hosted_pages": true,
"enabled_in_portal": true,
"free_quantity": 0,
"id": "silver",
"invoice_name": "sample plan",
"name": "Silver",
"object": "plan",
"period": 1,
"period_unit": "month",
"price": 5000,
"status": "active",
"taxable": true
}}
URL Format POST
https://{site}.chargebee.com/api/v1/plans
A unique ID for your system to identify the plan.
required, string, max chars=100
The display name used in web interface for identifying the plan.
required, string, max chars=50
Display name used in invoice. If it is not configured then name is used in invoice.
optional, string, max chars=100
Description about the plan to show in the hosted pages & customer portal.
optional, string, max chars=500
The free time window for your customer to try your product.
optional, integer, min=1
Time unit for the trial period.
optional, enumerated stringPossible values are
dayIn days.monthIn months.
Defines billing frequency. Example: to bill customer every 3 months, provide "3" here.
optional, integer, default=1, min=1
Defines billing frequency in association with billing period.
optional, enumerated string, default=monthPossible values are
dayCharge based on day(s).weekCharge based on week(s).monthCharge based on month(s).yearCharge based on year(s).
One-time setup fee charged as part of the first invoice.
optional, in cents, min=1
The price of the plan.
optional, in cents, min=0
The number of billing cycles the subscription is active. The subscription is moved to non renewing state and then to cancelled state automatically.
optional, integer, min=1
Defines how the subscription recurring charge for this plan should be calculated.
optional, enumerated stringPossible values are
flat_feeCharge a single price on recurring basis.per_unitCharge the price for each unit of the plan for the subscription on recurring basis.
Free quantity the subscriptions of this plan will have. Only the quantity more than this will be charged for the subscription.
optional, integer, default=0, min=0
The url to redirect on successful checkout. Eg: https://yoursite.com/success.html?plan=basic.
optional, string, max chars=500
If true, allow checkout through plan specific hosted page URL for this plan.
optional, boolean, default=true
If enabled, customers can switch to this plan using the 'Change Subscription' option in the customer portal.
optional, boolean, default=true
Specifies if the plan should be taxed or not.
optional, boolean, default=true
Invoice Notes for this resource.
optional, string, max chars=2000
A set of key-value pairs stored as additional information for the subscription.
Learn more.
optional, jsonobject
Resource object representing plan.
always returned
When updating plans that are already linked to an invoice or a subscription, you can only update the following parameters:
- name
- invoice_name
- setup_cost
- price
- trial_period
- trial_period_unit
- redirect_url
- enabled_in_hosted_pages
Sample Request
curl https://{site}.chargebee.com/api/v1/plans/cb_trial \
-u {site_api_key}:\
-d invoice_name="sample plan"
copy
curl https://{site}.chargebee.com/api/v1/plans/cb_trial \
-u {site_api_key}:\
-d invoice_name="sample plan"
Sample Response [ JSON ]
Show more...
{"plan": {
"charge_model": "flat_fee",
"enabled_in_hosted_pages": true,
"enabled_in_portal": true,
"free_quantity": 0,
"id": "cb_trial",
"invoice_name": "sample plan",
"name": "CB Trial",
"object": "plan",
"period": 1,
"period_unit": "month",
"price": 0,
"status": "active",
"taxable": true
}}
URL Format POST
https://{site}.chargebee.com/api/v1/plans/{plan_id}
The display name used in web interface for identifying the plan.
optional, string, max chars=50
Display name used in invoice. If it is not configured then name is used in invoice.
optional, string, max chars=100
Description about the plan to show in the hosted pages & customer portal.
optional, string, max chars=500
The free time window for your customer to try your product. If zero is passed, the trial period will be removed.
optional, integer, min=0
Time unit for the trial period.
optional, enumerated stringPossible values are
dayIn days.monthIn months.
Defines billing frequency. Example: to bill customer every 3 months, provide "3" here.
optional, integer, min=1
Defines billing frequency in association with billing period.
optional, enumerated stringPossible values are
dayCharge based on day(s).weekCharge based on week(s).monthCharge based on month(s).yearCharge based on year(s).
One-time setup fee charged as part of the first invoice.
optional, in cents, min=1
The price of the plan.
optional, in cents, min=0
The number of billing cycles the subscription is active. The subscription is moved to non renewing state and then to cancelled state automatically.
optional, integer, min=1
Defines how the subscription recurring charge for this plan should be calculated.
optional, enumerated stringPossible values are
flat_feeCharge a single price on recurring basis.per_unitCharge the price for each unit of the plan for the subscription on recurring basis.
Free quantity the subscriptions of this plan will have. Only the quantity more than this will be charged for the subscription.
optional, integer, min=0
The url to redirect on successful checkout. Eg: https://yoursite.com/success.html?plan=basic.
optional, string, max chars=500
If true, allow checkout through plan specific hosted page URL for this plan.
optional, boolean
If enabled, customers can switch to this plan using the 'Change Subscription' option in the customer portal.
optional, boolean
Specifies if the plan should be taxed or not.
optional, boolean
Invoice Notes for this resource.
optional, string, max chars=2000
A set of key-value pairs stored as additional information for the subscription.
Learn more.
optional, jsonobject
Resource object representing plan.
always returned
This API fetches all the active and archived plans. If the limit parameter is not set, it will return upto 10 plans. .
Sample Request
curl https://{site}.chargebee.com/api/v1/plans \
-G \
-u {site_api_key}:\
--data-urlencode limit=3
copy
curl https://{site}.chargebee.com/api/v1/plans \
-G \
-u {site_api_key}:\
--data-urlencode limit=3
Sample Response [ JSON ]
Show more...
{
"list": [
{"plan": {
"charge_model": "per_unit",
"enabled_in_hosted_pages": true,
"enabled_in_portal": true,
"free_quantity": 0,
"id": "sub_free",
"name": "sub_Free",
"object": "plan",
"period": 1,
"period_unit": "month",
"price": 0,
"status": "active",
"taxable": true
}},
{..}
],
"next_offset": "[\"1000\",\"132000000602\"]"
}
URL Format GET
https://{site}.chargebee.com/api/v1/plans
The number of resources to be returned.
optional, integer, default=10, min=1, max=100
Determines your position in the list for pagination. To ensure that the next page is retrieved correctly, always set offset
to the value of next_offset
obtained in the previous iteration of the API call.
optional, string, max chars=1000
Resource object representing plan.
always returned
next_offset
This attribute is returned only if more resources are present. To fetch the next set of resources use this value for the input parameter “offset”.
optional, string, max chars=1000
Retrieve a specific plan using the id.
Sample Request
curl https://{site}.chargebee.com/api/v1/plans/sub_free \
-u {site_api_key}:
copy
curl https://{site}.chargebee.com/api/v1/plans/sub_free \
-u {site_api_key}:
Sample Response [ JSON ]
Show more...
{"plan": {
"charge_model": "per_unit",
"enabled_in_hosted_pages": true,
"enabled_in_portal": true,
"free_quantity": 0,
"id": "sub_free",
"name": "sub_Free",
"object": "plan",
"period": 1,
"period_unit": "month",
"price": 0,
"status": "active",
"taxable": true
}}
URL Format GET
https://{site}.chargebee.com/api/v1/plans/{plan_id}
Resource object representing plan.
always returned
Sample admin console URL
https://{site}.chargebee.com/admin-console/plans/123x
When a plan that already has subscriptions/invoices linked to it is deleted, it does not get completely purged but is instead moved to "Archived" state. No other subscriptions can use this plan but subscriptions already on it will continue to renew. Once a plan has been archived, it cannot be edited or used again and the plan cannot be un-archived.
If no subscriptions or invoices are linked to a plan, the plan will be permanently deleted from your Chargebee site. This action cannot be undone.
If a plan that is an applicable item for a coupon is deleted, then the plan will be removed from that coupon's list of applicable items.
Archiving a plan will not affect coupons in anyway.
Sample Request
curl https://{site}.chargebee.com/api/v1/plans/demo_plan/delete \
-X POST \
-u {site_api_key}:
copy
curl https://{site}.chargebee.com/api/v1/plans/demo_plan/delete \
-X POST \
-u {site_api_key}:
Sample Response [ JSON ]
Show more...
{"plan": {
"charge_model": "flat_fee",
"enabled_in_hosted_pages": true,
"enabled_in_portal": true,
"free_quantity": 0,
"id": "demo_plan",
"invoice_name": "demo plan",
"name": "Demo plan",
"object": "plan",
"period": 1,
"period_unit": "month",
"price": 5000,
"status": "deleted",
"taxable": true
}}
URL Format POST
https://{site}.chargebee.com/api/v1/plans/{plan_id}/delete
Resource object representing plan.
always returned