Roles & Permissions
Twelve built-in staff roles plus custom roles, each backed by explicit permissions - every console action checks one.
The model
- The Owner is the account itself - full access, always
- Staff are separate logins you invite, each carrying a role (or a custom permission set)
- Every console action - ajax call, settings save, nav area - is mapped to a permission slug and checked server-side; hiding a button is never the only gate
- Senior roles can manage the staff below them; who can manage whom follows the rank ladder
The role ladder
| Role | Built for |
|---|---|
| Clerk | Back office: create payment links, view sales |
| Teller | POS terminal only (pos.u.cash) - no console access at all |
| Lead | Runs the terminal and issues refunds |
| Accountant | Edits financials and transactions |
| Auditor | Read-only financials and audit trail |
| Designer | Branding and design only |
| Supervisor | Customer care, refunds, terminal, staff support |
| Manager | Settings, payment methods, payouts, most areas |
| Director | Manager plus payouts and audit visibility |
| Officer | Configures payment methods and wallets (compliance officer) |
| Admin | Everything except managing other admins |
| Master admin | Manages all staff, including admins |
| Custom | Pick the exact permissions and name the role yourself |
Permissions that matter most
- Wallets and processors (
wallets.edit,payments.processors.edit) - who can change where money goes and which rails are live; keep this tight (officer, manager, admin) - Financials (
financials.view/edit) - balances, fees, credits - Transactions - view, edit, refund, delete are separate permissions
- Payouts (
payouts.create) - starting payout requests; completing them needs financials edit - POS and teller operate - terminal access;
teller.manageseparately gates teller configuration
Managing staff
Invite staff from the console, assign roles, and scope accounts to a single store where needed. Additional staff seats beyond your plan's included seats are one-time purchases from your credit balance. Every staff action lands in the audit log - who did what, when, from where.
POS staff can be created without an email - they sign into the terminal with a username and PIN (resettable from the Staff area), which keeps counter hires out of your email directory entirely. Senior roles can suspend, activate, archive, and take over accounts below them in the ladder.