How you sell a course
The four ways to buy (Aladia checkout, Request information, External link, Invitation only), the price shown, hidden or on request, selling from your CRM with enrollment via API, and the site checkout: buying without an account, promo codes, instalments, open enrollment after the start with recalculated instalments, what happens after payment.
07/10/2026
Each course chooses how it is bought: in the course builder, Pricing › How it is bought. The choice applies right away on the course page, published courses included (no republishing, no new review).
The four modes
| Mode | What visitors see on the course page | When to choose it |
|---|---|---|
| Aladia checkout | Buy now (or Enroll now for instalment courses; Enroll for free for free ones): payment on your Stripe, even without an account | you sell online, with Stripe connected |
| Request information | the Requests for information form, even with Stripe connected | high-ticket courses sold by your CRM with a call |
| External link | a button (your text, default Buy or Enroll) that opens your own checkout or form on another site in the same tab | you already sell with another checkout (your Stripe, an e-commerce, a management system) |
| Invitation only | no buy button: Enrollment by invitation and, if you add one, a contact (page or email) | private, corporate or limited-seat courses |
Workspace default (every course's initial choice) follows Settings › Requests and sales › How courses are bought: Aladia checkout, Request information or Invitation only. The external link is chosen course by course.
When the checkout becomes Request information
With Aladia checkout the page shows the request form as long as:
- Stripe is not connected and verified (Settings › Integrations › Stripe);
- the paid course has no product on sale yet (it is created when you publish the course with a price, or when you connect Stripe if the course was already published).
The builder says so in yellow: missing Stripe in the Stripe box under the Free / Paid tabs, with the buttons to connect it from there (Stripe › Two ways to connect); the missing product with a notice under the modes. As soon as Stripe and the product are there, Buy now comes back by itself.
External link: the parameters
The address must be a full https one (for example https://yoursite.com/enroll): http, relative or script addresses are refused. The link gets the parameters you choose:
| Parameter | Value |
|---|---|
course_id | the Aladia course id |
cycle_id | the chosen edition (live courses) |
course_title | the course title |
| UTM | the page's utm_source, utm_medium, utm_campaign, utm_term, utm_content, gclid, fbclid, when present |
email | the email of whoever is signed in on the site, only if you choose it (off by default: it is personal data, mention it in your privacy policy) |
Parameters already in your address stay. On these courses neither the guest checkout nor the Aladia account checkout open.
Invitation only
Enroll people from the course Members, from Enroll in Requests or with the enrollments API. The optional contact can be a page (https://…) or an email address (mailto:office@yoursite.com).
The price
In the same panel you choose how the price shows:
- Show price (default);
- Hide price: no figure at all (not even "Free" or the coupon discount);
- Price on request: the words Price on request instead of the figure.
It applies to the course page, the bottom bar on phones, course cards, the Marketplace showcase and the structured data for search engines (with the price hidden or on request Google gets no price). The checkout price does not change.
Selling from your CRM (high ticket)
A full example, with a €4,900 course sold by your sales team:
- In the builder: Request information and Price on request.
- A visitor fills in the form: the request lands in Requests and the
lead.createdwebhook (Settings › Webhooks) goes to your CRM (HubSpot, Close, Pipedrive, Make, Zapier…). - In the CRM the request enters the pipeline: call, quote, signature.
- Payment happens on your Stripe (payment link, invoice or bank transfer): Aladia collects nothing.
- Once paid, the CRM calls the enrollments API
POST /v2/integrations/enrollmentswith the academy API key, the email, the course and the edition (developer guide). - Aladia creates the account (or finds the existing one), enrolls the person and sends the You're enrolled email with Set your password or Sign in; the
enrollment.createdwebhook fires.
The enrollment is marked as external payment: no subscription, instalment or transaction on Aladia, and reports do not count it as Aladia revenue. Among the course members the person has the External payment label. Enroll in the Requests section does the same enrollment by hand.
Calling the API again with the same email, course and edition changes nothing (it answers 200 with status: existing): a CRM that retries creates no duplicates and sends no second email.
With sign-in from your product set to Product only the API creates no accounts: it enrolls people who already have one (they signed in from the product at least once); for the others, put the course in the courses claim of the SSO token, which enrolls at the first sign-in.
Aladia checkout: buying without an account
On your academy site (<slug>.aladia.io or your domain) visitors of a paid course page can buy it without creating an account first: the account is born from the payment.
What you need
- Stripe connected and verified in Settings › Integrations › Stripe, with your own Stripe account (full Stripe dashboard: the academy collects directly, pays Stripe fees and handles refunds and disputes).
- The course published with a price (from the course builder). The order does not matter: if you connect Stripe after publishing, paid courses already published become purchasable by themselves within a few minutes, with no need to republish them.
Without Stripe the page shows the Information requests form; free courses show Enroll for free.
What buyers see
The Buy now button opens your site's /checkout page:
- on the left the summary: course, edition (for live courses), the total read from Stripe with any discount, the Have a promo code? field;
- on the right full name, email, phone (optional, with the country flag and calling code, saved in international format), the custom fields placed in "Checkout" and the card (Stripe, in your site's colours).
The payment goes straight to your Stripe account: the receipt and the bank statement show your academy.
People already signed in to the site buy as always, with their saved cards.
Promo codes
Codes are those of the coupons you create in the course builder, in the price section (Add coupon, then Add code in the coupon: a code coupon without codes can't be redeemed). At checkout buyers type the code and press Apply: the total updates at once. When a code doesn't work they read why: expired, not available (used up, disabled or for another course or edition) or not valid. The ✕ removes it.
A link with ?promoCode=CODE opens checkout with the code already applied.
Selling in instalments
Instalment courses can be bought on the site without an account too. In the summary buyers pick Instalments or Pay once (the choice is there only if you also allowed a single payment in the builder):
- Instalments: today they pay the initial fee (the amount read from Stripe) and below they see the plan: how many instalments, how often, the date and amount of each, the last one if it differs. The card used today stays saved on your Stripe for the next instalments;
- Pay once: they pay the full price today, no plan.
Promo codes work on instalments too: applying one recalculates the plan (the discount applies to the initial fee and the instalments, as for signed-in buyers; not to the last instalment when it has its own amount). A coupon can also have different discounts for paying once and for instalments: see below.
Different discounts for paying once and instalments
On instalment courses, in the coupon (builder › Price › Coupons) you choose:
- Applies to: One-off payment and instalments (as before), One-off payment only or Instalments only (the choice is there if the course also allows paying once);
- Instalment discount: Same as the one-off payment or A different value, as a percentage or a fixed amount per payment (e.g. −€10 on each discounted charge);
- Applies on (with its own instalment value): First payment and every instalment, First payment only or Every instalment only (the last instalment included, even with its own amount).
Example: instalment course with a €90 first payment and 3 instalments of €100, or €390 paid once; automatic coupon −15% paying once and −5% on every instalment. Buyers see €331.50 instead of €390 paying once, and with instalments €90 today then 3 instalments of €95 instead of €100.
The per-mode discount shows everywhere: marketplace and storefront cards (struck-through price and, below it, the struck-through instalment), the course page (price, mode choice, bottom bar on phones, purchase dialog), checkout (the Instalments and Pay once boxes, the summary and the instalment plan) and the coupon's promo codes. The automatic coupon (Apply in marketplace) is applied at checkout too, with no code. In your Stripe each mode has its own coupon (see Stripe › Coupons).
Coupons created before stay as they are: the same discount paying once and in instalments.
After the first payment:
- your Stripe charges the instalments by itself on the plan dates: in Stripe › Payments › Subscriptions you find the person's subscription, with the invoice of each instalment;
- in Aladia every paid instalment shows in the course transactions;
- if an instalment fails, course access is paused and the person is notified, as today; Stripe retries the charge following your Stripe retry settings (Settings › Billing › Subscriptions and emails: we suggest turning on automatic retries and the emails for expired or declined cards); once the instalment is paid, access comes back by itself.
To stop a plan: cancel it from Stripe (Subscriptions › Cancel) or, when the person cancels, from their payments area in Aladia.
A failed instalment can't be paid from the person's Aladia page yet: they pay it from the invoice link Stripe sends them (if you turned those emails on), or Stripe retries it.
Open enrollment (editions already started)
Every edition of a live course has the Open enrollment setting, in the course builder under each edition's dates (Cycles section). It is on for new editions (and for editions created by an academic year with the setting on); you can change it at any time, even after the edition is published, and it applies straight away.
| Open enrollment on | Open enrollment off | |
|---|---|---|
| Before the start | people can enroll | people can enroll |
| From the first day to the last | people can enroll | Enrollment closed |
| After the end | never | never |
| Seats | unlimited | the course seats (Seats) |
Turning it off restores the course seats you had set: nothing is lost.
Where to set the seats. In the builder, under Info › Cycles, above the edition dates (no longer in Members): Limited seats and the number apply to every edition with closed enrollment. Under the switch of an edition with open enrollment you read Unlimited seats for this edition; if every edition has open enrollment, the seats field reminds you that the number only applies to closed ones. For on-demand courses the seats are in Info.
What buyers see. Instead of the seats, an edition with open enrollment shows the Open enrollment badge, or In progress · enrollment open if it has already started:
- on the course card, in the Start dates menu (also in the preview on the right of the builder);
- on the course page, next to the price, and in the Edition selector;
- on a phone, in the Buy bar at the bottom, and in the purchase dialog.
Other editions stay as before: seats left, Sold out, Enrollment closed or Ended.
The same rule applies everywhere: course page, checkout with an account, checkout without an account, Enroll for free, the enrollment API and Enroll in Requests. Invitations and the teacher's purchase links work as before.
When an edition can't be bought, the course page shows Enrollment closed instead of Buy now, with the reason; the checkout shows the real reason:
- This edition is sold out: only when the seats have really run out;
- Enrollment for this edition is closed: it has started and doesn't have open enrollment;
- This edition has ended: it is over.
Instalments for late joiners
People who enroll in an edition that has already started pay the initial fee today (the one you set in the builder); the rest (total price minus initial fee) is split equally over the due dates left, from the enrollment day to the end of the edition, with the same frequency as the plan. It is recalculated at every purchase with the current date; rounding cents go on the last instalment. If no due date is left, the course can only be paid once. The checkout summary shows the recalculated plan, date by date; promo codes work as usual.
An example: a €3,000 course, initial fee €300, monthly instalment on the 15th from October to June (9 instalments of €300).
| Enrolls on | Today | Then |
|---|---|---|
| 1 September (before the start) | €300 | the usual plan: 9 instalments of €300 |
| 20 January | €300 | 5 instalments of €540 (15 February – 15 June) |
| 20 May | €300 | 1 instalment of €2,700 (15 June) |
| 16 June | — | pay once only |
With €1,000 left over 3 instalments: €333.33, €333.33 and €333.34 (the last one).
For lessons held before the enrollment, see the attendance registry.
With sign-in from your product (SSO)
If in Settings › Access and security (sign-in from your product) you chose Product only, students exist only in your product: the site has no guest purchase. Buy now goes to your product's sign-in and, back on the academy, people pay with the signed-in checkout. With Mixed buying without an account stays.
Purchase emails (you're enrolled, set your password, receipt) and request emails go out with your academy's name, brand and, once verified, its email domain; links lead to your site.
After payment
- Stripe confirms the payment to Aladia (within seconds).
- If the email has no account, the account is created with the checkout name and email; the person is already in on the browser that paid and sees You're enrolled in … with Start the course. They get an email with Set your password.
- If the email already has an account, the course goes to that account but the session doesn't open by itself (the buyer has to prove they own it): the page says Sign in to start and an email with the sign-in link arrives.
- Enrollment in the edition, the Stripe receipt and the transaction in Aladia arrive as for every purchase.
Automatic sign-in works once, within 30 minutes of payment, only on the browser that paid.
Hard cases
- Card declined: Stripe's message shows under the button; people can retry with another card, nothing is charged.
- 3-D Secure: the bank asks for confirmation in its window or app; after it the page resumes by itself.
- Page closed without paying: the session expires and the reserved seat is freed (at most after 30 minutes).
- Sold out: a full edition can't be picked on the course page; if it fills up while someone is at checkout, the page says so.
- Refunds: made from your Stripe (Payments › Refund). Course access isn't removed automatically: remove the person from the course members if needed.
Conversions for ads
After a successful purchase the site sends the purchase event (transaction_id, value, currency, coupon, the course in items), once per purchase, to the tools you turned on in Settings › Integrations › Marketing: Google Tag Manager and GA4 (purchase), Google Ads (conversion with the purchase label), Meta (Purchase) and TikTok (CompletePayment), with the visitor's cookie consent. How to connect them, the other events (course page, checkout, request, sign-up) and how to check them: Tracking and cookies.
Other payment methods
SEPA Direct Debit, Klarna, PayPal and other methods are turned on in your Stripe (Settings › Payment methods; from Aladia: Settings › Integrations › Stripe › Payment methods › Manage on Stripe): Stripe shows them at checkout when they're active and fit the purchase (for example Klarna isn't offered for instalment courses, since the card must stay saved for the instalments).
Apple Pay and Google Pay show at the top of checkout, above the card, on devices that have them: nothing to do, Aladia registers your site address on your Stripe (<slug>.aladia.io and your domain, once it's active). People paying with a wallet still fill in their details and the checkout fields; name and email, if not typed, come from the wallet.