Promo codes have a “name” attribute that is used to claim the code. The name of a promo code is always capitalized, only letters and numbers are allowed, and no spaces are allowed.
Promo codes either have unlimited usages, or they can be configured with a limit. If unlimited is true, then the limit value will be null (and should be ignored).
Promo codes are configured with either a fixed discount (amount field) OR a percentage discount (percentage). When using a fixed discount amount, the amount is subtracted from the price of each ticket before we apply Fee Rules (if using the build endpoint, this is done for you automatically). If the discount is greater than the cost of the ticket, then the ticket’s cost becomes 0.00 (the cost can never be negative).
It’s important to remember that in the case of a sufficiently large amount discount OR a 100% off percentage discount, the order can become free. If the total amount of the order is $0, then we will not generate a `stripe_client_secret` since no credit card payment is required. However, it IS possible for Fee Rules to still charge fees even for free tickets, so the key indication of payment being required is if there is a total more than $0.
In some cases, certain Ticket Types can be configured to not be visible (visibility value of “Hidden”). In these cases, these ticket types should NOT be displayed as an option by default. These ticket types can be made visible by using a Promo Code where “reveal_hidden_tickets” is true AND the Ticket Type ID is included in the “ticket_type_ids” array value.