Skip to content

Plans & Pricing

A product has one or more plans. Each plan has one or more prices. Plans control how a license behaves; prices control how the customer is billed.

Plans

FieldNotes
TitlePlan name shown to customers (e.g. Developer)
AliasURL slug, unique per product
DescriptionShort tagline shown under the plan title on the pricing card
Activation Typedomain, device, seat, or instance
Activation LimitMax activations per license. 0 = unlimited
FeaturesList of bullet points shown on the pricing card
RecommendedAdds a Recommended badge to this plan's card
Recommended LabelCustom badge text (default Recommended)
StatusPublished, Unpublished

Activation Type

The activation type controls what each activation represents and what the customer's app sends to the API.

TypeTracksExample identifier
domainWebsitesexample.com (protocol, www., and path are stripped server-side)
deviceComputers, phones, IoTMacBook-Pro-ABC123 (kept as-is)
seatIndividual usersuser@company.com (lowercased)
instanceServer / container instancesprod-api-01 (kept as-is)

LicenseDock normalises identifiers based on type, so a customer activating from https://www.Example.com/ and example.com/path end up sharing the same activation slot.

Prices

FieldNotes
Billing Cyclemonthly, quarterly, semi_annual, annual, or one_time
PriceRecurring price, or full price for one_time
Trial Days0 = no trial
Trial PriceCost during the trial. 0 = free trial. Anything > 0 = paid trial
StatusPublished, Unpublished

Billing Cycles

CycleBehaviour
one_timeOne payment, no expiry. License is lifetime
monthlyRenews every month
quarterlyRenews every 3 months
semi_annualRenews every 6 months
annualRenews every year

The billing cycle is the single source of truth for whether a price is recurring – one_time is the only non-recurring value.

You can offer the same plan with multiple cycles. For example a Developer plan with both monthly and annual prices – the customer picks at checkout.

Trials

A trial is opt-in. The customer reaches checkout with &trial=1 (from a buy link or Start trial CTA) and LicenseDock charges the trial price today. After trial_days, the regular price is billed on the chosen cycle.

  • Free trialtrial_price = 0. Card is still required (Stripe and PayPal store it for the renewal; Mollie requires a minimum amount and will charge the equivalent of $0.50 to set up the mandate).
  • Paid trialtrial_price > 0. Charged today, regular price on first renewal.
  • Trial cannot be combined with a coupon. Applying a coupon clears the trial flag.

Setting Up Prices

  1. Open a plan
  2. Click Add Price
  3. Set the amount, billing cycle, and (optionally) trial settings
  4. Save

Each price has a Copy buy link button in admin. Append &coupon=CODE to pre-apply a coupon code, or &trial=1 to launch the customer into a trial.

/checkout?plan_price_id=42
/checkout?plan_price_id=42&trial=1
/checkout?plan_price_id=42&coupon=LAUNCH20

Joomla Extensions by Contona