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.