Transport, storage, and headers
| Layer | Control |
|---|---|
| Transport | TLS 1.2+ enforced. HSTS preloaded (max-age=63072000; includeSubDomains; preload). |
| Headers | Content-Security-Policy locked to first-party plus Plausible and Vercel scripts. X-Frame-Options DENY. X-Content-Type-Options nosniff. Referrer-Policy strict-origin-when-cross-origin. Permissions-Policy revoking camera, microphone, geolocation, payment, USB, sensors, clipboard. |
| Hosting | Vercel, global edge with DDoS mitigation. |
| Storage | Encrypted at rest. Pay stub processing storage is short-lived. |
| Authentication | OAuth and email magic-link for premium accounts. No plaintext passwords stored. |
| Secrets | Environment-scoped secret managers. Rotated on a published schedule. |
Data minimization
The pay stub explainer does not require an account. Saved reports require an email and magic-link. We collect only what is needed for the feature you are using.
Vulnerability disclosure
Email security@payslipiq.com with: a description of the issue, repro steps, the affected URL or endpoint, your name (optional, for credit). We acknowledge within 5 business days. We do not pursue legal action against good-faith research that follows our disclosure policy.
What we do not do
- Store credit card data on our servers (premium subscriptions use a PCI-compliant processor).
- Store Social Security Numbers (the explainer redacts SSNs detected on uploads, before storage).
- Run third-party advertising scripts. Zero third-party trackers beyond Plausible (privacy-friendly, cookieless).
Sub-processors
| Provider | Role | Region |
|---|---|---|
| Vercel | Hosting and edge | Global, US-primary |
| Plausible Analytics | Privacy-friendly analytics, no cookies, no PII | EU |
| Email magic-link provider | Transactional auth email | US |
| Payment processor | Premium tier billing | US |
| LLM provider | AI summarization (no training on user data) | US |
List updates on this page when sub-processors change.
Incident response
We maintain an internal incident response runbook. In the event of a confirmed security incident affecting user data, we notify affected users per applicable state law (typically within 72 hours of confirmation, faster where required).