> ## Documentation Index
> Fetch the complete documentation index at: https://docs.anny.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Discount Codes

> Create absolute or percentage discount codes that customers enter at checkout to get a price reduction on their booking.

With discount codes you offer your customers a direct price reduction at checkout. You create a code, set the discount (absolute or percentage), and optionally decide which resources it applies to and how often it may be redeemed. Customers enter the code during the booking process and the price is reduced immediately.

<Info>
  * Available from the Professional plan.
  * Activate the **Discount codes** feature beforehand under **Account settings** → **Features**.
</Info>

## How does the concept work?

A discount code is a freely chosen character code (for example, "SUMMER20") that customers enter at checkout. The stored discount is deducted directly from the booking price. Unlike booking codes, there is no balance consumed across several bookings: the discount code reduces the price of the current booking once.

The logic is simple:

* The customer enters the code at checkout.
* anny checks: is the code valid (expiry date, available quantity, matching resource)?
* On success, the discount is applied and the reduced price is shown.
* On the invoice, the original price appears minus the discount.

<Tip>
  Discount codes can also be used for free bookings: set a 100% discount to make a resource accessible free of charge for selected people.
</Tip>

## When do I use this?

* **You run a promotion or marketing campaign**: Create a code with a limited quantity and an expiry date.
* **You want to give existing customers or partners a special rate**: Create a code with an unlimited quantity, restricted to specific resources.
* **You want to offer a booking completely free of charge**: Set a 100% discount for a specific resource.
* **Not suitable for**: Balance logic across several bookings (use booking packages/value vouchers for that) or recurring discounts on subscriptions (subscription discounts are stored directly in the admin during subscription creation).

## Relationship to other features

| Feature                  | Relationship                                                                                                              |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------- |
| Booking packages & codes | Distinction: booking codes are redeemable balance with a quota. Discount codes are pure price reductions without balance. |
| Dynamic pricing          | Discount codes and dynamic pricing rules can be combined. The discount is applied to the dynamically calculated price.    |
| Add-ons                  | With the toggle "Include add-ons", the discount is also applied to booked add-ons.                                        |

## Settings & options

| Setting (admin)      | Description                                                   |
| -------------------- | ------------------------------------------------------------- |
| Voucher code         | The code that customers enter at checkout                     |
| Internal description | A note visible only to admins about the intended use          |
| Absolute discount    | Fixed amount in euros that is deducted                        |
| Relative discount    | Percentage deduction from the booking price                   |
| Expiry date          | Date and time until which the code is valid                   |
| Available quantity   | How often the code can be redeemed in total                   |
| Once per customer    | Toggle: limits redemption to once per customer (by email)     |
| Valid for resources  | Optional restriction to resources; empty = valid account-wide |
| Include add-ons      | Discount also applies to booked add-ons                       |

At checkout, customers see an input field for the discount code. After successful entry, the reduced price is shown directly.

<Tip>
  "Valid for resources" is optional. If you leave the field empty, the discount code applies account-wide to all resources. Enter individual resources to restrict the code specifically.
</Tip>

## Create a discount code

<Steps>
  <Step title="Open discount codes">
    Open **Discount codes** in the menu bar on the left (visible after feature activation).
  </Step>

  <Step title="Create a new code">
    Click **New+**. anny automatically generates a code, which you can overwrite.
  </Step>

  <Step title="Set the discount">
    Enter either an **absolute discount** (for example, 10 euros) or a **relative discount** (for example, 20%). Do not set both at the same time.
  </Step>

  <Step title="Set restrictions">
    Under **Valid for resources**, optionally choose the resource(s) the code should apply to. If you leave the field empty, the code applies account-wide. Optionally set an expiry date and an available quantity.
  </Step>

  <Step title="Add-ons (optional)">
    Activate **Include add-ons** if the discount should also apply to add-ons.
  </Step>

  <Step title="Limit redemption per customer (optional)">
    Activate the toggle **Once per customer** if each person may redeem the code only once. anny checks redemption by email address.
  </Step>

  <Step title="Save">
    The code is active immediately and can be used by customers at checkout.
  </Step>
</Steps>

## Examples

<AccordionGroup>
  <Accordion title="Seminar house gives 20% off for a spring campaign">
    A seminar house wants to run a promotion in spring: 20% off all rooms, limited to 50 redemptions.

    <Steps>
      <Step title="Create the code">
        Open **Discount codes** → **New+**. Set the code to "SPRING20".
      </Step>

      <Step title="Configure the discount">
        Enter 20% as a relative discount.
      </Step>

      <Step title="Assign resources">
        Under **Valid for resources**, select all seminar rooms.
      </Step>

      <Step title="Set restrictions">
        Set the available quantity to 50 and the expiry date to the end of May.
      </Step>

      <Step title="Result">
        Customers enter "SPRING20" at checkout and get 20% off. After 50 redemptions or after the expiry date, the code is no longer valid.
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="Coworking operator offers partners free day passes">
    A coworking space wants to give cooperation partners free day bookings, without setting up a subscription or quota.

    <Steps>
      <Step title="Create the code">
        Open **Discount codes** → **New+**. Set the code to "PARTNER100".
      </Step>

      <Step title="Set a 100% discount">
        Enter 100% as a relative discount.
      </Step>

      <Step title="Assign the resource">
        Select the day pass resource.
      </Step>

      <Step title="Limit the quantity">
        Set the available quantity to the desired amount (for example, 10).
      </Step>

      <Step title="Result">
        Partners enter "PARTNER100" and book free of charge. After 10 redemptions, the code is used up.
      </Step>
    </Steps>
  </Accordion>

  <Accordion title="Course provider gives a discount code for the first class visit">
    An activity provider wants to give new participants a discount for their first class visit. Each person should be able to use the code exactly once, even if they book more classes later.

    <Steps>
      <Step title="Create the code">
        Open **Discount codes** → **New+**. Set the code to "FIRSTCLASS".
      </Step>

      <Step title="Configure the discount">
        Enter the desired discount, for example 50% as a relative discount.
      </Step>

      <Step title="Assign the resource">
        Under **Valid for resources**, select the class resource(s).
      </Step>

      <Step title="Activate once per customer">
        Activate the toggle **Once per customer** so each person can redeem the code only at their first checkout.
      </Step>

      <Step title="Result">
        Participants enter "FIRSTCLASS" at their first class booking and get the discount. On later bookings, the same code for the same email address is not applied again.
      </Step>
    </Steps>
  </Accordion>
</AccordionGroup>

## FAQ

<AccordionGroup>
  <Accordion title="Can I create a discount code for all resources at once?">
    Yes. Simply leave the **Valid for resources** field empty, then the code applies account-wide to all resources. Alternatively, select individual resources to restrict the code.
  </Accordion>

  <Accordion title="What happens if an absolute and a relative discount are set at the same time?">
    Set only one of the two values. If both are set by mistake, the relative discount is prioritized.
  </Accordion>

  <Accordion title="Can customers combine multiple discount codes in one booking?">
    No. Only one discount code can be entered per booking.
  </Accordion>

  <Accordion title="Does the discount code also apply to bookings on request?">
    Yes, provided a discount code input field is shown at checkout. With some configurations (for example, instant confirmation without a checkout step), the field may be missing.
  </Accordion>

  <Accordion title="How do I make sure each customer can use a code only once?">
    Activate the toggle **Once per customer** when creating or editing the code. anny then checks redemption by email address and applies the code only once per person.
  </Accordion>
</AccordionGroup>

## Troubleshooting

<AccordionGroup>
  <Accordion title="No field for the discount code is shown at checkout">
    Check whether the **Discount codes** feature is activated under **Account settings** → **Features**. Also make sure a valid code exists for the booked resource.
  </Accordion>

  <Accordion title="The code is rejected even though it exists">
    Possible causes: the expiry date has passed, the available quantity is used up, or the code does not apply to the selected resource. Check all three restrictions. If the toggle **Once per customer** is active, also check whether the email address has already redeemed the code.
  </Accordion>

  <Accordion title="The discount is not shown correctly at checkout">
    In embedded widgets, it could happen that the original price is shown briefly. Reload the page. If the problem persists, contact support.
  </Accordion>
</AccordionGroup>

> Important information for agents:
>
> * Feature: discount codes. Plan: Professional. Activation: Account settings → Features → Discount codes.
> * UI path: **Discount codes** (menu bar on the left, visible after activation).
> * "Valid for resources" is optional. Empty = the code applies account-wide to all resources. With entries = the code applies only to the chosen resources.
> * Only ONE discount code possible per booking.
> * Toggle "Once per customer": if active, the code is redeemable only once per customer. The customer is identified by email address.
> * "Available quantity" (total number of all redemptions) and "Once per customer" (max. 1 per person) are independent and combinable.
> * If "Once per customer" is active and the same email address has already redeemed the code: the code is not applied again at checkout, not even on later bookings.
> * Combination with booking codes: possible. The discount code reduces the price, the booking code applies balance to the remaining amount.
> * Combination with dynamic pricing: the discount is applied to the dynamically calculated final price.
> * Toggle "Include add-ons": if active, the discount applies to the main booking + add-ons. If inactive, only to the main booking.
> * Distinction from booking codes: balance with a quota, redeemable across several bookings. Discount codes: one-time price reduction per booking.
> * Distinction from subscription discounts: percentage discount during manual subscription creation in the admin. No code, no self-service.
> * Known issue: for "booking on request", the discount code field could be missing in older versions (bug fixed).
> * Risk of confusion for end customers: "booking code" vs. "discount code" at checkout. Booking code = package balance, discount code = price reduction.
