> ## Documentation Index
> Fetch the complete documentation index at: https://help.clinikehr.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Staff seats and how they are charged

> Clinic & Hospital bills every seat monthly; Pharmacy and Diagnostics include theirs. Which model you are on changes what inviting someone costs.

export const StillStuck = ({topic}) => <div className="ck-callout ck-callout--note" role="note">
    <p className="ck-callout__body">
      <strong>Still stuck{topic ? ` with ${topic}` : ''}?</strong>{' '}
      Check <a href="/platform/help/troubleshooting">Troubleshooting</a> first —
      it covers the failures we see most often. If that does not resolve it,{' '}
      <a href="/platform/help/contact-support">contact support</a> and include
      your workspace name and the time the problem happened, so we can find the
      matching entry in your audit log.
    </p>
  </div>;

export const Path = ({steps = []}) => <span className="ck-path">
    {steps.map((s, i) => <span key={i} className="ck-path__step">
        {i > 0 ? <span className="ck-path__sep" aria-hidden="true">
            ›
          </span> : null}
        {s}
      </span>)}
  </span>;

export const Availability = ({editions = ['all'], plans, roles, note}) => {
  const list = editions.includes('all') ? ['clinic', 'pharmacy', 'lims'] : editions;
  return <div className="ck-avail" role="note" aria-label="Feature availability">
      <span className="ck-avail__label">Available in</span>

      {list.map(e => <span key={e} className={`ck-pill ck-pill--${e}`}>
          {EDITION_LABELS[e] || e}
        </span>)}

      {plans ? <span className="ck-avail__label">Plan</span> : null}
      {plans ? <span className="ck-pill ck-pill--plan">{plans}</span> : null}

      {roles ? <span className="ck-avail__label">Who</span> : null}
      {roles ? <span className="ck-pill ck-pill--role">{roles}</span> : null}

      {note ? <span className="ck-avail__note">{note}</span> : null}
    </div>;
};

<Availability editions={['all']} plans="All plans" roles="Owner, Manager" />

A seat is one staff account in one workspace. **Two editions handle seats in completely different ways**, and assuming the wrong one is the single most common billing surprise in the product.

<Path steps={['Settings', 'Staff & Teams']} />

## The two models

<Columns cols={2}>
  <Card title="Clinic & Hospital — seats are billed" icon="https://mintcdn.com/clinikehr/gjlpJWWKqjyYNRzM/images/icons/credit-card.svg?fit=max&auto=format&n=gjlpJWWKqjyYNRzM&q=85&s=0cb94e491d19b5f3dfd58a1eb2cfc987" width="24" height="24" data-path="images/icons/credit-card.svg">
    Your plan sets a **maximum**, not an included allowance. Every billable seat is charged **monthly from the very first one**. Three roles are free and count toward nothing.
  </Card>

  <Card title="Pharmacy and Diagnostics — seats are included" icon="https://mintcdn.com/clinikehr/gjlpJWWKqjyYNRzM/images/icons/check.svg?fit=max&auto=format&n=gjlpJWWKqjyYNRzM&q=85&s=eca3e7078a31ec3ce57928fc510812f7" width="24" height="24" data-path="images/icons/check.svg">
    The seats your plan allows cost **nothing extra**, ever. When you reach the cap the next invitation is simply refused and you are offered the next plan up. Every account counts — there are no free roles.
  </Card>
</Columns>

## Clinic & Hospital

### The cap

| Plan       | Most billable seats |
| ---------- | ------------------- |
| Starter    | 2                   |
| Essential  | 5                   |
| Team       | No cap              |
| Enterprise | No cap              |

Uncapped does not mean free. Team and Enterprise still charge for every billable seat — they just do not stop you adding another.

### The three free roles

These neither cost anything nor count toward the cap:

* **Supervisor**
* **Biller** — free only when that person is not also clinical
* **Scheduler** — free only when that person is not also clinical

Someone who both bills and treats people is a clinician, and a clinician is a billable seat. In the invite wizard, a role that is free is badged **Free** on the **Review** step, so you can see the answer before you send.

### What a seat costs

Indicative, in US dollars, per clinician per month:

| Plan      | Roughly |
| --------- | ------- |
| Starter   | \$40    |
| Essential | \$40    |
| Team      | \$35    |

Monthly and yearly billing are both available. Treat these as indicative — the plan page carries the current pricing, and your own rate is shown on the **Staff Members** card as, for example, "3 of 5 seats used · \$40/mo per seat".

<Warning>
  **Inviting a clinician charges money immediately.** The **Review** step tells you so: "A prorated charge will be applied immediately for the remaining time in your current billing period." The seat is added to your recurring cost from then on. Removing the person later stops the charge; it does not refund the part-month.
</Warning>

### Seat checkout, and when it does not finish

On Clinic & Hospital, sending an invitation that needs a billable seat sends you to a checkout. If that checkout is abandoned or the card is refused, the invite does not vanish — it waits.

<Path steps={['Settings', 'Staff & Teams', 'Pending Seat Payments']} />

The card explains itself: "Staff invites awaiting seat payment via Stripe Checkout. Use Retry to generate a new payment link or Cancel to discard." Each row shows **Name**, **Email**, **Role**, **Created** and **Expires**.

<Steps>
  <Step title="Select Retry Payment to finish it">
    The button shows **Redirecting…** and takes you to a fresh payment link. Pay, and the invitation is sent.
  </Step>

  <Step title="Or cancel it">
    The cancel icon in the same row discards the pending invite. You get "Pending invite cancelled". Nothing was charged and no account was created.
  </Step>
</Steps>

A pending seat payment has an expiry. Left alone past it, the link stops working and you invite the person again from scratch.

## Pharmacy and Diagnostics

Nothing is ever billed per seat. Your plan includes a number of accounts, the **Staff Members** card counts them for you, and every account counts — a cashier, a phlebotomist and a manager all take one seat each.

When you are full, the card says so plainly: "You've used all 5 seats on your plan." alongside **Upgrade to Business to add more team members, or add a +5 staff pack.** and a **View plans** button. The invitation is refused rather than charged — there is no surprise on your card, but there is a wall.

## Freeing a seat

Remove the person from **Settings** → **Staff & Teams** → the row menu → **Remove Staff**. You get "Staff member removed successfully" and the seat is returned. On Clinic & Hospital the recurring charge stops with it.

Cancelling a **pending invitation** also frees whatever it was holding — that is the **Pending Invitations** card, separate from **Pending Seat Payments**.

## When the subscription lapses

A workspace whose subscription is not active or trialing is treated as being on Free, and that includes its seat allowance. Inviting someone while payment is overdue produces an upgrade prompt reading "Your subscription payment is past due. Please update your payment method to restore your plan's staff capacity." with a **Fix Payment** button. See [Plans and what they include](/platform/plans/overview).

## Related

<Columns cols={2}>
  <Card title="Invite someone to your team" icon="https://mintcdn.com/clinikehr/nLyvBRumcl1Yk8z3/images/icons/user-plus.svg?fit=max&auto=format&n=nLyvBRumcl1Yk8z3&q=85&s=a3fbf78fb687cbc78acbe559e500b46f" href="/platform/team/invite-staff" width="24" height="24" data-path="images/icons/user-plus.svg">
    The five-step invitation, from profile to sending.
  </Card>

  <Card title="Roles" icon="https://mintcdn.com/clinikehr/gjlpJWWKqjyYNRzM/images/icons/id-badge.svg?fit=max&auto=format&n=gjlpJWWKqjyYNRzM&q=85&s=2dc1805faf2b5a2b2b82afe565af5247" href="/platform/team/roles" width="24" height="24" data-path="images/icons/id-badge.svg">
    Which role to give someone — including the ones that cost nothing.
  </Card>

  <Card title="Change your plan" icon="https://mintcdn.com/clinikehr/gjlpJWWKqjyYNRzM/images/icons/arrow-up-right-dots.svg?fit=max&auto=format&n=gjlpJWWKqjyYNRzM&q=85&s=e1a3f2d2814fd41a2cf05e42daf51912" href="/platform/plans/change-plan" width="24" height="24" data-path="images/icons/arrow-up-right-dots.svg">
    Raise the cap, or move to an uncapped plan.
  </Card>

  <Card title="Your subscription invoices" icon="https://mintcdn.com/clinikehr/gjlpJWWKqjyYNRzM/images/icons/file-invoice-dollar.svg?fit=max&auto=format&n=gjlpJWWKqjyYNRzM&q=85&s=8b2ccb39b622c071a43c5be0993b1606" href="/platform/plans/invoices-and-receipts" width="24" height="24" data-path="images/icons/file-invoice-dollar.svg">
    Where the seat charges appear.
  </Card>
</Columns>

<StillStuck topic="a seat that was charged or refused unexpectedly" />
