figma guide

Designing organization billing and seat management UI in Figma: plans, invoices, and usage

Design organization billing and seat management UI in Figma with plan comparison, seat usage meters, invoice history, payment methods, and Dev Mode specs for B2B admin.

Published
Updated
Jul 11, 2026
Read time
6 min
Level
Intermediate

Quick answer

Organization billing lives under Settings → Billing, Organization → Plan & seats, or Admin → Subscription—separate from personal payment methods and consumer checkout. Design a plan summary card (current plan, renewal date, seat count, MRR); a seat usage meter (used / purchased / pending invites); upgrade and add seats flows with proration preview; invoice history with PDF download; and billing contact / tax ID fields. Only Owner or Billing Admin roles should edit payment—gate with team permissions. When SCIM provisions users, seat counts update automatically—show synced vs manual breakdown. Start from the Figma guides hub and pair with Dev Mode handoff for plan tier enums and proration copy.


Who this is for

  • Product designers building B2B SaaS admin consoles, design tool org settings, and team billing surfaces.
  • Design system teams separating org billing from consumer ecommerce checkout without reusing cart components blindly.
  • Engineers implementing seat-based licensing, proration, Stripe Customer Portal patterns, and billing-role RBAC.

Personal billing vs organization billing

SurfaceWho paysTypical locationKey actions
Consumer checkoutIndividualCart → PaymentOne-time or personal subscription
Personal subscriptionIndividualAccount → BillingCancel, update card
Organization billingCompanyOrg → BillingSeats, plan, invoices, tax
Marketplace / app billingTeam per integrationIntegrations → BillingThird-party charges

Verdict: org billing uses invoices and seat math, not product thumbnails. Copy should say “12 of 15 seats used,” not “Your cart is empty.”


Plan summary card

FieldSpecNotes
Plan namePro, Business, EnterpriseLink to compare plans
Billing cycleMonthly / AnnualShow savings for annual
Renewal dateNext charge dateTimezone-aware
Seat countPurchased seatsEditable if self-serve
PricePer seat × count + tax estimateProration note on changes
StatusActive / Past due / CanceledPast due = urgent banner
OrgPlanSummaryCard
├── PlanNameBadge
├── BillingCycleMeta
├── RenewalDate
├── SeatCountRow (used / purchased)
├── PriceSummary
├── StatusChip (active | past_due | trial | canceled)
└── Actions: Change plan, Add seats, Cancel

Show trial countdown when applicable: “7 days left—add payment method to avoid interruption.”


Seat usage meter

Pair directly with team member list:

SegmentColorDefinition
Active membersPrimarySigned-in, seat-consuming
Pending invitesWarningReserved seat until expiry
AvailableNeutralPurchased but unassigned
Over limitErrorMore users than seats—block invites
SeatUsageMeter
├── ProgressBar (active + pending / purchased)
├── Legend: Active (10) · Pending (2) · Available (3)
├── OverLimitBanner (conditional)
└── CTA: Add seats | Manage members

At limit: disable invite button in member list; show inline upsell: “Add 3 seats for $X/mo” with proration preview.

When SCIM is enabled, label segment: “8 synced · 2 local · 1 pending invite.”


Add seats and plan change flows

FlowStepsCritical UI
Add seatsQuantity stepper → proration preview → confirmShow charge today vs next invoice
Upgrade planCompare table → confirm feature deltaWhat unlocks immediately
Downgrade planWarning modal → effective dateFeature loss, seat minimums
Annual ↔ monthlySavings calculatorWhen switch takes effect

Proration preview block (never hide the number):

┌─────────────────────────────────────────────┐
│  Add 5 seats                                │
│  Prorated charge today        $127.50       │
│  New monthly total            $450.00       │
│  Next invoice (Aug 1)         $450.00       │
│  [ Confirm and pay ]  [ Cancel ]            │
└─────────────────────────────────────────────┘

Downgrade should list what stops working and minimum seat for target plan.


Invoice history

ColumnSpec
Invoice #Link to PDF
DateIssued date
AmountTotal with currency
StatusPaid / Open / Void
ActionsDownload PDF, Pay now (if open)

Empty state: “No invoices yet—your first invoice will appear after [renewal date].”

For past due, pin failed invoice to top with red banner and Update payment method CTA.


Payment method and billing contacts

Reuse patterns from payment methods but org-scoped:

ElementSpec
Default card / ACHBrand, last4, expiry
Backup methodOptional second card
Billing emailinvoices@company.com
Company name + addressInvoice header
Tax ID / VATValidation by country

Permission gate: Viewers and Members see read-only summary; edit actions require Billing Admin or Owner per RBAC.


Cancel and retention

StepUI
1. Intent”Cancel subscription” link (not destructive red on summary card)
2. SurveyOptional reason dropdown
3. ConsequenceAccess ends date, data export window, seat release
4. ConfirmType organization name or “CANCEL”
5. DoneRetention offer? Export link to privacy/data

Do not trap users—show export data and billing contact for refunds clearly.


Common mistakes

MistakeWhy it hurtsFix
Seat count disconnected from member listAdmins confused why invite failsSingle source of truth + deep link
No pending invite in seat mathSurprise overage chargesInclude pending in meter
Proration hidden until chargeTrust lossPreview before confirm
Any member can change cardFraud, complianceBilling Admin role only
Consumer cart patterns in B2BWrong mental modelInvoice-first layout
Downgrade without effective dateSupport ticketsShow end-of-period date
SCIM users ignore seat capBilling disputesBlock provision at limit + IdP error docs
No past-due stateSilent service lossBanner + email + in-app alert

  1. Map billing roles (Owner, Billing Admin) in RBAC matrix.
  2. Design plan summary card with seat row and renewal meta.
  3. Build seat usage meter linked to member list and SCIM breakdown.
  4. Create add seats flow with proration preview.
  5. Add invoice history table with PDF download.
  6. Wire payment method org form with billing contact fields.
  7. Design cancel flow with export and effective date.
  8. Prototype past-due, at-limit invite block, and trial expiry states.

FAQ

Who can see billing vs who can edit?

All admins often can view usage; only Owner/Billing Admin can change payment, plan, or seats. Hide card numbers from non-billing roles.

How do pending invites affect seats?

Product decision—document clearly. Most products reserve a seat when invite is sent; others on accept only. Match meter to engineering rules.

Self-serve vs sales-assisted Enterprise?

Enterprise may show “Contact account manager” instead of plan change buttons. Still show read-only seat usage and invoice history.

Multiple workspaces under one org?

Org-level billing with workspace allocation sub-table: “Workspace A: 8 seats, Workspace B: 4 seats.”

Tax and VAT collection?

Collect at checkout for self-serve adds; show tax line on proration preview and invoices. Link to legal/tax docs—not a generic FAQ.


Next steps

Share on X

§ Keep reading

Related guides.