| Role | Create order draft | Confirm / dispatch order | Pack order | Record payment | Void invoice | Edit pricing |
|---|---|---|---|---|---|---|
| Owner | Allowed | Allowed | Allowed | Allowed | Allowed | Allowed |
| Delivery | Not allowed | Not allowed | Not allowed | Not allowed | Not allowed | Not allowed |
Overview
The Delivery role is the most locked-down role in Neev. A rider gets exactly two things: the order they are carrying, and the invoice that goes with it. Nothing else — no customer ledgers, no stock, no prices, no money screens. Hand the role to a delivery agent and they see what to drop and where, with zero risk of changing an order, collecting cash they shouldn't, or seeing the rest of your business.
Where to find it
A Delivery user works mostly on the phone. Their home is the mobile delivery surface at /m/delivery/home — the field screen built for the rider's run.
On the web app, a Delivery user does not get the Orders or Invoices items in the sidebar. They land under Shipping (/shipping, and a single drop at /shipping/[id]). The order they are delivering and its invoice show up through those shipping screens — that is the read access at work, not a separate menu.
So: the data a rider can read is orders and invoices; the place they read it is the delivery home (mobile) and Shipping (web). If you are looking for top-level "Orders" or "Invoices" tabs as a Delivery user, you won't find them — that's by design.
Key concepts
- Role binding — the exact set of permission keys a role holds. Delivery's default binding is just two keys:
orders.readandinvoicing.read. Two keys, nothing more. - orders.read — view orders and their line items. View only — no create, no confirm, no pack, no dispatch.
- invoicing.read — view invoices and payments. Again view only — no PDF download, no recording payment.
The job that's not here matters too. orders.dispatch ("mark an order as dispatched") is the permission that records a parcel leaving the door. Despite "Delivery" being the name, this role does not hold it — dispatch sits with Manager and Owner.
Common workflows
Both workflows are view-only — that is the whole role.
/m/delivery/home), open the day's run. Each drop shows the order's line items — what to hand over, in what quantity. On web, the same order opens through Shipping (/shipping).That's it. If a step in your head is "mark it delivered" or "collect the payment," that's a Manager/Owner action, not a Delivery one — see Gotchas.
Role notes
Two roles touch this article, and they sit at opposite ends.
| Role | View order | View invoice | Mark dispatched | Record payment | Download invoice PDF |
|---|---|---|---|---|---|
| Delivery | Allowed | Allowed | Not allowed | Not allowed | Not allowed |
| Manager | Allowed | Allowed | Allowed | Allowed | Allowed |
| Owner | Allowed | Allowed | Allowed | Allowed | Allowed |
Delivery holds only orders.read and invoicing.read. It cannot create, pack, confirm, or transition an order; it cannot mark an order dispatched, record a payment (invoicing.mark-paid), or download an invoice PDF (invoicing.pdf). It has no access to customers, inventory, returns, pricing, intake, notifications, WhatsApp, reports, or any settings.
Owner sits at the other end — full control of the tenant, holding every standard permission, including the dispatch, payment, and void actions Delivery is denied. Use Owner (or Manager) to actually dispatch the run and record collections; use Delivery only to let the rider see the drop.
Tips & time-savers
Gotchas
orders.dispatch is held by Manager and Owner, not Delivery. It also cannot record a payment or download the invoice PDF. If a rider needs to "close out" a drop or take cash, that step belongs to a Manager or Owner. Don't hand a rider this role expecting them to update delivery status — it's view-only on both web and mobile.