# Managing your subscription

> The billing modal, changing plans, adding seats, the Stripe customer portal for payment methods and invoices, and what each subscription status means.

Source: https://latchkey.dev/documentation/managing-billing

## Summary

- The **Billing modal** (owners/admins) shows plan, seats, repositories, next charge, and runner usage.
- Change Plan upgrades or downgrades in place; Manage Billing opens the Stripe portal for cards and invoices.
- Past Due, Paused, and Canceled all block access until resolved; data is retained throughout.

Click **Billing** in the dashboard sidebar (owners and admins) to open the **Billing & Subscription** modal. Members see it as **View Only**, with a note to contact the workspace owner or admin for changes.

## What the modal shows

- **Current Plan** with a status badge (Trial, Active, Canceled, Past Due, or Paused).
- **Repositories**: monitored count against your plan limit.
- **Dashboard Seats**: included seats plus any purchased extras.
- **Team Members**: how many of your seats are in use.
- **Next billing** while active, or **Trial ends** while trialing: the next date that matters for the subscription.
- **Managed Runners** (hidden on Developer): a Free Tier bar, this period's total and billable minutes, and the estimated runner cost so far.

The **Managed Runners** card is the one worth a monthly glance: it is the live view of free-tier consumption and the runner cost accumulating this period. The mechanics behind those numbers are covered in [Runner usage and free minutes](/documentation/runner-usage-and-free-minutes).

While trialing, a dashboard banner also reminds you to add a payment method before the trial ends, so your managed runners keep running without interruption; the modal's trial end date tells you how long you have.

## The actions

- **Change Plan** upgrades or downgrades in place. Downgrading below your monitored-repository count asks you to choose which repositories stay monitored. Downgrading to Developer requires the workspace to have only one member.
- **Manage Seats** adds or removes $5/month seats on every plan except Developer, with a live price preview before you confirm. It needs a Stripe subscription on file, so it stays disabled during a card-less trial.
- **Manage Billing** opens the **Stripe customer portal**, where payment methods, invoices (with PDFs), and subscription details are managed securely by Stripe. It is disabled until the workspace has a Stripe customer, which happens when you first subscribe.
- **Contact Support** is in the modal too, for anything the other buttons cannot fix.

## Manage Seats

The **Manage Seats** modal (every plan except Developer) sets the new seat count with a plus/minus counter, and a live **Price Change** preview shows exactly what the change costs before you confirm: price per seat, current monthly, new monthly, and the prorated charge today. You cannot reduce seats below your number of active members, so no change can orphan a teammate. No surprise charges either way: what you see in the preview is what the confirmation applies.

## Downgrading without surprises

Upgrades are simple: pick the higher plan and the new limits apply. Downgrades have two rules worth knowing before you start, both enforced by the flow itself:

1. **Check the repository count** Each plan caps monitored repositories (Developer 1, Launch 10, Scale 40). If you are above the target plan's cap, the downgrade asks you to choose which repositories stay monitored, so it is worth deciding which ones matter before you open the modal. See [Managing repositories](/documentation/managing-repositories).
2. **For Developer: get to one member** Downgrading to Developer requires the workspace to have only one member, because the plan has no team collaboration. Remove members from the [Team page](/documentation/team-and-roles) first; each removal frees the seat immediately.
3. **Change the plan and verify** Use **Change Plan**, then confirm the after-state in the same modal: repositories against the new limit, seats in use, and the upcoming charge under **Next billing**.

## Subscription statuses and their effects

| Status | What it means for you |
| --- | --- |
| Active | Full access. |
| Trialing | Full access until the trial end date. |
| Past due | A payment failed. Dashboard and API access are blocked and runner launches stop until the payment method is fixed in the Stripe portal. |
| Paused | The subscription is paused. Dashboard and API access are blocked and runner launches stop until it is resumed. |
| Canceled | The subscription ended. Access is blocked, but billing remains reachable so you can re-subscribe; your data is retained. |

The blocked states have different exits. **Past due** resolves through Stripe: open **Manage Billing** and fix the payment method; dashboard, API, and runner launches stay blocked until it is fixed. **Paused** clears when the subscription is resumed. **Canceled** keeps billing reachable on purpose, so you can re-subscribe whenever you choose; your data is retained while you decide.

> **Deleting the workspace**
> Deleting a workspace (Settings, Account; owner only) cancels billing and permanently removes its repositories, workflow data, and managed runner resources. Your GitHub repositories themselves are never affected.

## Common questions

### Where do I see exactly what my next charge will be?

The billing modal shows it under **Next billing**: the upcoming charge and its date, covering the plan plus any extra seats. Once an invoice is issued, the itemized version with a PDF lives in the Stripe customer portal, under **Manage Billing**.

### I changed plans mid-cycle. What will I actually pay?

Check **Next billing** in the modal right after the change: it always shows your true upcoming charge and date. The Stripe portal has the itemized invoice once it is issued.

### Do runner minutes arrive on a separate bill?

No. Usage beyond your free minutes lands as metered line items on the same monthly Stripe invoice as your plan. See [Runner usage and free minutes](/documentation/runner-usage-and-free-minutes).

### What happens to my data if I cancel?

Your data is retained, and billing remains reachable so you can re-subscribe later. The destructive path is different and deliberate: deleting the workspace (Settings, Account; owner only) permanently removes its repositories, workflow data, and managed runner resources. Your GitHub repositories themselves are never affected.

### Who can manage billing?

Owners and admins get the full Billing & Subscription modal; members see it as View Only and are pointed to the workspace owner or admin for changes.

---

Latchkey runs CI/CD that repairs its own failures. Agent entry points: https://latchkey.dev/agent.txt, https://latchkey.dev/openapi.json, https://latchkey.dev/llms.txt
