Cancel subscription
Cancel a subscription so it stops renewing; access continues until the end date.
POST https://cotlet.dev/api/v1/recurly/subscriptions/{subscription_id}/cancel
Cancels one subscription at the timing you choose: immediately, at the next billing cycle or at the end of the term. It stays active until then, and can be reactivated in Recurly before it expires. After expiry you need a new subscription. A subscription set to start in the future is deleted instead. It does not terminate, which ends access now. By default you confirm each call; you can switch that off for this tool.
Parameters
| Name | Type | Description |
|---|---|---|
| subscription_id string required | string | Subscription UUID from list_subscriptions. |
| timing enum | enum | immediately, next_billing_cycle or end_of_term. Default: the end of the current bill cycle. |
Request
curl -X POST https://cotlet.dev/api/v1/recurly/subscriptions/44f83d0cbf86d2b8a5b3d3e6c3e8b16f/cancel \
-H "Authorization: Bearer $COTLET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"timing":"end_of_term"}' result = client.call("recurly", "cancel_subscription", {"subscription_id":"44f83d0cbf86d2b8a5b3d3e6c3e8b16f","timing":"end_of_term"}) const result = await cotlet.call('recurly', 'cancel_subscription', {"subscription_id":"44f83d0cbf86d2b8a5b3d3e6c3e8b16f","timing":"end_of_term"}); cotlet call recurly cancel_subscription --data '{"subscription_id":"44f83d0cbf86d2b8a5b3d3e6c3e8b16f","timing":"end_of_term"}' Example response
{
"subscription_id": "44f83d0cbf86d2b8a5b3d3e6c3e8b16f",
"account_code": "acme-co",
"state": "canceled",
"canceled_at": "2026-10-14T10:20:00Z",
"expires_at": "2026-11-14T00:00:00Z"
}