Skip to content
Satış ile Görüş İletişim Giriş Yap
Security & Your Data

Who can do what — and what happened when they did

RestioX ships the controls a restaurant group actually needs: staff roles built per action rather than per job title, a manager PIN standing in front of the money, records that stay branch-scoped whether or not a query remembered to filter, and an audit log that names the person, the action and the minute.

RestioX Admin — Role: Head Waiter
Permissions — Head Waiter
Create and edit ordersAllowed
Discount above 10%Manager PIN
Void a fired itemManager PIN
Refund a card paymentDenied
View other branchesDenied
Devices signed in
Till 1 — RiversideRegistered
Handheld 06 — waiterRegistered
Revoke device
Save role
Deny by DefaultWhen scope is unclear
29 TestsOn isolation alone

29

Automated tests whose only job is to reach another restaurant’s data and fail

0

Card numbers held in RestioX — your gateway or terminal keeps them

2

Scopes applied to every record by default: restaurant first, then branch

5

Money actions that can sit behind a manager PIN before the till commits them

Access control

A role for the job, not a role for the job title

Most restaurant software hands you three fixed roles and hopes your floor matches. RestioX lets you build the role you actually staff: a shift lead who can comp a dessert but not reverse a drawer, a Friday-only waiter who can push orders to the kitchen and nothing else, a bookkeeper who reads reports and never sees a table. Permissions are set per module and per action, so the line between reading something and changing it is yours to draw.

  • Custom staff roles, built per venue rather than picked from a fixed list
  • Per-module and per-action permissions — viewing an order and voiding a line are separate rights
  • A manager PIN in front of voids, refunds, discounts, price changes and drawer reversals
  • Per-device registration for the staff app, so an unregistered phone is not a signed-in phone
  • Remote revoke — a lost device loses its session from the admin, not from the device
  • OTP login with throttling, so repeated attempts stop being useful long before they work

Permissions are checked on the server on every request. Hiding a button is never the only thing standing between a waiter and a refund.

POS — Approval required
Void — Table 7, Ribeye ×1
Requested byAisha — Waiter
ReasonSent to wrong table
ApprovalManager PIN
Approved byMarcus — Shift Lead
Value removed−$32.00
Written to the audit log
Entryorder.void
Recorded at19:42, Fri
PIN RequiredBefore it commits
Written DownPerson, action, minute
The controls

Six things you can switch on before your first dinner service

None of these are add-ons or a higher tier. They are configuration screens in the admin, and they are worth an hour of someone’s afternoon on day one.

Custom roles and permissions

Build roles per venue and tick permissions module by module, action by action. Change the role and every account holding it changes with it — no editing twenty staff records by hand.

Manager PIN on the money

Voids, refunds, discounts, price changes and cash drawer reversals can each require a manager PIN at the terminal before the till will commit them.

Registered devices

The staff app registers the device it runs on. When a phone leaves in someone’s pocket, revoke that device from the admin and its session goes with it — everyone else keeps working.

OTP login with throttling

One-time codes for sign-in, rate-limited so a stolen phone number does not turn into an unlimited guessing game against your account.

Restaurant and branch scoping

Every record carries the restaurant and branch it belongs to, and that scope is applied globally rather than remembered query by query by whoever wrote it.

Audit log and print log

Who cancelled, who refunded, who discounted, who reprinted a bill — recorded with a timestamp, and kept for a retention window you set yourself.

Tenant isolation

The branch filter is not optional, because nobody types it

The usual way a group leaks data between its own branches is mundane: somebody writes a report query and forgets the branch condition. RestioX applies the restaurant and branch scope globally, at the model layer, so the query that forgot is filtered anyway. And when the scope cannot be resolved at all — a background job with no session, a request that arrives without context — the answer is nothing, not everything.

  • Every record carries the restaurant and the branch it was created under
  • Scoping is enforced globally, not repeated in each query by each developer
  • Deny by default — unresolved scope returns an empty result, never the whole table
  • A dedicated isolation test suite of 29 tests that exist purely to try to cross the line
what the database actually receives
# a report query written without a branch filter
SELECT * FROM orders WHERE status = 'completed'

# what runs, once the global scope is applied
SELECT * FROM orders WHERE status = 'completed'
  AND restaurant_id = 12
  AND branch_id = 4

# background job, no session, scope unresolved
SELECT * FROM orders WHERE 0 = 1   -- deny by default
Why the number is on this page

Those 29 tests run against the scoping rules themselves. They are the difference between believing branch separation still holds and checking that it does after every change.

Auditability

The morning-after question, answered from one screen

Every service produces a handful of exceptions: a comped starter, a main voided after it was fired, a card refunded at the door, a price typed over for a regular. Each one is written to the action audit log with the person, the action and the timestamp, so the conversation the next morning starts from a record instead of four people’s memories.

Printing is logged too — every bill and kitchen ticket that left a printer and who asked for it, which is usually how a duplicate KOT gets explained. Retention is configurable, so you keep the history your own bookkeeping and local rules require, and no longer.

  • Cancellations
  • Refunds
  • Voided items
  • Discounts
  • Price changes
  • Reprints
Audit log — Riverside, Friday service
19:00 — 23:00
20:14 · Discount 15% · Table 9Marcus
20:41 · Item voided · RibeyeMarcus
21:02 · Price override · Set menuOwner
21:38 · Card refund · $46.00Marcus
22:10 · Order cancelled · #1284Aisha
Print log
Bills printed112
Kitchen ticket reprints6
Retention
Keep entries for24 months
NamedNever just the shift
Data protection

The unglamorous measures, actually switched on

  • A vault for other people’s keys

    Marketplace and payment gateway credentials are stored encrypted rather than sitting in a settings table in clear text. The manager who connects an integration does not have to be able to read the secret in order to use it, and a database export does not hand over your gateway.

  • Signed inbound webhooks

    Delivery marketplace and payment callbacks are checked against their signature before anything is written. A payload that arrives unsigned, or signed with the wrong key, is refused.

  • Payment hooks fail closed

    If a payment callback cannot be verified, RestioX refuses it rather than marking the order paid on a maybe. An unverifiable payment is a payment that did not happen.

  • Hardened session cookies

    Sessions are HttpOnly, SameSite and Secure — not readable from page scripts, and not carried along by a request that came from somewhere else.

  • CSRF protection

    State-changing requests carry a token, so a page on another site cannot quietly make one of your signed-in managers act on its behalf.

What happens to your data

From the first tap at the till to the backup — and out again

  1. At the till

    It is written with its owner

    The record is created carrying the restaurant and branch it belongs to. That stamp is what every later read gets filtered against, for the whole life of the row.

  2. Immediately

    Sensitive changes are logged

    Cancellations, refunds, voids, discounts and price changes are appended to the audit log with the person who made them and the minute they did it.

  3. On your schedule

    The database is backed up

    Scheduled backups run on the interval you set, to the storage location you configure. Backup and storage are both admin settings, not a support request.

  4. When you need it

    A backup is restored

    Restore runs from the same module that made the backup, so recovery is a screen you have already seen rather than a ticket and a hopeful wait.

  5. Whenever you want

    You take it with you

    Reports export to Excel or PDF, and the same REST API the till and kitchen screen use will read your records programmatically. Nothing here depends on your data being hard to remove.

  6. Eventually

    Old entries age out

    Audit-log retention is a setting rather than a default you inherit, so the history you keep is the history you decided to keep.

Backups — Riverside group
Schedule
FrequencyDaily, 04:00
DestinationConfigured storage
Last runCompleted
Archive size412 MB
Restore
Restore from backupSame screen
Health check
DatabaseOK
Queue workerRunning
Storage writableOK
Run backup now
Built-in health check

A health check reports on the database, the queue and whether storage is writable — so a backup that quietly stopped running is something you can see, rather than something you find out about later.

Want it endpoint by endpoint?

The developer page documents how a token inherits the restaurant, branch and permissions of the staff account behind it, and how inbound webhook signatures are verified.

Read the developer page
Payments and card data

What we hold, and what your payment provider holds

RestioX does not process card payments itself. The gateway or card terminal you configure does that, and the card data stays with them. What RestioX keeps is the commercial record: what was paid, in which currency, against which order, through which provider — the things a sales report needs, and nothing you would rather not be storing.

Data Held in RestioX Held by your gateway or terminal
Full card number No Yes
Card security code No Yes
Authorising and settling the card No Yes
Amount, currency and payment status on the order Yes Yes
Which gateway or terminal took the payment Yes Yes
A refund raised at the POS and executed by the provider Yes Yes
On certifications, plainly

RestioX does not hold a SOC 2 report, an ISO 27001 certificate or a PCI DSS attestation, and we are not going to imply otherwise. What the platform gives you are the controls those programmes ask about — scoped access, role-based permissions, an audit trail with retention, encrypted storage of third-party credentials, signed webhooks and scheduled backups — so that meeting your own obligations is a matter of configuring the software rather than working around it. Where card data is in scope, it is handled by the payment provider you choose.

Who this matters to

Three situations where these controls earn their keep

Multi-branch groups

A branch manager sees their own floor, an area manager sees the branches they run, and the group sees all of it — from one installation and one set of roles, instead of three databases and a spreadsheet that reconciles them.

Franchise and partner estates

A franchisee runs their venue without ever reaching into anyone else’s numbers, while the brand keeps a reporting view across the estate. The separation is enforced by the platform, not by an agreement everyone promises to honour.

Venues with heavy staff turnover

Seasonal and part-time staff get a narrow role and a registered device on their first shift, and lose both on their last — without anyone sharing a manager login to get through a busy Saturday.

Read next
Straight answers

The questions a cautious buyer actually asks

The people you give a role to, inside the branch you give it for. Every record carries its restaurant and branch, and that scope is applied globally rather than added query by query, so a staff account cannot reach another venue’s orders by changing a number in a URL. When the scope cannot be resolved at all, the result is empty rather than complete — the platform denies rather than guesses. A dedicated suite of 29 automated tests exists purely to keep that true as the software changes.

Set it up on day one

Configure the controls before the first shift

Create your account, build the roles your floor actually needs, put a manager PIN in front of the money and turn the backup schedule on. It is an afternoon of work now, and it is far easier than retrofitting all of it during a busy December.

Start Free Trial