Notebook Studio
Custom Server Environment

Payment Gateways

Live payment credentials on your own server

Use live credentials for every gateway you enable. The variable names match the local guide - only the values change.

Stripe

Set your live secret key in the server .env:

STRIPE_SECRET_KEY=sk_live_...

No product or price ID is needed - Notebook Studio creates the recurring checkout price dynamically from the plan amount. Set STRIPE_WEBHOOK_SECRET and point a Stripe webhook at <your-convex-site>/stripe-webhook so subscription events (created, renewed, cancelled) stay in sync.

PayPal

Create a live app and set the live PAYPAL_API_URL (https://api-m.paypal.com), client id, secret, and PAYPAL_WEBHOOK_ID (webhook at <your-convex-site>/paypal-webhook).

Razorpay and Flutterwave

Use live keys for both, exactly as documented in the production guide, plus RAZORPAY_WEBHOOK_SECRET and FLUTTERWAVE_SECRET_HASH for their webhooks.

Dodo Payments and Paddle

Both are merchant-of-record gateways whose recurring products and prices are created automatically through their API, so there are no catalog IDs to configure. Use live credentials on your server:

NEXT_PUBLIC_DODO_ENV=live_mode
DODO_PAYMENTS_API_KEY=your-live-api-key
DODO_PAYMENTS_WEBHOOK_KEY=your-webhook-signing-key

NEXT_PUBLIC_PADDLE_ENV=production
NEXT_PUBLIC_PADDLE_CLIENT_TOKEN=live_...
PADDLE_API_KEY=pdl_live_apikey_...
PADDLE_WEBHOOK_SECRET=your-webhook-secret

Point their webhooks at <your-convex-site>/dodo-webhook and <your-convex-site>/paddle-webhook. The same keys must also be set in the Convex dashboard environment (see Convex Database).

On this page