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 and countWaitingWatches must be true or
false; "4", 4.5, null, "false" or an unknown field is refused with 400, and nothing is
saved.
Alyte records every change with the values before and after.
@alytegen/sdk 0.8.0 adds
setEventPurchaseLimit, getEventPurchaseLimit and clearEventPurchaseLimit on AlyteMerchant;
earlier versions call the REST routes.
Who counts as one customer
Alyte recognises a customer by two things. Two purchases that share either one count as the same customer.- The 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.
- The card: recorded when the buyer saves it. Two buyer accounts paying with the same card count
as one customer. Alyte keeps a keyed hash of the card’s identifier, never the identifier itself,
and never shows it to you or the agent.
- Stripe: the card’s fingerprint, with no setup on your side.
- Adyen: the card alias, which Adyen returns only if your account is set to send it. See Adyen: send the card alias.
Adyen: send the card alias
1
Turn on alias info
In your Adyen Customer Area, go to Developers → Additional data, and under Payment
select Include alias info. Save.
2
Save a card to check
Save a test card through Alyte’s card setup. Cards saved from now on carry the alias; cards
saved earlier do not, and their buyers need to save them again to be recognised by card.
Some Adyen accounts cannot change this setting themselves. If you do not see Include alias
info, ask your Adyen contact to enable it.
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.
- Over the limit:
409 purchase_limit_exceeded, and the hold is released. No payment is started. - A declined payment gives the card’s tickets back. A payment whose outcome is uncertain keeps them counted until it is confirmed.
- The cap on unpaid tickets (
maxHeldPerCustomer) does not apply to the card, because these tickets are being paid for.
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, and against the card it was paid with, wherever that card has an identity on record.- 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 counts toward the limit, unless you setcountWaitingWatches: false. Its tickets are counted under the buyer’s account, and the card it
will pay with, from the moment it is queued.
- Queueing over the limit is refused with
409 purchase_limit_exceeded, and no watch is created. Retrying a queue request with the samerequestIdnever counts twice. - When the watch fires, its hold takes over the counted tickets, so nothing counts twice. A watch that is cancelled, expires, fails or buys gives its tickets back at once.
- A watch held back only by the buyer’s own unpaid tickets keeps waiting, with
waitingReason: "purchase_limit"and no place in the line, and tries again when those tickets are paid for or released. Any other limit refusal fails the watch: you receivewatch.failedwith the code as itsreason, so you can tell the buyer. - Switching counting off releases the event’s waiting tickets at once.
- Watches queued before you set the limit, or switched counting on, are counted within about five minutes, even past the limit. Each is checked again when it fires.
Availability
Live on sandbox since revisionalyte-sandbox-00136-h2z; recognising cards and counting queued
purchases since alyte-sandbox-00137-x9w. A deployment where ticket limits are not enabled refuses
PUT with 503 purchase_limits_unavailable and changes nothing.
