Discount codes are managed at the organization level and can be scoped to series, events, races, or applied across the org. Manage them at Pricing → Discounts. [IMAGE: /organizations/[id]/pricing/discounts → discount code list with usage counts]Documentation Index
Fetch the complete documentation index at: https://docs.time2.bike/llms.txt
Use this file to discover all available pages before exploring further.
Create a code
- Click New code.
- Set:
- Code — what riders type (case-insensitive).
- Kind:
- Percent off — stored as basis points (e.g.
1000= 10%,2500= 25%). - Amount off — a flat dollar amount.
- Percent off — stored as basis points (e.g.
- Applies to —
any,series,event, orrace. Picking a non-anyvalue reveals a selector for the specific series/event/race. - Eligibility — where the code can be redeemed:
- Registration (default) — race entry fees only.
- Merch — storefront merch and registration add-ons only.
- Both — either / combined.
- Max uses — total redemptions allowed across all riders. Blank = unlimited.
- Per-user limit — how many times a single rider can use it.
- Valid from / to — optional date window.
- Save.
How it’s applied
At checkout the rider enters the code on the Review step (or in the cart for merch). Time2Bike validates server-side: code exists, eligibility matches the cart type, scope matches the cart, within date window, max uses not exhausted, per-user limit not exhausted.- Percent codes apply to the subtotal of eligible lines.
- Amount codes apply once, capped at the subtotal so they never go negative.
Merch storefront vs registration add-ons
- A code with eligibility Merch or Both works on the public store (
time2.bike/[orgSlug]/store) only ifApplies to = any— series/event/race scopes don’t apply to a generic store order. - When merch is purchased as an add-on inside a registration, event-scoped codes can apply as long as the registration is for that event.
- The store cart calls a
validate-discountendpoint as the rider types, so they get an immediate “applied” or “invalid” reaction — and re-validates when the cart changes so amount-off codes can’t drift. - A code that brings the total to exactly $0.00 sends the order straight through without Stripe, but still records a redemption row.
Redemptions
Every successful application writes a redemption row tied to the registration or merch order, so you can audit who used what and when. See Redemptions.Lifecycle
- Edit — change kind/amount/scope/eligibility/limits.
- Copy code — copies to clipboard for sharing.
- Delete — disables the code for future use. Past redemptions stay on the registrations and orders they applied to.