Skip to main content
Stripe (payments.stripe) is a Streamly plugin in the payment category. Stripe is the primary card/checkout rail for viewer plan purchases and renewals. Webhooks keep Streamly subscriptions in sync after payment succeeds, fails, or cancels.

Learn the service

Watch this overview of the vendor platform (helpful before you paste keys into Streamly).

Working with Stripe Elements and Checkout Sessions — Stripe Developers.

At a glance

Capabilities

  • payments.checkout
  • payments.subscriptions
  • payments.webhooks
  • payments.connect

When to use it

  • Global card checkout for subscription OTT plans
  • Automatic renewals via Stripe Subscriptions
  • Optional Connect + application fee for platform takes

How it works

Checkout flow

  1. Operator pastes API keys + webhook signing secret.
  2. Viewer starts checkout from a plan.
  3. Stripe confirms payment and POSTs to Streamly.
  4. Streamly activates or renews the subscription.
Webhook endpoint: POST /api/webhooks/stripe

Activation keys

Configure in /admin/plugins → Stripe → Configure. Secret fields stay server-side — never commit them or expose as NEXT_PUBLIC_* unless the key is intentionally public (e.g. Stripe publishable key).

Optional env fallbacks

NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY, STRIPE_SECRET_KEY, STRIPE_WEBHOOK_SECRET, STRIPE_CONNECT_WEBHOOK_SECRET, STRIPE_VIEWER_APPLICATION_FEE_PERCENT — prefer the plugin UI for Envato / multi-tenant installs.

Setup guide

1

Get API keys

Open Stripe API keys. Start in test mode.
2

Install Stripe in Streamly

/admin/plugins → install Stripe → paste publishable + secret keys.
3

Create webhook endpoint

Developers → Webhooks → Add endpoint:https://YOUR_HOST/api/webhooks/stripeCopy the signing secret into webhookSecret. Include checkout / subscription / invoice events your deploy expects.
4

Create plans

Define sellable plans in /admin/plans.
5

End-to-end test

Buy with a test card. Confirm /admin/subscriptions updates after the webhook.
6

Go live

Swap to live keys, create a live webhook endpoint, re-test one real small charge if needed.

Admin & Settings paths

Official vendor documentation

What Streamly stores vs Stripe

Never log full PANs — Streamly uses Stripe-hosted Checkout / Elements patterns.

FAQ

Almost always a webhook problem: wrong URL, missing events, or bad webhookSecret. Check Stripe → Developers → Webhooks → recent deliveries.
No. Only publishableKey is public. secretKey and webhook secrets are server-only.
Billing can be blocked by product rules for kids profiles — check viewer profile type before debugging Stripe.