Selling with Stripe is turned on per organization. If you don’t see the Stripe card, contact your Juno account team to enable it. Each organization connects its own Stripe account — prices and payments live in your Stripe account, not a shared one.
Connect Stripe
Open Settings → Integrations → Stripe and work through the form.1
Choose Test or Live mode
Use Test while you’re setting things up, Live to take real payments. Your keys must match the mode — test keys with Test, live keys with Live.
2
Copy the webhook endpoint URL
The card shows a webhook endpoint URL for your organization. Copy it — you’ll paste it into Stripe next.
3
Create the webhook in Stripe
In your Stripe dashboard, create a webhook endpoint pointing at that URL and subscribe to these events:
Then copy the webhook’s signing secret.
4
Enter your keys
Back in Juno, enter your Stripe account email, secret key, publishable key, and the webhook signing secret, then connect. Juno checks the key formats and verifies them with Stripe before saving. Your secret key and signing secret are stored securely and never shown back to you.
The connect form only prompts you to subscribe
checkout.session.completed. Also subscribe checkout.session.async_payment_succeeded and charge.refunded so delayed payments and refunds work correctly.After connecting
The card shows your account email, mode, publishable key, and the last four digits of your secret key. If your keys ever stop working, the card shows a warning with a Reconnect option. To disconnect, select Disconnect and confirm. Learners can’t buy content while you’re disconnected, but your Stripe account and its products aren’t deleted — reconnect any time to resume selling.Price a unit
Open a unit’s settings and find the Pricing section.- Turn on the sell toggle.
- Set a price and currency. Currencies that don’t use decimal places (such as JPY) take whole numbers only.
- Optionally set a discount price — it must be lower than the price, and shows as a struck-through original next to the discounted amount.
- Save.
What learners see
On priced units, catalog cards show a price and a lock. Once a learner owns the unit, the lock turns green and open. Free content and external providers are unaffected — no price, no lock.Buying
Selecting Buy opens Stripe Checkout in a new tab, where the learner pays (promo codes are accepted). Juno waits for payment and enrols them automatically once it’s complete — the learner lands on the unit, ready to start.If the learner’s browser blocks the new tab, Juno shows an Open checkout link they can select to continue.
The paywall
If a learner opens a link straight to a paid unit they haven’t bought, they see an Unlock this content paywall instead of the content, with the price and a buy option. The content stays locked everywhere it could be reached — opening the unit, its content and questions, external (xAPI) launches, and public links.Access and refunds
Buying requires signing in, so a purchase is always tied to the buyer. Some people can open a paid unit without buying it:- Content admins and the unit’s creator or co-editors.
- Learners who were assigned the unit by an admin.

