Security
How we protect your company's data. We list what we do, not certifications we do not hold.
Last updated: [Date]
Your company's data is kept apart
Every company's records sit in the same database, but each query is tied to one company at the database itself (row-level security), not just in the app. A user of one hire company cannot read another company's PCNs, hirers or documents.
Signing in
- Passwords are stored as salted hashes (scrypt), never as the password itself.
- Two-factor sign-in with an authenticator app is available to every user.
- Sessions expire after 12 hours, and sign-in is locked for 15 minutes after repeated failed attempts.
- Company admins can deactivate a user, which ends their sessions.
Data in transit and at rest
- The site is served over HTTPS only, with strict transport security.
- Uploaded files and backups are kept in Cloudflare R2, which encrypts data at rest.
- Stored logins for other services (for example a Coastr login) are encrypted by the app.
- Error logs are scrubbed so they do not hold names, addresses or passwords.
Hosting and backups
- The app and database run on a Hetzner server with automatic security updates. Remote access to the server is limited to one approved address.
- The database is backed up every 4 hours to Cloudflare R2, and backups are kept for 30 days.
- We test restoring a backup. The app checks its own health every minute and alerts us when something fails.
How the service is run
- Our team approves each new issuer website before it runs on its own, and every send can be held for approval.
- Changes to important records are logged with who made them and when.
- We send an issuer only the details it needs.
Report a problem
If you think you have found a security problem, email [email protected]. We will reply as soon as we can. More about personal data is in the privacy notice.