The two-environment model
Sandbox
BillingOS creates a managed test Stripe account for you instantly. No onboarding, no forms — start building immediately.
Production
You connect your own Stripe account via OAuth. You retain full control, and your customers stay yours.
Sandbox: managed accounts
When you create a sandbox organization, BillingOS provisions a Stripe test account for you in the background. The account is auto-verified using Stripe’s standard test values, so it’s active the moment your org exists. What you can do immediately:- Create products and prices
- Run test checkouts with Stripe test cards
- Build out feature gates, usage tracking, and customer portals
- Trigger webhooks and verify your integration end-to-end
- Filling out merchant onboarding forms
- Bank account verification
- Identity verification (KYC)
- Payout setup
The managed sandbox account is for testing only. It cannot accept real payments and does not move real money. Use Stripe test card
4242 4242 4242 4242 for end-to-end testing.Production: connect via OAuth
When you’re ready to go live, you connect your own Stripe account through OAuth. Why OAuth in production:- You own your Stripe account directly — no platform middleman
- You get the full Stripe Dashboard for managing payments, refunds, and disputes
- Your customer payment history, payout schedule, and bank details all stay with you
- If you ever stop using BillingOS, your Stripe account and data remain intact
Create your Stripe account
If you don’t already have one, sign up at stripe.com. Complete Stripe’s onboarding (business details, identity, bank account) — this only happens once.
Open the BillingOS dashboard in production mode
Switch to the Production environment from the environment switcher in the sidebar.
Click Continue to Stripe
You’ll be redirected to Stripe to authorize BillingOS. After approval, Stripe redirects you back and the connection is live.
What stays the same across environments
The integration code you write doesn’t change between sandbox and production. The same SDK calls, components, and webhook payloads work identically against both. Only your secret key changes:.env
sk_test_* hits the sandbox API, sk_live_* hits production. No conditional code in your app.
What changes when you go live
| Sandbox | Production | |
|---|---|---|
| Stripe account | Managed by BillingOS | Yours, connected via OAuth |
| Onboarding | Skipped | Complete on Stripe (one-time) |
| Stripe Dashboard | Limited test view | Full dashboard at dashboard.stripe.com |
| Refunds & disputes | Test only | Handled in your Stripe Dashboard |
| Payouts | Disabled | Real payouts to your bank account |
| Test cards | Required | Real cards |
Disconnecting
You can disconnect your Stripe account from BillingOS at any time:- Sandbox — Disconnect from Settings → Billing. The managed account is deleted.
- Production — Disconnect from Settings → Billing. OAuth authorization is revoked, but all your Stripe data stays in your Stripe account. Your products, customers, subscriptions, and payment history remain intact and accessible at dashboard.stripe.com.
What’s next?
Go-live checklist
Step-by-step checklist before flipping to live mode.
Show a pricing page
Once Stripe is connected, drop in a pricing table.