Reactivates a previously canceled subscription. For details on how the reactivation works, and how to reactivate subscriptions through the application, see reactivation.
Note: The term "resume" is used also during another process in Advanced Billing. This occurs when an on-hold subscription is "resumed". This returns the subscription to an active state.
active or trialing state.canceled_at and cancellation_message fields do not have values.A subscription is considered "resumable" if you are attempting to reactivate within the billing period the subscription was canceled in.
A resumed subscription's billing date remains the same as before it was canceled. In other words, it does not start a new billing period. Payment may or may not be collected for a resumed subscription, depending on whether or not the subscription had a balance when it was canceled (for example, if it was canceled because of dunning).
Consider a subscription which was created on June 1st, and would renew on July 1st. The subscription is then canceled on June 15.
If a reactivation with resume: true were attempted before what would have been the next billing date of July 1st, then Advanced Billing would resume the subscription.
If a reactivation with resume: true were attempted after what would have been the next billing date of July 1st, then Advanced Billing would not resume the subscription, and instead it would be reactivated with a new billing period.
If a reactivation with resume: false, or where 'resume' is omitted were attempted, then Advanced Billing would reactivate the subscription with a new billing period regardless of whether or not resuming the previous billing period was possible.
| Canceled | Reactivation | Resumable? |
|---|---|---|
| Jun 15 | June 28 | Yes |
| Jun 15 | July 2 | No |
The resulting charges upon reactivation will be:
1 charge for $20 for the new product
1 charge for $20 for the balance due
Total charges = $40
The subscription will transition to active
The subscription balance will be zero
PUT request sent to:
https://acme.chargify.com/subscriptions/{subscription_id}/reactivate.json?coupon_code=EARLYBIRD
Given you have a canceled subscription
The product associated with the subscription has a trial
PUT request to
https://acme.chargify.com/subscriptions/{subscription_id}/reactivate.json
Given you have a canceled subscription
The product associated with the subscription has a trial
Send a PUT request to https://acme.chargify.com/subscriptions/{subscription_id}/reactivate.json?include_trial=1
https://acme.chargify.com/subscriptions/{subscription_id}/reactivate.jsoncanceled subscription and it is resumablehttps://acme.chargify.com/subscriptions/{subscription_id}/reactivate.json?resume=truecanceled subscription, and it is not resumablehttps://acme.chargify.com/subscriptions/{subscription_id}/reactivate.json?resume=truecanceled subscription, and it is not resumablehttps://acme.chargify.com/subscriptions/{subscription_id}/reactivate.json?resume[require_resume]=true { "errors": ["Request was 'resume only', but this subscription cannot be resumed."] }canceledtrial_ended subscription, and it is resumablehttps://acme.chargify.com/subscriptions/{subscription_id}/reactivate.json?resume=truetrial_ended subscription, and it is resumablehttps://acme.chargify.com/subscriptions/{subscription_id}/reactivate.json?resume=trueWhen a payment requires 3DS Authentication to adhere to Strong Customer Authentication (SCA), the request enters a post-authentication flow where a 422 Unprocessable Entity status is returned with an action_link that will direct the customer through 3DS Authentication.
See the 3D Secure Post-Authentication Flow article in the product documentation to learn how to manage the redirect flow.
The username is a Maxio Chargify API key and the password is x. Basic authentication works only with the US and EU environments, which connect to chargify.com directly. The Maxio API Gateway environment does not accept Basic authentication.
In: header
The Chargify id of the subscription.
application/json
TypeScript Definitions
Use the request body type in TypeScript.
application/json
application/json
curl -X PUT \ --url 'https://subdomain.chargify.com/subscriptions/1/reactivate.json' \ -H 'Accept: application/json' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer ACCESS_TOKEN' \ --data-raw '{ "calendar_billing": { "reactivation_charge": "prorated" }, "include_trial": true, "preserve_balance": true, "coupon_code": "10OFF", "use_credits_and_prepayments": true, "resume": true}'These values are only applicable to subscriptions using calendar billing.
If true is sent, the reactivated Subscription will include a trial if one is available. If false is sent, the trial period will be ignored.
If true is passed, the existing subscription balance will NOT be cleared/reset before adding the additional reactivation charges.
The coupon code to be applied during reactivation.
If true is sent, Advanced Billing will use service credits and prepayments upon reactivation. If false is sent, the service credits and prepayments will be ignored.
If true, Advanced Billing will attempt to resume the subscription's billing period. If not resumable, the subscription will be reactivated with a new billing period. If false or omitted, Advanced Billing will only attempt to reactivate the subscription with a new billing period, regardless of whether or not the subscription is resumable.