merchant:write manages it.
Set a limit
PUT replaces the whole limit: sending { "maxPerCustomer": 4 } alone removes an earlier
maxHeldPerCustomer. Values must be whole numbers; "4", 4.5, null or an unknown field is
refused with 400, and nothing is saved.
Alyte records every change with the values before and after. The SDK has no methods for this yet;
call the REST routes.
Who counts as one customer
Today Alyte recognises a customer by their Alyte buyer account: the buyer an agent belongs to. Two agents the same buyer created count as one customer. An agent buying for someone other than the buyer it belongs to cannot use that buyer’s allowance. On an event with a limit, a purchase Alyte cannot tie to a buyer is refused. An example is an organisation’s agent with no individual buyer behind it. The limit never lets an unidentified purchase through. Recognising the same person across several accounts, by card, email, your own customer ID or address, is planned. Until then, someone with two buyer accounts counts as two customers.What counts
- Tickets held but not yet paid for, tickets bought, and tickets whose payment outcome is still being confirmed.
- A hold that is released or expires gives its tickets back to the customer’s allowance.
- Add-ons such as parking or merchandise do not count, unless the add-on tier is set to count toward the party size.
Sales made before you set the limit
The first time you set a limit on an event, Alyte counts the event’s tickets already sold. Each is counted against the buyer who bought it, wherever Alyte’s records confirm that buyer.- A customer who already has more than the limit keeps every ticket but cannot buy more. Nothing is cancelled.
- Changing the limit later does not count again. Removing it and setting it again does.
- Tickets that were held but unpaid at that moment are not counted.
readiness tells you how much of the event the limit covers. ticketsCounted is the held and
sold tickets it counts against a customer. ticketsNotCounted is the ones it cannot tie to one,
for example tickets bought before Alyte could identify the buyer.
What agents and buyers see
Discovery. A limited event carriespurchaseLimit: { maxPerCustomer, maxHeldPerCustomer? }, in
the agent’s inventory view and in your public shop window, so an agent can plan within it.
Refusals. Nothing is held or charged when one of these is returned:
Queued purchases. A waiting watch does not use up the allowance. When it
fires, it goes through the same check. If the limit refuses it, the watch fails and you receive
watch.failed with the code as its reason, so you can tell the buyer.
Today that also happens when the refusal comes only from the buyer’s own unpaid holds; letting
such a watch keep waiting is planned.
Availability
Live on sandbox since revisionalyte-sandbox-00136-h2z. A deployment where ticket limits are
not enabled refuses PUT with 503 purchase_limits_unavailable and changes nothing.
