Plans & billing
What Free, Pro, and Team unlock, how upgrades work through Stripe, and where to read your current plan and subscription status.
This guide: understand what each plan unlocks, how to upgrade, and where your subscription state lives. Billing is read in the dashboard under Settings → Billing; the paid subscription record itself lives in Stripe.
What each plan unlocks
| Free | Pro — $29/mo | Team — $199/mo | |
|---|---|---|---|
| Protected Postgres databases | 1 | Multiple | Up to 25 |
| Scheduled logical backups to your own S3 | Yes | Yes | Yes |
| Ed25519-signed manifests + offline-verifiable audit chain | Yes | Yes | Yes |
| Operator-run restore via the CLI | Yes | Yes | Yes |
| Backup-failure alerting | — | Yes | Yes |
| Evidence-bundle export for auditors | — | Yes | Yes |
| Team members with roles | — | — | Up to 10 |
| Dashboard API tokens for automation | — | — | Yes |
| Audit-chain retention | Standard | Standard | 13 months — covers a full SOC 2 Type II observation window |
| Support | Community (GitHub) | Priority, one-business-day response SLA |
Every plan runs the same backup engine: scheduled logical backups, signed manifests, and an offline-verifiable audit chain into storage you own. Higher plans add multi-database scale, alerting, evidence export, and — at Team — multi-seat membership and API tokens.
The Team plan is the multi-seat tier: it is what unlocks inviting teammates with roles and issuing dashboard API tokens.
How billing works
Walwarden never holds a Stripe API key. Stripe is the source of truth for the paid subscription, and a signed webhook syncs the resulting state back into walwarden. That means:
- Upgrades open a Stripe-hosted Payment Link in your browser, pre-filled with this team's reference and your admin email so the subscription attaches to your organization.
- Cancellation and invoice history are managed inside Stripe's hosted flow.
- Your dashboard shows a plan label and a coarse subscription status badge synced from Stripe — it does not store card details.
Step 1: Read your current plan
In the dashboard, go to Settings → Billing (/o/<your-org>/settings/billing). This page is Admin-only. It shows:
- Current plan — your plan label (Free, Pro, or Team).
- Subscription status — a coarse status badge synced from Stripe.
- A Team reference — a quiet support/Stripe-correlation handle, useful when contacting support.
If your full-plan access comes from a temporary grant rather than a paid subscription, the page shows a notice like Full plan via invite grant until … with the grant's expiry.
Step 2: Upgrade
On the Billing page, use the upgrade actions:
- Upgrade to Team — $199 / month (the conversion target, shown first)
- Upgrade to Pro — $29 / month
Each opens a Stripe Payment Link in the same tab. Complete checkout in Stripe; the signed webhook syncs your new plan and status back to the dashboard.
Verify it worked
After checkout, the Current plan label and Subscription status on the Billing page reflect the new plan once Stripe's webhook has synced. Team-only surfaces — the Members page and Settings → API tokens — become available to admins.
Related
- Invite teammates & roles — multi-seat membership (Team)
- Share a temporary full-plan grant — time-boxed full-plan access without a subscription
- Issue a dashboard API token — scoped tokens for automation (Team, Admin-only)