Restaurant Staff Roles & Permissions: What Admin, Cashier, Waiter and Kitchen Can Actually Do
Published
Every restaurant owner eventually runs into the same problem: a new waiter needs to log in and take orders, but does that also mean they can see yesterday's total sales, edit a dish's price, or add another staff member of their own? Handing everyone the same login is how a lot of small outlets end up running billing on one shared admin account — and how a former employee keeps working access long after they've left. Biller.app splits access into four fixed roles, checked on every single action, not just which screen someone can open.
Four roles, checked on every action
Every request Biller.app's server receives is checked against the signed-in team member's role before it runs -- not just whether a menu item is visible on their screen. That's a meaningfully different guarantee than hiding a button in the UI: a waiter's app literally cannot complete a bill's payment, because the server refuses the request, regardless of what the front end shows.
RoleCan doCannot do AdminEverything -- billing, menu & pricing, taxes, inventory, reports, outlet settings, and the only role that can add/remove team members or set roles and salary-- CashierCreate bills, take payment, settle dues, apply discounts, print receipts, mark a dish out of stockEdit the menu or prices, touch team or outlet settings WaiterCreate bills, add/edit order entries, move tables, apply discounts, mark a dish out of stockComplete or settle a bill's payment -- that stays a till-level action KitchenSee and update the kitchen order queueSee prices, totals, the menu editor, reports, or team settingsOne detail worth calling out because it surprises people: both cashier and waiter can mark a dish "out of stock." That's deliberate -- the person who hears "we're out of paneer" is whoever's on the floor or the counter, not the admin, and routing that through an owner is how a sold-out dish keeps getting ordered all evening. Everything else about the menu -- adding dishes, changing prices -- stays admin-only.
Adding someone: an invite link, or directly
The fastest way to add a cashier, waiter or kitchen staffer is a one-time invite link: pick their role first, enter the phone number or email they'll sign in with, and send it on WhatsApp. The role is locked in at that point -- the person opening the link sees which outlet and role they're about to join and can only accept it, never change it. The link only works for the phone/email you entered, expires in 7 days, works once, and you can revoke it any time from Pending Invites. If you already know someone's Google email or phone number, you can also add them directly from the Team screen with a role and a salary figure in one step, no link required.
One person, more than one outlet
If you run more than one outlet, the same person can be a team member of several -- an owner managing two locations, or a manager who covers a second outlet on weekends -- and their role doesn't have to match across them. Switching is a tap on the outlet switcher in the top bar; whatever they're allowed to do updates immediately for the outlet now in view.
What's not there yet
To be upfront about the edges: these four roles are fixed, not a permissions editor you can customize field by field, and there's no way to grant one waiter slightly more access than another waiter. If your team needs something more granular than Admin/Cashier/Waiter/Kitchen, that's not built today.
Bottom line
A shared login is the easiest way to start and the easiest way to regret it later -- nobody can tell who actually applied a discount, and an employee who leaves keeps working access until someone remembers to change a password. Four roles, checked on the server for every action, an invite link that locks the role in before anyone joins, and the same setup whether you run one counter or five: that's Biller.app's answer, live now at no extra cost.