ChargebeeAPI

Subscriptions

Subscription represents the recurring items a customer has subscribed to. The recurring items can be - plan, addons. It may also contain the discount items like coupons.

Subscriptions are invoiced at the start of every term based on the recurring items and charged immediately against the customer's credit card if 'auto_collection' is turned 'on', otherwise the resulting invoice will be created as 'Payment Due'.

Note: The maximum number of subscriptions for any given customer (active or not) is 900.

Note: Make sure you choose the correct Field ID and Available APIs combination from the table above. All Product Catalog APIs include Plans , Addons , Coupons , Coupon Sets , Coupon Codes .

Sample SubscriptionJSON

Subscriptions attributes

id
required, string, max chars=50

A unique and immutable identifier for the subscription. If not provided, it is autogenerated.

currency_code
required, string, max chars=3

The currency code (ISO 4217 format ) of the subscription

plan_id
required, string, max chars=100

Identifier of the plan for this subscription

plan_quantity
required, integer, default=1, min=1

Represents the plan quantity for this subscription.

plan_unit_price
optional, in cents, min=0

Amount that will override the Plan's default price. The unit depends on the type of currency .

setup_fee
optional, in cents, min=0

Amount that will override the default setup fee. The unit depends on the type of currency .

billing_period
optional, integer, min=1

Defines billing frequency. Example: to bill customer every 3 months, provide "3" here.

billing_period_unit
optional, enumerated string

Defines billing frequency in association with the billing period.

Possible Enum Values
day

Charge based on day(s)

week

Charge based on week(s)

month

Charge based on month(s)

year

Charge based on year(s)

start_date
optional, timestamp(UTC) in seconds

Applicable only for 'future' subscriptions. The scheduled start time of the subscription.

trial_end
optional, timestamp(UTC) in seconds

End of the trial period for the subscription. Presence of this value for 'future' subscription implies the subscription will go into 'in_trial' state when it starts.

remaining_billing_cycles
optional, integer, min=0
  • When the subscription is not on a contract term: this value is the number of billing cycles remaining after the current cycle, at the end of which, the subscription cancels.
  • When the subscription is on a contract term: this value is the number of billing cycles remaining in the contract term after the current billing cycle.
po_number
optional, string, max chars=100

Purchase order number for this subscription.

auto_collection
optional, enumerated string

Defines whether payments need to be collected automatically for this subscription. Overrides customer's auto-collection property.

Possible Enum Values
on

Whenever an invoice is created for this subscription, an automatic charge will be attempted on the payment method available.

off

Automatic collection of charges will not be made for this subscription. Use this for offline payments.

plan_quantity_in_decimal
optional, string, max chars=33

The decimal representation of the quantity of the plan purchased. Returned for quantity-based plans when multi-decimal pricing is enabled.

plan_unit_price_in_decimal
optional, string, max chars=39

The decimal representation of the price or per-unit price of the plan. The value is in major units of the currency. Always returned when multi-decimal pricing is enabled.

customer_id
required, string, max chars=50

Identifier of the customer with whom this subscription is associated.

plan_amount
optional, in cents, min=0

The total amount for the plan.

plan_free_quantity
optional, integer, min=0

The units of the item that will be free with this Plan.

status
required, enumerated string

Current state of the subscription

Possible Enum Values
future

The subscription is scheduled to start at a future date.

in_trial

The subscription is in trial.

active

The subscription is active and will be charged for automatically based on the items in it.

non_renewing

The subscription will be canceled at the end of the current term.

paused

The subscription is paused. The subscription will not renew while in this state.

cancelled

The subscription has been canceled and is no longer in service.

transferred

The transferred status will be reflected on the source business entity's subscription attribute once the customer transfer activity is completed successfully. This status is only valid for product catalog 2.0 as the Multiple Business Entity features can only be enabled for product catalog 2.0.

trial_start
optional, timestamp(UTC) in seconds

Start of the trial period for the subscription. Presence of this value for future subscription implies the subscription will go into in_trial state when it starts.

trial_end_action
optional, enumerated string

Applicable only when End-of-trial Action has been enabled for the site. Whenever the subscription has a trial period, this attribute (parameter) is returned (required) and specifies the operation to be carried out for the subscription once the trial ends.

Possible Enum Values
site_default

This is the default value. The action configured for the site at the time when the trial ends, takes effect.

plan_default

The action configured for the site at the time when the trial ends, takes effect.

activate_subscription

The subscription activates and charges are raised for non-metered items.

cancel_subscription

The subscription cancels.

current_term_start
optional, timestamp(UTC) in seconds

Start of the current billing period of the subscription.

current_term_end
optional, timestamp(UTC) in seconds

End of the current billing period of the subscription. Subscription is renewed immediately after this

next_billing_at
optional, timestamp(UTC) in seconds

The date/time at which the next billing for the subscription happens. This is usually right after current_term_end unless multiple subscription terms were invoiced in advance using the terms_to_charge parameter.

created_at
optional, timestamp(UTC) in seconds

The time at which the subscription was created.

started_at
optional, timestamp(UTC) in seconds

Time at which the subscription was started. Is null for future subscriptions as it is yet to be started.

activated_at
optional, timestamp(UTC) in seconds

Time at which the subscription status last changed to active. For example, this value is updated when an in_trial or cancelled subscription activates.

gift_id
optional, string, max chars=150

References the gift if it is a gifted subscription.

contract_term_billing_cycle_on_renewal
optional, integer, min=1, max=100

Number of billing cycles the new contract term should run for, on contract renewal. The default value is the same as billing_cycles or a custom value depending on the site configuration .

override_relationship
optional, boolean

If true , ignores the hierarchy relationship and uses customer as payment and invoice owner.

pause_date
optional, timestamp(UTC) in seconds

When a pause has been scheduled, it is the date/time of scheduled pause. When the subscription is in the paused state, it is the date/time when the subscription was paused.

resume_date
optional, timestamp(UTC) in seconds

For a paused subscription, it is the date/time when the subscription is scheduled to resume. If the pause is for an indefinite period, this value is not returned.

cancelled_at
optional, timestamp(UTC) in seconds

Time at which subscription was cancelled or is set to be cancelled.

cancel_reason
optional, enumerated string

The reason for canceling the subscription. Set by Chargebee automatically.

Possible Enum Values
not_paid

Not Paid

no_card

No Card

fraud_review_failed

Fraud Review Failed

non_compliant_eu_customer

Non Compliant EU Customer

tax_calculation_failed

Tax Calculation Failed

currency_incompatible_with_gateway

Currency incompatible with Gateway

non_compliant_customer

Non Compliant Customer

affiliate_token
optional, string, max chars=250

A unique tracking token

created_from_ip
optional, string, max chars=50

The IP address of the user. Used primarly in Refersion integration. Refersion uses this field to track/log affiliate subscription.

resource_version
optional, long

Version number of this resource. The resource_version is updated with a new timestamp in milliseconds for every change made to the resource. This attribute will be present only if the resource has been updated after 2016-09-28.

updated_at
optional, timestamp(UTC) in seconds

Timestamp indicating when the item was last updated.

has_scheduled_advance_invoices
required, boolean, default=false

The subscription has an advance invoicing schedule .

has_scheduled_changes
required, boolean, default=false

If true , there are subscription changes scheduled on next renewal.

payment_source_id
optional, string, max chars=40

Payment source attached to this subscription. If present, customer's payment sources won't be used to collect any payment for this subscripiton.

plan_free_quantity_in_decimal
optional, string, max chars=33

The free_quantity_in_decimal as set for the plan. Returned for quantity-based plans when multi-decimal pricing is enabled.

plan_amount_in_decimal
optional, string, max chars=39

The decimal representation of the total amount for the plan, in major units of the currency. Always returned when multi-decimal pricing is enabled.

cancel_schedule_created_at
optional, timestamp(UTC) in seconds

This is the date/time at which the most recent cancellation schedule for the subscription was created in Chargebee. Applicable only for cancelled subscriptions or subscriptions that are scheduled for cancellation.

offline_payment_method
optional, enumerated string

The preferred offline payment method for the subscription.

Possible Enum Values
no_preference

No Preference

cash

Cash

check

Check

bank_transfer

Bank Transfer

ach_credit

ACH Credit

channel
optional, enumerated string

The subscription channel this object originated from and is maintained in.

Possible Enum Values
web

The object was created (and is maintained) for the web channel directly in Chargebee via API or UI.

app_store

The object data is synchronized with data from in-app subscription(s) created in Apple App Store. Direct manipulation of this object via UI or API is disallowed.

play_store

The object data is synchronized with data from in-app subscription(s) created in Google Play Store. Direct manipulation of this object via UI or API is disallowed.

In-App Subscriptions is currently in early access. Contact eap@chargebee.com for more information.

active_id
optional, string, max chars=50

This attribute is only valid for product catalog 2.0 as the Multiple Business Entity features can only be enabled for product catalog 2.0.

due_invoices_count
optional, integer

Total number of invoices that are due for payment against the subscription. Note: Not supported if consolidated invoicing is enabled, or when the subscription is for the customer who is in hierarchy , and the parent of this customer owns and pays for the invoices of the subscription. It is also worth noting that the consolidated invoice amount is not included in the calculation of due_invoices_count .

due_since
optional, timestamp(UTC) in seconds

Time since this subscription has unpaid invoices. Note: Not supported if consolidated invoicing is enabled, or when the subscription is for the customer who is in hierarchy , and the parent of this customer owns and pays for the invoices of the subscription.

total_dues
optional, in cents, min=0

Total invoice due amount for this subscription. The value depends on the type of currency . Note: Not supported if consolidated invoicing is enabled, or when the subscription is for the customer who is in hierarchy , and the parent of this customer owns and pays for the invoices of the subscription. It is also worth noting that the consolidated invoice amount is not included in the calculation of total_dues .

mrr
optional, in cents, min=1

Monthly recurring revenue for the subscription. Updated asynchronously, this value catches up with changes to the subscription in less than a minute. The value depends on the type of currency . Note: This may not return accurate values since updated asynchronously.

exchange_rate
optional, bigdecimal, min=1E-9, max=999999999.999999999

Exchange rate used for base currency conversion.This value is updated to the rate configured on your site each time any change is made to the subscription.

base_currency_code
optional, string, max chars=3

The currency code (ISO 4217 format ) of the site's base currency.

invoice_notes
optional, string, max chars=2000

A customer-facing note added to all invoices associated with this subscription. This note is one among all the notes displayed on the invoice PDF.

meta_data
optional, jsonobject

A collection of key-value pairs that provides extra information about the subscription.

Note: There's a character limit of 65,535.

Learn more .

deleted
required, boolean

Indicates that the subscription has been deleted when the value is true. You can retrieve a deleted subscription using the list operation .

changes_scheduled_at
optional, timestamp(UTC) in seconds

If a subscription change has been scheduled, this is the date/time when the change is set to take effect. Note: As a limitation, this attribute is not returned when the change is scheduled to happen at the end of the current term.

cancel_reason_code
optional, string, max chars=100

Reason code for canceling the subscription. Must be one from a list of reason codes set in the Chargebee app in Settings > Configure Chargebee > Reason Codes > Subscriptions > Subscription Cancellation. Must be passed if set as mandatory in the app. The codes are case-sensitive

free_period
optional, integer

The period of time by which the first term of the subscription is to be extended free-of-charge. The value must be in multiples of free_period_unit."

free_period_unit
optional, enumerated string

Defines additional free period in association with the billing period.

Possible Enum Values
day

Charge based on day(s)

week

Charge based on week(s)

month

Charge based on month(s)

year

Charge based on year(s)

create_pending_invoices
optional, boolean

Indicates whether the invoices for this subscription are generated with a pending status. This attribute is set to true automatically when the subscription has item prices that belong to metered items. You can also set this to true explicitly using the create/update subscription operations. This is useful in the following scenarios:

  • When tracking usages and calculating usage-based charges on your end. You can then add them to the subscription as a one-time charge at the end of the billing term.
  • When you need to inspect all charges before closing invoices for this subscription. Applicable only when Metered Billing is enabled for the site
auto_close_invoices
optional, boolean

Set to false to override for this subscription, the site-level setting for auto-closing invoices. Only applicable when auto-closing invoices has been enabled for the site. This attribute has a higher precedence than the same attribute at the customer level .

business_entity_id
optional, string, max chars=50

The ID of the business entity created for the site. For Product Catalog 1.0, all the site data is tied to this business entity.

Note

Multiple Business Entities is a feature available only on Product Catalog 2.0.

decommissioned
required, boolean, default=false
addons
optional, list of addon

List of addons for this subscription with quantity(if applicable)

event_based_addons
optional, list of event_based_addon

List of non-recurring addons that will be charged on the occurrence of specified event.

charged_event_based_addons
optional, list of charged_event_based_addon

List of event_based_addons that have already been charged.

coupons
optional, list of coupon

List of coupons for this subscription

shipping_address
optional, shipping_address

Shipping address for the subscription.

referral_info
optional, referral_info

Referral details if exists for the subscription

contract_term
optional, contract_term

Contract terms for this subscription