comecerodocs

Undo a scheduled cancellation

POST
/subscriptions/{subscription_id}/uncancel

Removes a cancellation that was scheduled for the end of the current period, for the subscription and all its items, so it keeps renewing. The subscription:cancellation_unscheduled event fires. A subscription that is already cancelled cannot be uncancelled (422). No body. Secret, trusted and limited tokens may call it. A limited token may only do this for the customer it is signed in as, and only when your subscription settings allow customers to cancel (otherwise 403).

Authorization

headerAuthorizationBearer <token>

A secret, trusted or limited token. See Authentication.

Path Parameters

subscription_id*string

The subscription id.

Query Parameters

expand?string

Comma-separated child objects to return in full instead of as a URL, for example customer,payments. Use dot notation for nested objects (items.product), up to four levels deep. A single object takes up to 12 paths; a list takes up to 2, applied to every item. Extra paths are dropped without an error. See Expanding objects.

show?string

Comma-separated fields to return; all others are left out. Use dot notation for child fields (customer.email). You cannot send show and hide together (400). See Customizing output.

hide?string

Comma-separated fields to leave out of the response. Use dot notation for child fields (customer.email). You cannot send show and hide together (400). See Customizing output.

formatted?boolean

When true, the object also has a formatted child with amounts and dates as display text in the shopper's language and currency (for example $19.99 or November 7, 2026). The default is false. See Localized formatting.

Defaultfalse

Response Body

The subscription after the change.

application/json
  1. response

A customer's recurring billing for one or more items. Most subscriptions are made when a cart or invoice with a subscription product is paid. Each billing period an invoice is made and paid from the customer's saved payment method.

object*"subscription"

The object type. Always subscription.

Value in"subscription"
url*string

The full URL of this subscription.

Formaturi
subscription_id*string

The subscription id.

date_created*string

When the subscription was created.

Formatdate-time
date_modified*string

When the subscription was last changed.

Formatdate-time
test*boolean

true for a test subscription, false for a live one.

account_id*string

The account the subscription belongs to.

status*string

trial while in a free trial, active while billing, cancelled once cancelled, and completed once the last billing set by end_at_billing_count is done.

Value in"trial""active""cancelled""completed"
in_grace_period*boolean

true when a renewal payment failed and is being retried. The subscription stays active during the grace period. If no retry succeeds before the grace period in your subscription settings ends, the subscription is cancelled.

billing_interval*integer

How many billing_interval_unit make one billing period. Copied from the subscription plan when the subscription was made.

billing_interval_unit*string

The unit of the billing period. minute and hour are only allowed on test plans.

Value in"minute""hour""day""month""year"
billing_interval_description*string

The billing period as text, for example 1 month or 3 months.

trial_interval*|

The trial length in trial_interval_unit. null when there is no trial.

trial_interval_unit*|

The unit of the trial. null when there is no trial.

Value in"minute""hour""day""month""year"null
trial_interval_description*|

The trial length as text, for example 14 days. null when there is no trial.

billing_count*integer

How many times the subscription has been billed (one invoice per billing period). This is not the number of successful payments: a failed renewal still counts. 0 during a trial.

end_at_billing_count*|

The number of billings after which the subscription completes. null means it bills until cancelled.

currency*string

The three-letter ISO 4217 currency the customer pays in. Item prices in another currency are converted at each renewal.

items*array<>

The items the subscription bills for, including cancelled ones.

shipping_method_id*|

The shipping method used for physical items on each renewal. null when nothing is shipped.

date_trial_start*|

When the trial started. null when there is no trial.

Formatdate-time
date_trial_end*|

When the trial ends, or ended. null when there is no trial.

Formatdate-time
date_current_period_start*|

When the current billing period started. null once the subscription is cancelled.

Formatdate-time
date_current_period_end*|

When the current billing period ends. The next renewal is billed at this time. null once the subscription is cancelled.

Formatdate-time
date_next_renewal_notification?|

When the next renewal reminder is sent to the customer. null when reminders are off or none is due. Not returned to a limited token.

Formatdate-time
date_cancelled*|

When the cancellation was asked for. When a cancellation is scheduled for the period end, this is set at once while the subscription stays active until date_current_period_end. null when not cancelled.

Formatdate-time
cancellation_reason?|

Why the subscription was cancelled: the reason sent with the cancellation, or one set automatically (for example when all items were cancelled). Not returned to a limited token.

cancel_at_current_period_end*boolean

true when the subscription is set to be cancelled at the end of the current billing period.

date_ended*|

When the subscription ended, by cancellation or completion. For an immediate cancellation it equals date_cancelled. null while the subscription runs.

Formatdate-time
add_at_current_period_end*array<>

Items scheduled to be added at the end of the current billing period. Empty when none are scheduled. Remove them all with DELETE /subscriptions/{subscription_id}/add_at_current_period_end.

subscription_plan?|

The subscription plan, as a URL, or the full object with expand=subscription_plan. Later changes to the plan do not change existing subscriptions, so the plan can differ from the values here. Left out when the token may not read subscription plans.

customer?|

The customer, as a URL, or the full object with expand=customer. Left out when the token may not read customers.

invoices?|

The subscription's invoices, as a URL, or an offset-based list of invoices with expand=invoices (only when you get one subscription, not in a list). The invoices are the billing history. Left out when the token may not read invoices.

history?|

The change log, as a URL, or the full object with expand=history (only when you get one subscription). Not returned to a limited token.

meta*unknown

Any data you stored on the subscription, up to 2,048 characters.

formatted?

The dates as display text in the requested locale and time zone. Only returned with formatted=true.

Example Request
curl -X POST 'https://api.comecero.com/api/v1/subscriptions/string/uncancel'
Example Response
{  "object": "subscription",  "url": "https://api.comecero.com/api/v1/subscriptions/0093799318129SuLByRPW8",  "subscription_id": "0093799318129SuLByRPW8",  "date_created": "2026-10-02T15:21:28Z",  "date_modified": "2026-11-02T15:21:31Z",  "test": true,  "account_id": "AB1234",  "status": "active",  "in_grace_period": false,  "billing_interval": 1,  "billing_interval_unit": "month",  "billing_interval_description": "1 month",  "trial_interval": null,  "trial_interval_unit": null,  "trial_interval_description": null,  "billing_count": 2,  "end_at_billing_count": null,  "currency": "USD",  "items": [    {      "object": "subscription_item",      "url": "https://api.comecero.com/api/v1/subscriptions/0093799318129SuLByRPW8/items/acme-pro.test",      "item_id": "acme-pro.test",      "date_created": "2026-10-02T15:21:28Z",      "date_modified": "2026-10-02T15:21:28Z",      "product_id": "acme-pro.test",      "name": "Acme Pro (monthly)",      "quantity": 1,      "reference_price": 19.95,      "reference_currency": "USD",      "reference_discount": 0,      "reference_discount_price": null,      "discount_apply_count": null,      "discount_applied_count": 0,      "cancelled": false,      "cancel_at_current_period_end": false,      "date_cancelled": null,      "date_ended": null,      "cancellation_reason": null,      "tax_code": null,      "type": "digital",      "change_at_current_period_end": null,      "product": "https://api.comecero.com/api/v1/products/acme-pro.test",      "subscription": "https://api.comecero.com/api/v1/subscriptions/0093799318129SuLByRPW8",      "subscription_terms": "https://api.comecero.com/api/v1/subscriptions/0093799318129SuLByRPW8/items/acme-pro.test/subscription_terms",      "meta": null    }  ],  "shipping_method_id": null,  "date_trial_start": null,  "date_trial_end": null,  "date_current_period_start": "2026-11-02T15:21:28Z",  "date_current_period_end": "2026-12-02T15:21:28Z",  "date_next_renewal_notification": "2026-11-29T15:21:28Z",  "date_cancelled": null,  "cancellation_reason": null,  "cancel_at_current_period_end": false,  "date_ended": null,  "add_at_current_period_end": [],  "subscription_plan": "https://api.comecero.com/api/v1/subscription_plans/0093472113202Spzs4AV8C",  "customer": "https://api.comecero.com/api/v1/customers/0093799288003CuGOip8X9",  "invoices": "https://api.comecero.com/api/v1/subscriptions/0093799318129SuLByRPW8/invoices",  "history": "https://api.comecero.com/api/v1/subscriptions/0093799318129SuLByRPW8/history",  "meta": null}