All trust topics

Trust & security

Field-level encryption + TLS in transit

Encryption is layered: managed Postgres handles disk encryption at rest, and we additionally wrap the highest-risk fields with Fernet so a database dump alone doesn't yield plaintext tokens.

  • Fernet field-level encryption on Plaid access tokens and payout routing numbers (the two highest-risk fields in the schema).
  • TLS 1.2+ on every request; HSTS + upgrade-insecure-requests enforced.
  • Encryption keys are server-side, rotated on a fixed cadence, never sent to clients.
  • Database encryption at rest is provided by the managed Postgres host (Railway).
  • JWT access tokens are short-lived (15 min) and held in memory; refresh tokens are httpOnly cookies with reuse-detection that revokes the entire family on replay.

More on how we protect your data, in plain terms:

Full security overview