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