Security
Built like it holds the money. Because it does.
Your sales, costs, vendors and your team's hours are some of the most sensitive numbers in your business. Here is exactly how we protect them — no hand-waving.
Tenant isolation Encrypted credentials Audit trail Role-based access Managed backups
Tenant isolation
- Every operational record belongs to exactly one account and one location. The database layer adds that scope to every query, stamps it on every record created, and refuses any query that arrives without one — so a missing filter is an error, never a leak.
- Links between records are checked against the same scope, so a record can't be pointed at another account's data.
- An automated test suite tries to read and write across accounts and locations, and proves that it can’t.
Authentication & sessions
- Passwords are hashed with scrypt and a unique salt; we never store or see them in plain text.
- Sessions are signed, HTTP-only cookies, marked Secure and SameSite, that expire after 12 hours.
- Every request re-checks that the person is still active, still belongs to the account and still has access to the location. Deactivate someone and their access ends on their next click.
- Sign-in failures return the same message whether the email exists or not, so the login page can't be used to find out who works where.
- Password-reset links are single-use, expire after one hour, and are stored only as a SHA-256 hash.
Access control
- Role-based permissions with unlimited custom roles, each scoped to the locations a person works.
- Two gates on every action: the person's role must allow it, and the account must have that module switched on.
- Two-person approval on invoices — whoever codes an invoice can never be the one who approves it. Voids and comps on the POS require a manager PIN.
Encryption
- All traffic is served over HTTPS (TLS).
- Point-of-sale credentials and webhook secrets are encrypted at rest with AES-256-GCM. The key lives in the environment, never in the database, so a database copy alone can't unlock them.
- API keys are stored only as a hash; the full key is shown once, when it's created.
- Our managed database provider encrypts data at rest.
Audit trail
- Anything that moves money or changes a price — invoice approvals and re-opens, voids, comps, price changes, plan changes, sign-ins — is written to an activity log with who, what and when.
- The price ledger is append-only: approved prices are never edited or deleted, and deleting an invoice doesn't erase its history.
Backups & reliability
- Data is stored in a managed PostgreSQL service with continuous backups and point-in-time recovery.
- The application runs on managed, autoscaling infrastructure. Scheduled jobs are authenticated with a secret and can't be triggered from outside.
- Our uptime commitment and support response times are set out in the Service Level Agreement.
AI invoice reading
- When you use AI invoice capture, the invoice image or PDF is sent to our AI provider (Anthropic) to extract the vendor, dates and line items, under commercial API terms that do not allow your content to be used to train their models.
- AI only drafts. Nothing reaches your price ledger until a person on your team reviews and approves it.
API & webhooks
- API keys can be limited to a single location and to read-only access, and revoked instantly.
- Webhooks are signed with HMAC-SHA256 and a timestamp, using a secret unique to each endpoint, so you can verify every delivery came from us and reject replays.
Your data, your call
- You own your data. Invoices, items, price history, recipes, counts and reports export to CSV at any time, and the API covers the rest.
- An expired trial or a lapsed subscription locks the account — it never deletes it. After cancellation you have 30 days to export.
Found a vulnerability?
Email support@techfortabs.com with “Security” in the subject. We'll acknowledge within two business days and keep you posted.
Close the books before
you close the doors.
Start a 14-day free trial of any plan. No credit card, no setup fee, and your data is yours from day one.