> ## Documentation Index
> Fetch the complete documentation index at: https://reseller-docs.gfxtoolz.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Seats and plans

> Assigning plan access to customers, extending it, and what each seat costs you.

<Frame caption="Assign a seat — every plan shows retail struck through against your discounted rate.">
  ![The Assign a seat drawer listing plans with retail and discounted seat prices](https://app.gfxtoolz.ai/docs-assets/reseller/seats-assign-drawer.png?v=2)
</Frame>

A **seat** is 30 days of access to one plan, for one customer. Assigning a seat is the moment you spend money, and the only moment you spend money.

The Seats page states the model in one line: *"Fixed 30-day terms, debited from your wallet at your rate. Re-assign to extend — nothing auto-renews."*

## The seat list

<Frame caption="Seats — every seat, filterable by state, with bulk selection.">
  ![The Seats list showing customers, plans and expiry dates](https://app.gfxtoolz.ai/docs-assets/reseller/seats-list.png)
</Frame>

| Control                    | What it does                           |
| -------------------------- | -------------------------------------- |
| **All / Active / Expired** | Filter by seat state.                  |
| **Search customer…**       | Find a seat by customer email or name. |
| **Checkboxes**             | Select seats for a bulk action.        |

## Assigning a seat

Press **Assign seat**. The drawer is headed *"A fixed 30-day term, debited from your wallet at your rate."*

<Steps>
  <Step title="Choose a customer">
    Only customers on your own panel appear.
  </Step>

  <Step title="Choose a plan">
    Each plan shows what the customer gets — *"177 tools · 3 devices"* — with the **retail price struck through** and **your seat rate** beside it.
  </Step>

  <Step title="Press Assign seat">
    Your wallet is debited, and the customer's access starts immediately for 30 days.
  </Step>
</Steps>

### Reading the prices

Your reseller discount is applied to every plan. Every reseller starts on the **base 10% discount**:

| Plan            | Retail  | Your seat rate at 10% |
| --------------- | ------- | --------------------- |
| Basic           | \$8.00  | **\$7.20**            |
| Standard        | \$11.00 | **\$9.90**            |
| Premium         | \$17.00 | **\$15.30**           |
| Combo GPLSelect | \$21.99 | **\$19.79**           |
| Combo GFXHive   | \$23.99 | **\$21.59**           |
| Combo Max       | \$24.99 | **\$22.49**           |
| Premium Team    | \$27.00 | **\$24.30**           |
| AI Studio       | \$27.99 | **\$25.19**           |

<Note>
  **10% is the base rate everyone gets on day one.** Your discount is set per account and improves as you grow — the more seats you run, the better a rate we can agree with you. Talk to us once you have volume behind you.

  The Overview dashboard shows your current rate as *"−N% on every seat"*, and this drawer always shows your real prices. Price from your own drawer, never from this table.
</Note>

## Extending a customer

When a customer pays you for another month, assign them the **same plan** again. Instead of creating a second seat, this **adds 30 days to their existing period**.

You can extend before the current period ends — the new days are added on the end, so nothing is lost by renewing early.

<Warning>
  Seats never renew themselves. When the 30 days are up, access stops until you assign again. That protects you from paying for a customer who stopped paying you — but it also means **tracking renewals is your job**.
</Warning>

## Bulk actions

Select several seats with the checkboxes to extend them together. The confirmation asks you to **type the total amount** before it will proceed, because a bulk extend can move a lot of money in one click.

<Tip>
  The Overview dashboard has an **Expiring soon** panel listing seats ending in the next **5 days**, each with its own Extend button. That is the fastest way to run renewals.
</Tip>

## When an assignment is refused

Assignments are deliberately strict, because each one spends real money.

<AccordionGroup>
  <Accordion title="Insufficient wallet balance" icon="wallet">
    Top up and try again. Nothing was charged and nothing changed.
  </Accordion>

  <Accordion title="The customer's account is not active" icon="user-slash">
    Suspended or inactive accounts cannot be given seats. Fix the account status first.
  </Accordion>

  <Accordion title="They already have an active seat on another plan" icon="ticket">
    A customer holds one main plan at a time. Wait for it to expire, or remove it, before assigning a different one. Assigning the **same** plan extends instead.
  </Accordion>

  <Accordion title="They already have a subscription from elsewhere" icon="ban">
    If the account already holds a plan bought directly or through another panel, a seat cannot replace it. This stops you paying for access someone already has.
  </Accordion>

  <Accordion title="Your panel is in maintenance mode" icon="wrench">
    Changes are blocked while maintenance mode is on. Turn it off and retry.
  </Accordion>
</AccordionGroup>

## Removing a seat

You can end access before the 30 days are up — for a chargeback, abuse, or a customer who has moved on.

<Warning>
  Removing a seat does **not** refund your wallet. The 30 days were paid for at assignment. Remove a seat to cut off access, not to recover money.
</Warning>

## Practical advice

<CardGroup cols={2}>
  <Card title="Collect first, assign second" icon="arrow-right-arrow-left">
    Take payment, then assign. Assigning first means spending your own money on a promise.
  </Card>

  <Card title="Price for the full 30 days" icon="calculator">
    You pay for 30 days whether the customer uses 30 or three. Price monthly, not pro-rata.
  </Card>
</CardGroup>
