Skip to content

subscription-exists

HTTP 409 Conflict

POST /v1/billing/checkout does not start a second checkout because the organization already has a subscription. The API first asks Stripe about the stored subscription: the statuses active, trialing, past_due, unpaid and paused count as existing. If the stored subscription no longer exists at Stripe or has ended, the API removes the reference and the checkout goes ahead.

What to do

Change or cancel the plan in the billing portal; GET /v1/billing/portal returns its address. Besides the standard fields, the response carries current_plan and subscription_status.

{
"type": "https://docs.qr3.app/errors/subscription-exists",
"title": "Subscription already active",
"status": 409,
"detail": "This organization already has an active subscription. Manage or change it in the billing portal (GET /v1/billing/portal) instead of starting a new checkout.",
"current_plan": "pro",
"subscription_status": "active"
}

← Error Reference