← All docs
BillingIncluded

Billing documentation.

One price per contributing developer per month, billed monthly through Stripe. Every hosted organization starts with a 14-day trial that needs no card. Your console shows the exact developer count Stripe bills for the current cycle, alongside the trial, subscription, and seat state. For the marketing overview see pricing.

The metric

What you are billed for.

You are billed for unique non-bot git authors whose work the platform touched, counted over a trailing 90 days and measured at each monthly billing cycle. At each cycle the platform takes an immutable snapshot of that count; the billed quantity for the cycle never changes after the snapshot is taken.

Read-only console users, bots, and service accounts are not git authors, so they are never counted and cost nothing. A cycle with zero contributing developers invoices €0 and leaves the subscription and all entitlements active — access does not stop just because a cycle was quiet.

When your developer count grows or shrinks past a volume band, the new band takes effect at the next monthly cycle, in both directions. Nothing blocks or warns you mid-cycle when the count grows: work keeps running, and the change is reflected at the next cycle.

Price

One price per developer, per month.

The platform is €35 per contributing developer per month, with volume bands that lower the per-developer rate as your team grows. There is no minimum developer count.

DevelopersMonthly rate per developer
1–99€35 / dev / month
100–249≈ €33.33 / dev / month
250–499≈ €28.33 / dev / month
500+€25 / dev / month

The amount for a cycle is the snapshot developer count multiplied by the rate for the band that count falls in. These are the deterministic figures the console computes; Stripe remains the invoicing authority for what you actually pay.

Trial

The 14-day trial.

  1. Start with no card

    A new organization gets a 14-day trial with no card required. The term is a fixed 14 days from activation.

  2. One trial per GitHub organization, ever

    A single stable GitHub organization receives one trial, once. Re-signing up does not grant a second trial, and subscribing later never rewrites your trial history.

  3. Watch the days remaining

    The billing panel reports trial.days_remaining — whole days left, rounded up — and trial.expires_at, the exact end of the term.

  4. What happens on day 14

    A trial has no grace period. When the term ends, entitlement is honored only strictly before the end, so access stops until you subscribe. Subscribing from an expired trial works and moves you straight to a paid subscription; it does not restart the trial.

Subscribe

Start a subscription from the console.

  1. Open Billing in the console

    Everything below happens in the console — there is no public subscribe URL to call yourself. Open the Billing panel for your organization.

  2. Start the subscription

    Choose to start a subscription. The console opens a Stripe Checkout session in subscription mode for the single platform price.

  3. The seat count must be fresh

    Starting a subscription needs a seat-count snapshot whose cutoff is within the last 48 hours. While one is being produced the console tells you the seat count is being computed — the platform reports the count daily while an organization is unsubscribed — so try again once it is ready.

  4. Complete Stripe Checkout

    Complete the Stripe Checkout session and return to the console. There is one open attempt per organization at a time, and duplicate completions converge to the same subscription.

Manage

Manage your subscription.

  1. Open the Stripe billing portal

    In the console, Billing → Manage billing calls POST /console/v1/billing/portal-session with an empty body ({}) and returns an ephemeral Stripe billing portal URL. From the portal you can update your card, view and download invoices, and cancel the subscription. The request needs your session cookie and the same-origin request header the console sends for you.

  2. If you see a 409

    A 409 means the organization has no live billing binding yet — you are still on a trial, so there is nothing to manage in Stripe. Subscribe first.

  3. Paid grace after a lapse

    A paid subscription has a 14-day grace window after a term ends. The panel reports in_grace: true while active stays true through that window. After grace, access is fail-closed until the subscription is reactivated.

Reference

The billing panel, field by field.

GET /console/v1/billing reads the billing state for the session organization and returns the fields below. The trial block is present only while you are on a trial, and the seats block only once a per-cycle snapshot has been reported.

FieldMeaning
planThe active contract plan id, or empty when there is no active contract.
activeWhether an entitlement is honored right now. This is fail-closed: it is only true while access is genuinely in effect.
in_graceWhether a paid contract is inside its 14-day post-term grace window. active stays true during grace.
subscription.stateOne of trial, paid, or none.
subscription.sourceWhere the entitlement came from — trial, manual, or stripe. Empty when there is none.
subscription.statusThe live Stripe binding lifecycle state, or "none" when there is no live binding.
subscription.collection_methodThe Stripe collection method for the live binding.
subscription.current_period_startStart of the live binding's current period.
subscription.next_invoice_atEnd of the live binding's current period. Null when it is unavailable.
trial.is_trialWhether the organization is currently on a trial.
trial.days_remainingWhole days left in the trial, rounded up. 0 once the trial has expired, and 0 when the organization is not on a trial.
trial.expires_atWhen the trial term ends.
seats.reportedWhether a per-cycle seat-count snapshot exists yet.
seats.contributing_developersThe billed developer count for the cycle — the immutable snapshot Stripe is billed against.
seats.cycle_idIdentifier of the monthly billing cycle the snapshot belongs to.
seats.unit_price_centsThe per-developer band price for the cycle, in euro cents.
seats.amount_centsThe deterministic control-plane figure for the cycle, in euro cents (count times unit price). Stripe remains the invoicing authority.

Status codes for GET /console/v1/billing:

CodeMeaning
200Billing state returned.
400Malformed request.
401No valid session.
429Rate limited — retry later.
500Internal error.
503Temporarily unavailable — retry later.

Status codes for POST /console/v1/billing/portal-session:

CodeMeaning
200An ephemeral portal URL is returned; open it to manage billing.
400Malformed request (the body must be the empty object).
401No valid session.
409The organization has no live billing binding yet — you are still on a trial, so there is nothing to manage in Stripe.
429Rate limited — retry later.
500Internal error.
502Stripe could not be reached — retry later.
503Temporarily unavailable — retry later.
Closing

Closing your account.

POST /console/v1/org/deletion requests deletion of your organization, and GET /console/v1/org/deletion reports the state of that request. Deletion is a request that we process — it is not automatic and not immediate.

Cancel any billable Stripe subscription first: a deletion request will not complete while a subscription is in a billable state (incomplete, trialing, active, past_due, unpaid, or paused). Use the billing portal to cancel, then request deletion.

Help

Get help with billing.

For a billing question, submit a support message from the console (POST /console/v1/support). You can also reach us through contact. A data processing agreement covers the hosted platform — see the DPA. To return to the rest of the platform documentation, see all docs.

Scope

What billing does not include.

There is no availability SLA and no high availability guarantee for the hosted platform. We do not offer BYOK or bring your own key billing.

We do not expose an invoice-PDF API — invoices come from Stripe and the billing portal. Billing is monthly only: there is no yearly or fixed-term prepayment, and no price other than the volume-band table above applies.

Get early access to the platform.

Every product is included in one platform subscription. Request early access and we'll onboard your team hands-on — free while we build toward launch.