01 · Roles & access

Delivery role: run the drop, close it out, collect COD

The field role — works the shipping run, marks transit milestones, and collects COD. Three shipping keys, no order/invoice reads, no money screens.

5 min read · updated 28/05/2026
Who can do this
RoleCreate order draftConfirm / dispatch orderPack orderRecord paymentVoid invoiceEdit pricing
OwnerAllowedAllowedAllowedAllowedAllowedAllowed
DeliveryNot allowedNot allowedNot allowedNot allowedNot allowedNot allowed

Overview

The Delivery role is the field role in Neev. A rider works the shipping run: the stops, the delivery addresses, the COD due at each door, the transit milestones, and the cash collected at handover. Nothing else — no orders, no invoices, no customer ledgers, no stock, no money screens. Hand the role to a delivery agent and they can run the route and close out drops, with zero risk of dispatching, recording payments, 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]). A drop shows the shipment: address, status, COD amount — plus the order number and customer name for reference. There are no line items and no invoice on the screen; if the rider needs those, they come from the office, not from this role.

So: the data a rider can read is shipments; 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. Each rider sees only the stops assigned to them — dispatch assigns the run, and anything outside it is invisible to that login.

Key concepts

  • Role binding — the exact set of permission keys a role holds. Delivery's default binding is exactly three keys: shipping.read, shipping.update-status, and shipping.cod.collect. No order key, no invoice key — invoicing.list and orders.list deny a Delivery caller.
  • shipping.update-status — record a transit milestone (out for delivery, delivered). This is how a rider closes out a drop.
  • shipping.cod.collect — record cash collected at handover. Recording the collection is the rider's job; remitting it to finance (shipping.cod.remit) sits with Accountant and above.

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

1
Work the day's run
On the mobile delivery home (/m/delivery/home), open the stops in order. Each stop shows the address, the COD due, and the current status. On web, the same stops open through Shipping (/shipping).
2
Mark it delivered and collect COD
On the stop, record the transit milestone and, for a COD run, the cash collected at handover. That closes the stop; remitting the cash to finance happens upstream.

Role notes

Two roles touch this article, and they sit at opposite ends.

RoleView shipmentMark deliveredCollect CODRecord paymentDownload invoice PDF
DeliveryAllowedAllowedAllowedNot allowedNot allowed
ManagerAllowedAllowedAllowedAllowedAllowed
OwnerAllowedAllowedAllowedAllowedAllowed

Delivery holds the three-key field binding above. It can update transit status and record COD collected at handover. It cannot dispatch an order (orders.dispatch), read orders or invoices at all, record a payment against an invoice (invoicing.mark-paid), or download the 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 work the shipping stops.

Tips & time-savers

Tip
On the mobile delivery home, the stops sit in route order with COD and status on each — no hunting through separate menus. Give riders the Delivery role and the phone, not a web login, and there's nothing for them to get lost in.

Gotchas

Warning
Despite the name, the Delivery role cannot mark an order dispatched — orders.dispatch is held by Manager and Owner, not Delivery. Dispatch (the parcel leaving the door) is the office's call; marking the drop delivered and collecting COD at the door is the rider's. The rider also cannot record a payment against an invoice or download the invoice PDF.

Related