Skip to content

Team and roles

The owner, manager, and staff roles and the exact permission matrix — who can see payouts, issue refunds, and change settings.

Team and roles

Invite people in Settings → Team. There are three roles. Permissions are enforced twice: the UI hides what you can't do, and the server rejects it anyway.

  • Owner — everything. Owns settings, API keys, team, and payout bank links.
  • Manager — runs day-to-day money: invoices, customers, payments, Charge, reports, and refunds up to a configurable limit. No settings, API keys, team management, or payout visibility.
  • Staff — takes payments (Charge) and creates/views invoices and customers. No refunds, payouts, reports, or settings.

Permission matrix

From src/core/permissions.ts, the single source of truth:

CapabilityOwnerManagerStaff
Invoices: view✓✓✓
Invoices: create✓✓✓
Invoices: edit✓✓—
Invoices: send✓✓—
Invoices: void✓✓—
Customers: view✓✓✓
Customers: manage✓✓✓
Payments: view✓✓✓
Payments: charge✓✓✓
Payments: refund✓✓*—
Payouts: view✓——
Reports: view✓✓—
Settings: view / manage✓——
Team: manage✓——
API keys: manage✓——
Webhooks: manage✓——

\* Managers can refund, but only up to the per-refund limit you set in Settings → Team (in cents). Owners are unlimited; staff cannot refund at all.

Practical setups

  • You + one register: make the cashier staff. They can charge cards and look up invoices, but can't see your payouts or issue refunds.
  • A shop manager: manager role with a refund limit that matches your policy (say $100). They handle unhappy customers without calling you.
  • Your accountant: manager gives them reports and payment history without settings or payout access.

Invite with an email; the person sets their own password. Remove someone the day they leave — their sessions stop working immediately.

Last updated: October 14, 2026

Was this page helpful?