Connecting Stripe for payments
Where to plug in your Stripe keys, how the connection status shows up, and how the webhook is configured.
CPR.co uses Stripe for all payment processing — cards, receipts, refunds, invoices, and B2B billing all run through Stripe. Each tenant plugs in its own Stripe account so money lands directly in your bank.
Where Stripe lives in settings
Go to Settings → Billing (or https://cpr.co/admin/settings/billing). The Stripe connection status shows at the top. "Connected" (green badge) means you are good to go.
What the page shows
Fields on the Billing page
- Publishable key — masked as pk_test_…8yR8 (starts with pk_live_ in production)
- Secret key — masked as sk_test_…gCcv (never fully displayed)
- Webhook endpoint — the URL Stripe sends events to; each tenant has a copy button so you can paste it into your Stripe Dashboard
- Disconnect Stripe — fully unlinks your Stripe account (you will have to reconnect before taking another payment)
- Edit keys — opens a modal for rotating keys without disconnecting
Webhook signature secret
CPR.co verifies every webhook Stripe sends using a shared signing secret. That secret is configured at the platform level via the STRIPE_WEBHOOK_SECRET environment variable, not in the tenant UI. If you add a new webhook in Stripe, let support@cpr.co know so we can rotate the secret cleanly.
Test mode vs. live mode
Keys that start with pk_test_ / sk_test_ process Stripe test cards and never touch real money. Keys starting with pk_live_ / sk_live_ are production. Most new tenants start in test mode until Jeff flips them to live during onboarding.
Was this article helpful?
Still need help?
We're here for you — call or email us any time during business hours.
Mon–Fri 8am–5pm Central Time