IntegrationsStripe Connect — Sell Courses (Payments)

Stripe Connect — Sell Courses (Payments)

Plan availability (2026-07-23): e-commerce requires the Starter plan or higher. On the Free plan the Payments and Coupons tabs are locked with an upgrade prompt, and public checkout is disabled; order and revenue history from any earlier selling stays visible.

Who this guide is for: E-commerce Admins and Owners who want to sell courses to the public through EmbayLMS. Connecting Stripe is the first step of the buy-loop — it is required before you can price a course for sale or take a payment.

This is NOT your EmbayLMS subscription. Two different Stripe relationships exist:

  • Your EmbayLMS bill (what Embay charges you) is managed under Billing — you don’t need Stripe Connect for that.
  • Selling courses (what your learners pay you) uses Stripe Connect, described here. The money goes to your Stripe account; EmbayLMS never holds it.

What connecting does

EmbayLMS uses Stripe Connect with Standard accounts. That means:

  • You connect (or create) your own Stripe account. You keep full ownership: your Stripe Dashboard, your payouts, your disputes, your reporting, your tax settings.
  • When a learner buys a course, the charge is created on your connected account. EmbayLMS applies a small platform fee (see Platform fees) and the remainder settles to you on your normal Stripe payout schedule.
  • Card details are entered only on Stripe’s hosted pages — EmbayLMS never sees or stores card numbers.

Before you start

RequirementNotes
E-commerce Admin or Owner roleThe Payments tab (connect, refresh or disconnect Stripe, and sales tax) needs the ecommerce:manage permission. The E-commerce Admin and the Owner hold it by default. A plain Admin does not, and does not see the tab; your Owner can grant it through a custom role (Settings → User Management → Roles and Permissions).
A Stripe account (or willingness to create one)Standard onboarding lets you sign in to an existing Stripe account or create a new one on the spot.
Business detailsStripe will ask for your legal entity, bank account for payouts, and identity verification. Have these ready to reach “ready to accept payments” in one sitting.

Connect your Stripe account

  1. Go to E-commerce → Payments.
  2. Click Connect Stripe. You are redirected to Stripe’s hosted onboarding.
  3. Sign in to your existing Stripe account, or create a new one.
  4. Complete Stripe’s forms (business profile, bank account, identity verification).
  5. When you finish, Stripe returns you to the Payments tab. EmbayLMS pulls your latest status automatically and shows where you stand.

If you step away partway through, your progress is saved. Return to the Payments tab and click Continue on Stripe to pick up where you left off.

Reading your status

The Payments tab shows three capability flags, mirrored live from Stripe:

FlagMeaning
OnboardingSubmitted once you’ve completed Stripe’s onboarding forms.
PaymentsEnabled once Stripe has approved you to accept charges. This is the flag that lets you sell.
PayoutsEnabled once Stripe will pay out collected funds to your bank.

You are ready to accept payments when the Payments flag is Enabled. Stripe sometimes enables charges before payouts (or vice-versa) while it finishes reviewing your account — that’s normal and resolves on Stripe’s side.

Click Refresh status any time to re-pull the latest state from Stripe. EmbayLMS also updates automatically in the background whenever Stripe reports a change.


Platform fees

EmbayLMS adds an application fee to each sale. The fee is a percentage of the sale after discounts and before tax. It is deducted automatically at charge time and you receive the remainder. Your Stripe Dashboard shows both the gross charge and the application fee on every payment.

Who sets the rate. Embay sets it. Your plan comes with a standard rate, and a different rate can be agreed with Embay as part of your agreement. Nobody in your organization can change it in EmbayLMS.

Where to see your rate. People with access to Billing see the current rate on the Billing page, under Platform fee on course sales. The line appears only when your plan includes selling.

When a rate changes. A new rate applies to sales made after the change. Orders already paid keep the fee they were charged.


Disconnecting

On the Payments tab, click Disconnect to remove the link between EmbayLMS and your Stripe account.

  • Disconnecting stops new sales through EmbayLMS immediately.
  • It does not close, delete, or affect your Stripe account — that account is yours. Past payouts, disputes, and history remain in your Stripe Dashboard.
  • You can reconnect later; you’ll start a fresh connection from the Connect Stripe button.

You can also revoke EmbayLMS from your Stripe Dashboard (Settings → Connected apps). If you do, EmbayLMS is notified and drops the link on its side automatically.


Collecting sales tax (GST/HST/QST/PST)

The Sales tax card on the Payments tab (LMS-316) has three modes:

ModeHow tax is calculatedWhat the buyer sees
Stripe Tax (automatic)Stripe computes GST/HST on your connected account from the buyer’s billing address, using the registrations in your Stripe Dashboard (Stripe → Tax). Needs a connected account.Address collected on the Stripe page; tax added on top
Manual ratesYour own per-province table below (GST / HST / QST / PST, editable, effective-dated, pre-filled with the current Canadian rates). The buyer chooses their billing province on the course page or in the cart; each tax component is added as its own line.GST (5%), QST (9.975%) lines before checkout, on the Stripe page and on the receipt
NoneNo tax line. The default.Prices charged as listed

Registration numbers

Enter your GST/HST and (if applicable) QST registration numbers. They are printed on every learner receipt (My purchases), which is what the CRA and Revenu Québec require on a tax invoice. The admin order record shows the tax amount and its breakdown, not the numbers.

Manual rate table

  1. Choose Manual rates. The table lists every province and territory with today’s rates.
  2. Edit a rate directly, or click Schedule a change to add a new Effective from date — the previous rate keeps applying to sales before that date.
  3. Save. Every change is audit-logged (tax_config_updated, before/after).

Each component is rounded to the cent on its own and the receipt lists them separately; the platform fee is computed on your net (pre-tax) amount — tax is remitted, not revenue. Revenue → Tax collected by jurisdiction totals what you collected per province and tax.

Switching to manual mode does not touch orders already placed under Stripe Tax.


Refunds

Refund a sale (in full or in part) from E-commerce → Orders → open the order → Issue refund. The refund is processed on your connected account and returns the platform fee proportionally. A full refund also revokes the buyer’s access to the course. Refunds and chargebacks are reflected on the order status automatically. On Revenue, the Platform fee figure is what Embay kept: fees returned to you by refunds are subtracted.


Configuration reference

FieldWhereDescription
Account typeFixed (Standard)EmbayLMS uses Standard Connect accounts — you own the full Stripe relationship.
Connected accountPayments tabThe connected account id is shown masked (last 4). One account per tenant.
Onboarding / Payments / PayoutsPayments tabLive capability flags mirrored from Stripe.
Tax modePayments tabStripe Tax (automatic), Manual rates, or None (the default). Stripe Tax needs your tax registrations in Stripe; Manual rates use your per-province table.

Troubleshooting

SymptomCauseFix
”Payments are not available yet”The platform hasn’t enabled the payments engine (STRIPE_SECRET_KEY unset).Contact your EmbayLMS administrator — this is a platform-level setting, not something you configure.
Stuck on “Setup incomplete” after returning from StripeStripe still needs more information (identity, bank account) before enabling charges.Click Continue on Stripe and finish every requested step. Use Refresh status afterward.
Status looks staleThe background sync (account.updated) hasn’t been delivered yet, or the Connect webhook isn’t configured on the platform.Click Refresh status to pull live from Stripe.
Payments enabled but Payouts still pendingStripe is still verifying your bank/identity for payouts.No action needed in EmbayLMS — complete any remaining verification in your Stripe Dashboard.
Learner charged but you want to stop selling—Disconnecting stops future sales; it does not refund existing orders. Refund individual orders from E-commerce → Orders (or from your Stripe Dashboard).
”Tax jurisdiction to review” notice on RevenueOn a manual-rate order, the province the buyer picked at checkout differs from the billing address Stripe verified on the payment page (LMS-989). The tax that was charged came from the declared province; the notice shows how much the verified province would have collected instead (under- or over-collected).The payment already settled — EmbayLMS never re-charges. Open the order to see both provinces and the expected breakdown, then invoice, refund or adjust the difference by hand. To prevent it, keep Stripe Tax as your mode where you are registered; manual rates rely on the buyer’s declaration.

  • Course pricing — set a price on a course under the course editor’s Pricing tab.
  • Coupons — create discount codes under E-commerce → Coupons.
  • In-app Integrations menu