Stripe

Cards via Stripe Checkout. Needs publishable key, secret key, and webhook signing secret. Sandbox uses test keys.

Settingstripe_checkout_enabled

Stripe

Card payments through Stripe hosted Checkout.

Where to find it

Admin → Settings → Payment → gateways → Stripe

Setup

1. Create keys in the Stripe Dashboard (test keys for sandbox: pk_test_ / sk_test_).

2. Enable Stripe checkout (and Enable for reseller if reseller top-up should use Stripe).

3. Paste publishable key, secret key, and webhook signing secret.

4. In Stripe → Developers → Webhooks, add the webhook URL shown in admin (/api/webhooks/stripe) and subscribe to the events the UI lists (typically checkout.session.completed).

5. Turn Sandbox on only with test keys; off for live keys.

Official: Stripe Checkout and Webhooks.

Field Key
Enable stripe_checkout_enabled (unset defaults on if keys exist)
Enable for reseller stripe_checkout_reseller_enabled
Publishable key stripe_publishable_key
Secret key stripe_secret_key
Webhook secret stripe_webhook_secret
Sandbox stripe_sandbox

Env vars (STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET, NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY) can override DB values when set.

Money path

Member completes Checkout → Stripe sends webhook → site marks Payment paid and grants Premium / tops up balance. Browser return alone is not enough if the webhook fails.

Common problems

Paid in Stripe, no premium on site

Webhook missing, wrong signing secret, or sandbox/live mismatch. Check Stripe Dashboard → Webhooks delivery.

Keys rejected

Test keys with sandbox off (or live keys with sandbox on).

Related