POST /subscriptions/{subscription-id}/reactivate
Reactivates a canceled subscription.
Use this operation to restore a canceled subscription to an active or in-trial state.
Extend non-renewing subscriptions
To extend the billing cycles of a non_renewing subscription, use the Remove scheduled cancellation API.
In-term reactivation
The subscription's current billing term is demarcated by the current_term_start and current_term_end attributes. These attributes are retained even if the subscription is canceled. An "in-term reactivation" happens when the subscription is reactivated on or before current_term_end.
Prerequisites & Constraints
- The subscription
statusmust becancelled.
Impacts
Subscription
- For subscriptions canceled due to payment failure, in-term reactivation is governed by the Chargebee Billing configuration for reactivation.
Invoice
If an invoice gets generated during this operation, customer balances such as promotional credits, excess payments, and refundable credits are automatically applied subject to limits set at the site level which can be overridden for subscriptions via subscription.billing_override.
Use Cases
Create payment source using payment_intent
Use the payment_intent parameter to create a payment source for the customer. If reactivation generates an invoice and auto_collection is on, Chargebee immediately attempts payment collection using the new payment source.
Note
- This works for both Strong Customer Authentication (SCA) (i.e. 3D-Secure) and non-SCA flows.
- The payment source replaces the existing primary payment source for the customer.
- Create a
payment_intentresource by calling the Create a payment intent API. - Pass the
payment_intentobject to your frontend and use Chargebee.js to capture the payment source details from the customer. You can use Payment Components to capture the payment source details. - Listen to the
payment_intent_updatedevent. Once thepayment_intent.statusisauthorized, pass thepayment_intent.idusing thepayment_intent[id]parameter in this API call.
Servers
- {protocol}://{site}.{environment}:{port}/api/v2
- {protocol}://{site}-test.{environment}:{port}/api/v2
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
subscription-id |
String | Yes |
Request headers
| Name | Type | Required | Description |
|---|---|---|---|
chargebee-request-origin-device |
String | No |
The device from which the customer has made the request |
Content-Type |
String | Yes |
The media type of the request body.
Default value: "application/x-www-form-urlencoded" |
chargebee-event-webhook |
String | No |
skip only webhooks Valid values:
|
chargebee-business-entity-id |
String | No |
If the site has multiple business entities, you can use this custom HTTP header to specify the business entity for which Chargebee should perform the operation. |
chargebee-event-actions |
String | No |
skip all actions to be done on the events Valid values:
|
chargebee-request-origin-user |
String | No |
The email address of your customer/user. Use this when the email address has only ASCII characters. |
chargebee-request-origin-ip |
String | No |
The IP address of the customer where the request originated |
chargebee-request-origin-user-encoded |
String | No |
The Base64-encoded email address of your customer/user. Use this if the email address has UTF-8 characters. When this header is provided, the header chargebee-request-origin-user is ignored. |
chargebee-event-email |
String | No |
skip only emails Valid values:
|
Request body fields
| Name | Type | Required | Description |
|---|---|---|---|
payment_initiator |
String | No |
The initiator of this payment request. Sending this information can improve the success rate of the payment at the gateway. * customer - The payment was initiated by your customer. * merchant - The payment was initiated by you (the merchant). Valid values:
|
invoice_immediately |
Boolean | No |
If there are charges raised immediately for the subscription, this parameter specifies whether those charges are to be invoiced immediately or added to unbilled charges. The default value is as per the site settings . Note:
. |
billing_alignment_mode |
String | No |
Applicable when calendar billing is enabled and a new active term gets started during this operation. Unless specified the configured default value will be used. * delayed - Subscription period will be aligned with the configured billing date at the next renewal. * immediate - Subscription period will be aligned with the configured billing date immediately, with credits or charges raised accordingly. Valid values:
|
payment_intent |
Object | No |
Parameters for payment_intent |
payment_intent.id |
String | No |
Identifier for the Prerequisites
|
payment_intent.gateway_account_id |
String | No |
The gateway account used for performing the 3DS flow. |
payment_intent.payment_method_type |
String | No |
The payment method type. Default value
card * netbanking_emandates -netbanking_emandates * payconiq_by_bancontact -Payconiq by Bancontact * dotpay -dotpay * faster_payments -Faster Payments * upi -upi * kbc_payment_button -KBC Payment Button * electronic_payment_standard -Electronic Payment Standard * direct_debit -direct_debit * sepa_instant_transfer -Sepa Instant Transfer * bancontact -bancontact * pay_by_bank -Pay By Bank * google_pay -google_pay * apple_pay -apple_pay * online_banking_poland -Online Banking Poland * trustly -Trustly * stablecoin -Stablecoin * giropay -giropay * paypal_express_checkout -paypal_express_checkout * pix -Pix * venmo -Venmo * klarna_pay_now -Klarna Pay Now * sofort -sofort * amazon_payments -Amazon Payments * ideal -ideal * pay_to -PayTo * boleto -boleto Valid values:
|
payment_intent.additional_information |
Object | No |
|
payment_intent.gw_token |
String | No |
Identifier for 3DS transaction/verification object at the gateway. Can be passed only after successfully completing the 3DS flow. Refer 3DS implementation in Chargebee to find out the gateway-specific gw_token format. Applicable when you are using gateway APIs directly for completing the 3DS flow. |
payment_intent.reference_id |
String | No |
Identifier for Braintree permanent token. Applicable when you are using Braintree APIs for completing the 3DS flow. |
terms_to_charge |
Integer | No |
The number of subscription billing cycles to invoice in advance.
If a new term is started for the subscription due to this API call, then |
reactivate_from |
Integer | No |
The date-time at which the subscription was reactivated. When not provided, the subscription is reactivated immediately on calling this API. Prerequisites
Constraints
|
invoice_date |
Integer | No |
The document date displayed on the invoice PDF. Provide this value to backdate the invoice. Backdating an invoice is done for reasons such as booking revenue for a previous date or when the subscription is effective as of a past date. Moreover, if Default value
Constraints
|
contract_term |
Object | No |
Parameters for creating a contract term for the subscription. **Prerequisites** * [Contract Terms](https://www.chargebee.com/docs/contract-terms.html) feature must be enabled for the site. |
contract_term.action_at_term_end |
String | No |
Action to be taken when the contract term completes. Constraints
The contract term completes and the subscription continues to renew without a new contract term. * renew -The contract term completes and a new contract term is started for the number of billing cycles specified in Contract term completes and subscription is canceled. Valid values:
|
contract_term.cancellation_cutoff_period |
Integer | No |
The number of days before Required if
Constraints
Default value: 0 |
statement_descriptor |
Object | No |
Parameters for statement_descriptor |
statement_descriptor.descriptor |
String | No |
Payment transaction descriptor text to help your customer easily recognize the transaction. When this value is passed this will override the transaction descriptor text configured in the Chargebee site for all the subscription renewal transactions. |
trial_end |
Integer | No |
Providing this parameter indicates that the subscription reactivates with an Constraints
|
contract_term_billing_cycle_on_renewal |
Integer | No |
The number of billing cycles the new contract term should run for, on contract renewal. This value is used when Constraints
Default value
|
billing_cycles |
Integer | No |
The number of billing cycles (including the current cycle) this subscription should remain active for. After the billing cycles are exhausted, the subscription is canceled automatically. Default value
Impact
|
How to start integrating
- Add HTTP Task to your workflow definition.
- Search for the API you want to integrate with and click on the name.
- This loads the API reference documentation and prepares the Http request settings.
- Click Test request to test run your request to the API and see the API's response.