Security

Last updated: May 28, 2026

$pipeline reads your financial data so it can organize it. It never moves money. Below is how we protect what you connect to us.

Hosting & infrastructure

Encryption in transit

TLS 1.2+ everywhere. Vercel and Supabase both enforce HTTPS; non-HTTPS requests are rejected at the edge.

Encryption at rest

Supabase encrypts all database storage at rest at the volume level (AWS-managed keys).

Plaid access tokens are additionally encrypted at the application layer with AES-256-GCM. The encryption key lives in our hosting environment (not in the database), so a database read alone cannot decrypt them. Tokens never appear in logs or backups in plaintext form.

Access control

Authentication

Secrets management

All API keys (Plaid, Anthropic, Stripe, our application encryption key) are stored as platform environment variables (Vercel and Supabase). Nothing sensitive lives in source control. Pre-commit secret scanning is enabled on the repo.

AI data minimization

When we use AI to suggest a merchant's category, we send only the merchant name, description, transaction amount, date, and Plaid category. Never account numbers, balances, or credentials. Our AI provider (Anthropic) does not train on data sent through its API.

Money movement

None. $pipeline is advisory only. We read transactions and balances to organize them and project your cash flow. We do not, and the Plaid integration does not authorize us to, move money out of any account. The product literally cannot initiate a transfer.

Disconnect & deletion

You can disconnect any institution at any time from the in-app settings, which calls Plaid /item/remove, marks the connection revoked, and stops syncing that institution. Your existing transaction history stays in your account.

You can delete your account and all data from the in-app settings, which calls Plaid /item/remove for every connected item and purges every row associated with your account within 30 days. We instruct Plaid to do the same.

Incident response

We maintain a written incident-response and breach-notification plan with defined severity tiers, containment playbooks, and notification windows. Targets: ≤24 hours notification to Plaid when our handling of Plaid data is implicated; ≤72 hours to affected users for material risk to their data; the strictest applicable timeline for state regulators and CCPA / GDPR supervisory authorities. Report a suspected incident to support@moneypipeline.io.

Subprocessors

Plaid, Supabase, Vercel, Anthropic, Stripe, PostHog, listed in our Privacy Policy. Each is contractually bound to use your data only to provide their service to us.

Reporting a vulnerability

If you believe you've found a security issue, email support@moneypipeline.io. Please give us a reasonable window to respond before public disclosure.