Manage the authenticated user's recurring subscription: cancel auto-renewal (keeping the period already paid for) and open a one-shot Creem billing portal for card and invoice management. These endpoints take no request body and return flat, bespoke JSON shapes — they are not wrapped in the standard {success, payload, meta, errors, description} envelope. Both require authentication.
Cancelling never refunds and never cuts access early. Cancellation disables auto-renewal both at Creem (scheduled — billing stops at period end) and locally. The user keeps full access until access_until, after which the subscription simply lapses.
Cancel Subscription
POST/v1/subscription/cancelRequires Auth
Cancel Subscription
Cancel Subscription
Disable auto-renewal on the authenticated user's active subscription. No request body is required. The user keeps access until the end of the period they already paid for; no refund is issued. This call is idempotent — cancelling an already-cancelled subscription succeeds and echoes back the current expiry with "already_cancelled": true.
When the subscription was already cancelled on a prior call, the response additionally carries "already_cancelled": true and no second call is made to Creem:
If the account has no active subscription (or no linked Creem subscription), the endpoint returns 422:
Response422
{
"success": false,
"code": "NO_ACTIVE_SUBSCRIPTION",
"message": "You have no active subscription to cancel."
}
If the cancellation request to the billing provider fails, the endpoint returns 500 and nothing is changed — the call is safe to retry:
Response500
{
"success": false,
"code": "CANCEL_FAILED",
"message": "Could not cancel subscription. Please try again or contact support."
}
Billing Portal
One-shot, single-use URL. The returned portal_url is a fresh Creem Customer Portal session for browser redirect — the user can update their payment card, view billing history, and manage the subscription there. Do not cache it; generate a new one each time you need to send the user to the portal.
POST/v1/subscription/billing-portalRequires Auth
Open Billing Portal
Open Billing Portal
Generate a one-shot Creem Customer Portal session URL for the authenticated user and return it for a browser redirect. No request body is required. Requires an existing billing customer on the account (created the first time the user pays); accounts that have never been billed cannot open the portal.