Discount codes

Discount codes for paid communities

Percentage or fixed-amount codes with use limits, spend bounds, member and plan restrictions, and a schedule. Members type the code at checkout.

A discount code lets a member pay less at checkout by typing a code such as LAUNCH20. In Arcalotl you control the value of the code, how long it applies, who can use it, which plans it works on, and the dates it is valid between.

Codes work on recurring plans and on one-time purchases. Donations do not accept discount codes.

Discounts do not change how Arcalotl charges you. The fee is 2% of each successful payment, so a discounted payment carries a smaller fee, and there is no monthly cost either way.

  • Percentage or fixed amount

    A code takes either a percentage from 1 to 100 or a fixed amount in one currency. A fixed-amount code only applies to plans priced in that same currency, so a code worth 5.00 EUR does not silently apply to a plan priced in dollars.

  • Duration on recurring plans

    On a subscription you choose how long the discount lasts: the first payment only, a set number of months, or forever. A first-payment code discounts the first invoice, a repeating code discounts the months you configured, and a forever code applies to every renewal. One-time purchases always apply the discount once.

  • Use limits that cannot be oversold

    A use limit caps total redemptions across all members, and leaving it unset means unlimited uses. A checkout that is in progress holds a slot until it completes or expires, so a code limited to 50 uses can never be redeemed 51 times through parallel checkouts.

  • Minimum and maximum spend

    Spend bounds decide which prices a code touches, in the plan's currency. A minimum of 10.00 makes the code work only on purchases of 10.00 or more. A maximum keeps a code on your lower-priced items. Both are optional.

  • Restricted to specific members

    A code can be limited to members you pick from your server's member list, which turns it into a private offer for those people. With no members selected, anyone who has the code can use it.

  • Restricted to specific plans

    A code can be limited to chosen plans. With nothing selected it works on every plan in your catalog, so a broad launch code and a single-plan upgrade code are the same feature with a different restriction.

  • Scheduled start and expiry

    A start date decides when a code becomes active and an expire date decides when it stops working. Unset means active immediately and never expiring. This is how a seasonal code goes live and ends without anyone being awake for it.

  • Clear at checkout

    The checkout page shows a discount code link whenever your community has at least one live code. A valid code updates the total on the spot and shows the reduction line. A rejected code explains why, for example that it has expired, has not started yet, or is below the minimum spend, without revealing anything about your other codes.

  • Edits apply to future checkouts

    Changing a code never affects a checkout that is already open, which keeps the discount it was opened with. Archiving a code stops new redemptions immediately and keeps its redemption history, and checkouts already in progress still complete. A code cannot be renamed after it is created.

  • Usage you can read

    The Discounts table shows each code's redemptions against its use limit, its restrictions, and its current state: active, scheduled, expired, used up, or disabled. One-time purchases record the discounted amount the buyer actually paid, so revenue analytics stay accurate.

  • Dashboard, API and MCP

    Codes are created and edited on the dashboard Discounts page. The public API exposes GET /v1/discounts with restrictions, schedule and redemption counts under the discounts:read scope, and POST /v1/checkout-links accepts a discount_code so a code can be attached to a link you generate. The MCP server exposes the same listing as the list_discounts tool, so an assistant can report on codes without being able to change them.

What you set on a code

SettingWhat it doesLeft unset
CodeUp to 64 letters, numbers, underscores or dashes. Case-insensitive and unique per communityRequired
ValueA percentage from 1 to 100, or a fixed amount in one currencyRequired
DurationFirst payment only, repeating for a number of months, or foreverRequired on recurring plans
Use limitTotal redemptions across all membersUnlimited uses
Min spendThe smallest plan price the code applies toNo lower bound
Max spendThe largest plan price the code applies toNo upper bound
MembersLimits the code to members picked from your member listEveryone can use it
PlansLimits the code to chosen plansWorks on every plan
Start dateWhen the code becomes activeActive immediately
Expire dateWhen the code stops workingNever expires

What discount codes do not do

Donations do not accept discount codes. A donation block or command takes the amount the member chooses, and a code entered there does nothing.

A fixed-amount code is tied to its currency. It applies only to plans priced in the same currency, so a community selling in several currencies needs one fixed-amount code per currency, or a percentage code instead.

A code cannot be renamed once it exists, because the code itself is what members typed and what your redemption history is recorded against. To change the text of an offer, create a new code and archive the old one.

The API and the MCP server are read-only for discounts. Creating, editing and archiving happen in the dashboard.

Questions

Read next

Run your first code

Discount codes are part of Arcalotl at no extra cost. Create one on the Discounts page and share it wherever your members are.

Open the dashboard