Venues & Seating
Build booth inventory, draw a venue map, lay out priced seats and tables, sell them through a public paid seat checkout, then work the door — QR tickets, check-in, and door-only staff logins — and refund what needs refunding.
Some events sell a headcount — twenty vendors, any twenty. Others sell a specific place — booth A1, table 12, seat R4-7. Venue tools are for the second kind. They let you build a booth inventory, draw it on a real map of your site, lay out seats and tables in a room, and reserve exact locations against a date.
This is the toolset for indoor markets with fixed footprints, event halls, theaters, and anywhere the answer to “where am I?” needs to be more precise than “somewhere at the market.”
How do I turn a market into a venue?
A venue in VendorStreet is a market with its booking mode set to Spaces. There’s no separate object to create.
Go to Market → Edit → Basics and set Booking mode to Spaces. The in-app help puts it directly: “Capacity mode limits bookings by count; Spaces mode limits by named booths.”
VendorStreet will warn you when you switch, because changing the mode affects existing bookings and space assignments. Do it before you take real bookings, not after.
Booking mode decides who picks the space, not whether you can have spaces or a map:
- Spaces — vendors choose their own booth when they book.
- Capacity — vendors book a headcount, and you assign them a space yourself. Any market can still carry a booth inventory and a map on its Spaces & Map tab; in Capacity mode those spaces are yours to assign and don’t appear to vendors.
See Markets for the mode comparison.
Your venues have their own list, Venues, at /venues: it lists the markets where vendors pick their own space (Spaces mode). A venue still appears on your Markets list as well, because it is a market — the two lists are views of the same properties, not separate copies.
What are regions, spaces, and layout objects?
Three nested layers, from coarse to fine:
Regions are the big divisions of your site — “Building A,” “North Lawn,” “Upstairs.” Add them under the Regions card with a name and an optional description. Regions are reorderable and act as a filter everywhere else, including on your public map.
Spaces are your booths — the sellable inventory. The Spaces inventory card lists them by Code, Name, Size, Base price, and Status. When adding one you set:
- Space code — the identifier vendors and staff use (
A1,NW-04). - Name (optional) — a friendlier label.
- Width (feet) and Depth (feet) — the footprint.
- Base price (USD) — what this booth costs. This is where a Spaces-mode market gets its base price for pricing rules.
- Region — which region it belongs to.
Building a row of identical booths? Use Duplicate along row — set the number of Copies and a Direction (Right or Left) and VendorStreet generates the rest.
Every one of those fields stays editable afterwards — each row in the inventory has an edit and a delete action. Changing a booth’s Base price or Size only affects bookings made from then on; an invoice records what it charged when it was issued and never re-reads the booth afterwards, so nobody’s existing bill moves. Changing the Space code is safe too — bookings track the booth itself, and the code is only a label — though staff and vendors will see the new one, so don’t renumber your site mid-season.
Deleting a booth is deliberately harder, because a booth is only removable while nothing points at it: no booking (a vendor’s unsubmitted draft counts — they’ve already picked it), no seats or tables drawn inside it, no invoice line billing for it, and no active hold. If any of those exist the delete is refused and says what’s holding it. Nine times out of ten what you actually want is to edit the booth and set its Status to inactive, which takes it off the board for new bookings and leaves everything already booked intact.
Layout objects are seats, tables, and sections placed inside a space. That’s the seating layer, covered below.
How do I put my booths on a map?
Under the Map editor card — “Draw polygons to map spaces to the uploaded layout image.”
- Upload a site plan or overhead image as PNG or JPEG (Upload map, or Replace map later).
- Select a space from your inventory.
- Drag a rectangle over its position on the map — or switch to the polygon tool and click out each corner for irregular shapes.
- Repeat for each booth.
The result is a real map of your market that visitors can browse at /markets/<your-slug>/map. It supports pan and zoom, filtering by region, and a legend showing Available, Booked, Locked, and Assigned to you.
Note that the public map is read-only — visitors can look and filter, but nothing is booked from that page.
How do I set up a seating chart?
Seating lives inside a space, under the Seating layout card. You’ll need a map image uploaded and selected for that space first — the layout is drawn on top of it.
Start by choosing a Seating model:
- Not configured — no seating.
- Open / general admission — “capacity only, no seat identity to lay out.” Picks a headcount and hides the canvas entirely.
- Operator-assigned seats — you place people in specific seats.
- Customer seat selection — seat-level identity intended for customer picking.
- Table reservations — reservations are made by table rather than by seat.
Any model other than open reveals the layout canvas: “Place seats and tables on the space map below, then save the layout.”
Placing seats, tables, and sections
The canvas toolbar gives you Add seat, Add table, and Add section. Place objects by dragging them onto the map image; a live counter tracks how many are placed and how many are queued for removal. Click Save layout when you’re done.
Each object type behaves differently:
- Seat — a single point. Has a Label and an optional Section assignment (defaults to Unassigned).
- Table — a rectangle with a Label and a Capacity.
- Section — a rectangle grouping seats, with a Label, a Capacity, and a Sale mode.
Remove deletes the selected object.
What are sale modes, and which should I use?
Sale mode is set per section and controls how that part of the room is sold. It overrides the space’s seating model, so you can mix approaches in one room — reserved seats down front, general admission at the back, a private suite sold whole.
- Assigned — pick individual seats. Buyers get specific seats. Capacity is optional here because it derives from the seats you’ve tagged into the section.
- General admission — buy N up to capacity. No seat identity; people buy a quantity against a cap. Requires a capacity of at least 1.
- Whole — sold as one unit. The entire section goes to one buyer — a suite, a private room, a VIP box. Requires a capacity of at least 1.
Pricing sections and seats
Sections now carry a price, and that price means something slightly different per sale mode:
- Assigned — the price is per seat. Every seat in the section costs the section price unless you tier it (below).
- General admission — the price is per admission, multiplied by the quantity bought.
- Whole — the price is for the whole unit.
Set a section’s price (in dollars) on the section tool in the Seating layout editor. A section — or a bare seat that belongs to no section — with no price is treated as not purchasable online; the public checkout won’t sell it.
Price tiers let you charge more for front-row than back-row within one assigned section. Define named, reusable tiers on the space — for example Premium, Standard, Value — each with its own price and colour, then assign each seat to a tier. A seat’s tier price wins over its section price; an untiered seat falls back to the section price. The public map shows a colour legend and a price range for tiered sections.
Which hall is a performance in?
Each performance happens in one hall, or in the whole venue. A hall is a space with a seating chart. Buyers see only that hall’s seats for that performance, so the gym’s seats can’t be sold for the auditorium’s play.
- A venue with two or more halls — when you add a performance under Market → Edit → Scheduling, choose its Hall. Pick Whole venue (every hall) for an event that uses every room; it sells seats in every hall. An event in two halls but not all is two performances, one per hall.
- A venue with one hall — the performance is in that hall automatically. The dialog shows the hall’s name and asks nothing.
- Booth markets — nothing changes; there is no Hall to choose.
Performances you had before halls existed stay Whole venue until you pick a hall, except in a venue with only one hall, where they were put in it.
When the hall can’t change. Once a seat is sold or reserved for a performance, or the performance is part of a season series, its hall is fixed: those seats belong to that hall’s seating chart. The Hall select is greyed out and says why. Take the performance out of the series first; a performance with sales stays where it is. A seat a buyer is holding in their cart at that moment also stops the change: saving says so, and you can try again once the hold ends.
The performances list, the door list and the door scanner show the hall’s name next to the time. On the public seat page, the date list shows only the chosen area’s performances (and whole-venue ones), and a link to a performance in another hall opens that hall.
A space with performances in it — past and cancelled ones included — can’t be deleted. Set it inactive instead.
How does reserving seats work?
Open the Reserve seats card — “Hold and book specific seats or tables on [space] for a scheduled occurrence, with live availability.” It appears once a seating model is set to something other than open.
- Pick an Occurrence — which scheduled date you’re reserving against. See Scheduling.
- Click seats or tables on the map to select them. For general admission sections, use the − and + steppers instead; each row shows how many of the capacity are left.
- Your picks appear in the Selection panel, each with a Remove link and a live countdown.
- Optionally add add-ons — an add-ons total is shown as you go.
- Say what kind of sale it is — Comp, Cash or Phone — and who the seats are for (see below).
- Click Confirm reservation.
Comps, cash and phone sales
Every reservation you confirm here is a real booking for a real person, so it has to say how it was sold:
- Comp — complimentary: cast families, crew, board, press, donors. No charge, no invoice, nothing goes through Stripe, and VendorStreet charges no fee on a comp. A reason is required, chosen from a short list — Cast/crew family, Board, Press, Donor, Staff or Other — so you can always answer who comped what, and why, and count them by kind at the end of a run. Add a note if the reason doesn’t say enough (“Front row for the Patels”); if you choose Other, the note is required, because “other” on its own is no reason at all.
- Cash — paid to you at the box office.
- Phone — paid to you over the phone, outside VendorStreet.
For cash and phone, record the amount taken. If you leave it blank — say they paid on your own card reader and you’d rather not retype it — add a note saying so; a sale with no amount and no note is a comp without a reason, so it’s refused. A $0 cash or phone sale is refused too: that’s a comp, so choose Comp and give the reason. Nothing is charged here and VendorStreet takes no fee on cash or phone sales. Add the person’s name — it’s what the door list is read by — and, optionally, their email and phone number.
Will-call. Tick Will-call when the person will give their name at the door rather than show a ticket. It’s ticked for you on a phone sale and on a comp with no email (there’s nobody to send a ticket to); untick it if they’d rather scan, or tick it on a cash sale if they ask to be left at the door. It changes nothing about whether they get in — it’s a label the door reads, a filter on the door list, and a line in their email saying they needn’t bring anything.
Each reservation you confirm starts the next one fresh: seats you just booked never reappear as part of your next selection.
Once confirmed, that person is treated exactly like someone who bought online:
- They’re on the door list for that date, searchable at the door by name, email or seat, marked Comp, Cash or Phone — and Will-call when they are.
- With an email, they get the same confirmation email as an online buyer, with their QR ticket — a comp’s says Complimentary rather than an amount, and a will-call ticket says they can just give their name. Without one, they’re on the door list under their name, looked up and admitted at the door.
- Their ticket scans and admits at the door identically. A comp is never turned away for not being “paid”.
- Comps fill seats like any sale, so the house can’t be oversold.
Who placed each one is recorded, and shown on your door list with the comp reason.
How many house seats? The comp cap
By default there’s no limit on comps. If you want one — “twenty house seats a night, and that’s it” — an owner or admin opens the performance in Scheduling and sets House seats to comp. Tick Apply this cap to all upcoming performances in the same hall too to set the same number on every performance in that hall that hasn’t happened yet (for a whole-venue performance, every other whole-venue one; cancelled ones are left alone). Leave the field blank to remove the cap.
With a cap set, the Reserve seats tool shows “12 of 20 house seats used on this performance” as soon as you choose Comp, and won’t confirm a comp that would go past it: “Only 1 house seat left on this performance — an owner or admin can raise the cap.” The count is checked at the moment the comp is written, not when the screen loaded, so two people comping the last two seats at once can’t both get them — the second is told the seats are gone and their selection stays held, so they can place a cash sale instead or ask for the cap to be raised. There’s no override on a single comp; the fix is always the cap. Cancelling a comp gives its seats back to the count. Cash and phone sales never count against it — it’s a cap on comps, not on the box office.
How long do seat holds last?
Ten minutes. The moment you select a seat it’s held against everyone else, and the countdown in the Selection panel shows the time remaining. When a hold expires, the selection clears and the seat returns to the pool. The duration is fixed and not currently configurable.
Because two people can be working the same room, you’ll occasionally hit a conflict. VendorStreet is explicit about it rather than silently reassigning: “One or more selected seats were just booked by someone else, or their hold ran out”, “This section was just sold out by someone else”, or “This selection’s holds have expired. Please re-select your seats.” Availability refreshes automatically and you pick again. A hold that has run out is never booked — even mid-click — because by then someone else may have the seat.
The operator Reserve seats tool never takes a card. It’s for placing people you’ve dealt with yourself — a comp, or a sale you took in cash or by phone. Online card sales happen in the public seat checkout, below. You can’t place seats for a performance that’s been cancelled.
Can customers buy seats online?
Yes — venues now have a full public paid seat checkout. This is new; if you remember venue seating as inventory-only, that’s changed. Customers browse the seat map, hold a selection, and pay through Stripe, exactly the way experiences sell.
The public seat page (reached via a View seating button on your public venue page) lets a visitor:
- Pick the space and the date (occurrence) they’re buying for.
- Browse the master map — sections coloured by availability (open / limited / sold out) — and drill into a section.
- Select seats (assigned), choose a quantity (general admission), or take the whole unit — building a cart under a 10-minute hold with a live countdown.
- Optionally add parking, merch or a drink from Add to your order, when the venue offers add-ons.
- Click Proceed to payment, enter name and email, and pay on Stripe Checkout.
Only priced seats and sections are sellable — anything left unpriced shows as “not available for online purchase.” The amount is always recomputed server-side from the held seats, so the price is never trusted from the browser. When payment succeeds a booking is confirmed and the customer gets a confirmation email and a status page. If they press Back on Stripe’s payment page, their seats come straight back into their cart — still held for a few minutes, so they can change a seat and try again — and the half-hour checkout hold is released for everyone else. If they simply close the tab, the hold expires on its own and the seats return to the pool.
When are my seats on sale?
While your venue is live and you can be paid — nothing else. Three things, all of them yours to control:
- The venue is Live. You take it live yourself under Market → Edit → Status & visibility — the same Go-live every market uses. Nobody at VendorStreet has to switch anything on for you.
- Your operator membership is active. Going live needs one (see Billing), and seat sales stop if it lapses.
- Your payouts are connected, and Stripe has enabled charges. Until then the venue’s overview page shows a Connect payouts to sell seats notice that links to the Payouts card. See Payments & Payouts.
When all three hold, buyers can pick, hold and pay for seats, and — once at least one space has a seating layout — the View seating link appears on your public venue page, along with your upcoming dates. When any one of them doesn’t, the seat map is closed — buyers can’t browse it, hold a seat, or pay:
- Draft and archived venues have no public seat map at all; the link isn’t offered. Neither does any venue of an organization that VendorStreet has locked.
- A paused venue, or one whose membership has lapsed, tells buyers “Tickets for this venue aren’t on sale online right now.” It doesn’t tell them why.
- A venue whose payouts can’t take a charge tells buyers it can’t take online payments yet — before they pick a seat, not after they’ve typed in their details.
Pausing stops sales at once, including carts already full. A buyer who was holding seats when you paused can’t check out; they’re told tickets aren’t on sale, and their held seats go back to the pool when the hold runs out (or straight away, when they leave the page). Someone who had already reached Stripe’s payment page before you paused can still finish paying. (When VendorStreet’s support team pauses a venue or locks an organization, those payment pages are closed as well; a payment already being made at that moment still goes through.) Pausing doesn’t cancel anything already sold — to call a performance off and refund it, cancel the occurrence (below).
Limits on holding seats
Holding a seat costs a buyer nothing, so VendorStreet limits how much one person can tie up:
- 20 seats per cart. A cart can hold at most 20 seats, general-admission places or whole units at once.
- 40 seats per connection, per performance. Across every cart and browser tab coming from the same internet connection, at most 40 can be on hold for one performance at a time — including seats in a checkout that hasn’t been paid for yet. That’s two full carts, because a connection isn’t always one person: on the morning tickets go on sale, a school’s Wi-Fi carries every parent in the building. Seats already paid for don’t count, so the same buyer can come back and buy more.
- A steady pace. One connection can change its cart up to 120 times a minute and start up to 10 checkouts a minute — far more than a family choosing seats needs.
A buyer who reaches a limit is told that too many seats are on hold from their connection, or that there have been too many requests, and asked to try again in a few minutes. Groups larger than a cart’s 20 should book with you directly, using the Reserve seats tool.
What does VendorStreet charge on a seat sale?
$1 per ticket. A ticket is one admission: an assigned seat, one general-admission place, or a whole unit — a box or table sold as one is one ticket, however many it seats. Four seats in one order are four tickets, so $4.
A free ticket carries no fee. A seat or place priced at $0 is still a ticket — it is on the door list and admits someone — but VendorStreet charges nothing on it. Two $30 seats and two complimentary $0 seats in one order pay $2, and an order of only free tickets pays nothing.
You choose who pays it, with the Booking fee setting under Settings → Organization (the same setting appointments and experiences use; your venue’s overview page shows what its seat sales are charged per ticket):
- Taken from the ticket price (We absorb it). Buyers see only your prices. On four $30 seats the buyer pays $120, and VendorStreet’s $4 comes out of it at the point of charge.
- Added to the buyer’s total (Our customers pay it). The cart and the Stripe page show a Booking fee line of $1.00 per ticket — “Booking fee (4 × $1.00)”, $4.00 — with a sentence saying it is VendorStreet’s fee for booking online. On the same four seats the buyer pays $124, the $4 goes straight to VendorStreet, and your $120 is untouched.
Either way the fee is VendorStreet’s, never part of your takings, and never taxed. Your card processing surcharge, if you have one, is not calculated on it. See Checkout Charges.
Who’s coming? The door list
Operations → Door list in the sidebar (or /markets/<market-id>/door-list) is the roster for one occurrence. Pick the date and you get every paid seat booking — bought online, sold at the box office or by phone, or comped: the seats or general-admission section they hold, the buyer’s name and email, how many admissions, what they paid, and when they booked. Seats you placed with Reserve seats are marked Comp, Cash or Phone, with the comp reason and who placed them; a comp shows No charge, and a cash or phone sale with no amount recorded shows Not recorded. Anyone to be found by name is marked Will-call. The summary line counts comped admissions, how many parties are will-call, and how much of the night’s takings was taken at the box office. It’s sorted by seat label, so you can read down it the way you’d read a room.
The chips above the list — All, Online, Will-call, Comps, Cash & phone — narrow what’s on screen, each with its count. Hand the phone to whoever is working will-call with the Will-call chip selected and they have exactly the list they need. The chips only change what you’re looking at: the summary line and the export are always the whole night.
Export CSV writes the whole list — not the part you can see, whatever chip is selected — so you can print it, hand it to whoever is working the door, or load it into something else. It carries how each booking was sold (kind), whether it’s will-call, the comp reason and any note, who placed it and any phone number, and its amount column says No charge and Not recorded where the screen does. Names and notes that look like spreadsheet formulas are exported as plain text.
Paid bookings and comps only, deliberately. Someone who abandoned checkout isn’t a guest, and a refunded or cancelled booking’s holder isn’t coming. Neither appears — including a booking refunded in full directly in Stripe. The list and the door’s Admit button read the same rule, so nobody is on the list the door would turn away, and nobody the door would admit is missing from it.
Two flags can appear beside a booking, for you rather than your door staff: Disputed (the buyer has disputed the payment with their bank) and Refunded $X outside VendorStreet — review (part of it was refunded in Stripe). See Refunds made in Stripe.
The door list also shows who has already arrived — see the next section for how people get checked in.
How do I check people in at the door?
The door list is the list to read. Operations → Door check-in in the sidebar (or /markets/<market-id>/door) is the screen you work — open it on a phone, pick tonight’s date, and either scan tickets or look guests up by name.
The ticket
Every seat confirmation email now carries a QR code, and the buyer’s booking status page shows the same one. That’s the ticket. Guests can show it on a phone or on paper — it’s the same code either way, and it doesn’t expire.
Bookings confirmed before this feature shipped have no QR in their original email. You don’t need to do anything about that: email lookup works for everyone, and if you’d rather the guest had a ticket, the QR is already on their booking status page (the “View your booking” link in their original confirmation).
Scanning
Tap Start the camera and point it at the guest’s QR code. You’ll see who they are, which seats they hold, and how many of their party are already inside — then one tap admits them.
The camera needs permission the first time, and browsers only allow it over https. If the camera won’t start, the page tells you so and points you at the lookup instead; nothing is blocked by a camera that won’t cooperate.
Looking someone up
Dead phone, deleted email, or a QR that just won’t scan — type any part of their email, name, or seat into Look them up and admit them from the result. This searches tonight’s list only, and it works offline-ish: the list is already loaded, so it doesn’t wait on the network.
This is also how will-call works: the guest gives their name, you find them, you admit them. Beside each name the door sees Comp, Cash or Phone when the seats were placed by staff, and Will-call when they’re expected to arrive by name — labels only; a comp is admitted exactly like a card sale. Every admit, whether from a scan or a lookup, leaves the same record of who let in how many and how they were found, so a disputed entry can be traced either way.
Admitting part of a party
A booking for four can be admitted four at once, or two now and two when the others park the car. The count accumulates against the booking, so:
- The default button admits everyone still outside — one tap for a party arriving together.
- The small number buttons underneath admit just that many.
- You can never admit more than the booking sold. The fifth person on a booking for four is refused, and it’s refused safely even if two people on two different phones scan the same ticket at the same moment.
Scanning the same ticket twice is not an error. It reads “Already checked in — 4 of 4 admitted, at 7:42 PM”, which is exactly what you need to know when someone tries to walk in on a ticket their friend already used.
When a ticket is refused
The screen names the reason rather than just failing, because you have to say it out loud to the person in front of you:
- Performance cancelled — this occurrence was called off, so nobody is admitted on any ticket. Ticket holders are refunded automatically; tell them to check their email.
- Refunded — the booking was refunded and the seats went back on sale.
- Cancelled — the booking was cancelled (a comp, cash or phone booking you cancelled says this, not “refunded”).
- Wrong date — a real ticket for this venue, but a different occurrence.
- Not paid — the checkout never completed, so there’s no ticket.
- Not a ticket — the code isn’t one of yours at all.
“Performance cancelled” outranks the others: if the show is off it is the only thing worth saying, and it is true of every ticket presented at that door.
Who can work the door
Door staff don’t need to be market managers. Invite them as Door staff — see below.
How do I give someone door-only access?
In Organization → Users → Invite in the sidebar, pick the market and choose Door staff (check-in only) as their role. They get the same emailed invite as any other staff member.
A door staff member can do exactly two things in that market: read the door list for an occurrence, and check people in. Everything else refuses them — schedules, spaces, booth maps, vendors, invoices, reports, market settings, and refunds. Their roster carries no prices and no takings — what a seat sold for and what the night collected are yours, not theirs — and they have no access at all to any other market.
Their app reflects it: signing in takes them straight to the check-in screen, and the rest of the operator menu isn’t there. It’s a deliberately small amount of trust to hand a casual or seasonal worker.
Market admins and managers can work the door too, without a separate invite — somebody has to cover it when the door staff don’t turn up.
How do I refund a seat sale?
Open the Door list for the occurrence, find the booking, and click Refund. You’ll be asked to confirm, because two things happen at once: the buyer’s money goes back through Stripe, and their seats return to the pool for anyone to buy. The buyer gets an email telling them the booking was refunded and their payment has been returned, and their booking status page changes to Refunded.
It’s the whole booking or nothing. There’s no partial or per-seat refund — if someone bought three seats and wants to give back one, refund the booking and let them rebook the two they’re keeping.
A booking fee the buyer paid goes back with it — $1 for every paid ticket on the booking. The confirmation names the whole amount going back — the seats, any tax and the booking fee — the same figure the “Refunded” message shows afterwards. The refund returns the whole charge, and VendorStreet refunds that much of its fee to your Stripe balance straight after, so refunding the buyer’s booking fee costs you nothing. The buyer’s email says the refund includes it. If you absorb the fee instead, a refund does not return it: the $1 per ticket stays with VendorStreet.
If Stripe refuses the refund, nothing changes. The booking stays paid, the seats stay held, and you can try again — VendorStreet won’t record a refund that didn’t happen. Failures are also filed for the platform team to look at.
Cancelling a comp, cash or phone booking
Seats you placed with Reserve seats show Cancel instead of Refund — Cancel comp on a comp. Nothing was charged through VendorStreet, so nothing goes back through Stripe: cancelling releases the seats and cancels the booking, and the guest (if you have their email) is told it was cancelled. For a cash or phone sale, handing the money back is up to you — the confirmation tells you how much you recorded taking. A cancelled comp gives its seats back to the performance’s house-seat count, and the cancellation is recorded against whoever placed it, with the reason.
Refunds made in Stripe
The door list’s Refund button is still the simplest way: the money and the seats move together. But a refund made directly in Stripe — from the dashboard, or by VendorStreet support — is picked up too, within moments of Stripe reporting it:
- The whole charge refunded: the booking is cancelled and marked Refunded, its seats go back on sale, and its ticket stops working — the door reads Refunded instead of an Admit button. It drops off the door list and out of your revenue. The buyer gets the same refund email the Refund button sends, and you get a notification saying it happened outside VendorStreet.
- Part of it refunded: the booking stays paid, its seats stay held and its ticket still admits — a partial refund says nothing about which seats it was for, and VendorStreet doesn’t guess. The door list flags it Refunded $X outside VendorStreet — review, you’re notified, and your revenue counts only what you kept. Then it’s your call: Refund returns the rest (the confirm dialog names just the rest) and releases the seats, or leave it as it is. To leave it, an owner or admin can click Mark reviewed, which clears the flag and notes who reviewed it and when; the refunded amount stays off your revenue. A second partial refund flags it again; once everything has gone back, it’s treated as a whole refund.
Each refund is counted once, however many times Stripe reports it, and VendorStreet’s own refunds coming back from Stripe are never mistaken for ones made outside it. If a refund made in Stripe later fails, it stops counting and VendorStreet’s team is alerted — a booking it had already cancelled stays cancelled, since its seats may have been sold again.
Refunded some other way? Tick “I already refunded this another way (cash, a card machine) — just release the seats” in the Refund dialog. That releases the seats and cancels the booking without moving any money. The buyer’s email says the booking was cancelled and the refund was handled separately, so nothing claims money moved twice.
If Stripe doesn’t answer. Now and then Stripe takes a refund without confirming it. The booking stays refund in progress rather than being refunded twice. VendorStreet checks with Stripe and finishes it within about 15 minutes. If the refund never reached Stripe, the booking goes back to paid so you can try again.
Disputes
If a buyer disputes the payment with their bank, you’re notified straight away and the booking is marked Disputed on the door list. Its ticket still admits — whether to let them in is your call — and door staff see Payment disputed when they scan it. VendorStreet’s team is alerted to help respond in Stripe. While the dispute is open the booking can’t be refunded (Stripe doesn’t allow it), though you can still release the seats if you’ve settled with the buyer another way. An inquiry — the bank’s early warning before a formal dispute — is different: you can still refund it, and refunding is how you close one.
- Decided in your favour: the Disputed mark clears and you’re told.
- Decided for the buyer: the money has gone back to them through their bank, so the sale is over — the booking is cancelled, its seats go back on sale and its ticket stops working. That holds even if the bank returned only part of the payment: the whole booking drops out of your revenue, and anything the bank didn’t return is between you and Stripe. You’re told; the buyer isn’t emailed by VendorStreet (their bank has already settled it with them).
How do I cancel a whole performance?
Open the occurrence in Scheduling and set its status to Cancelled. Before you confirm, the dialog tells you exactly what is about to happen — how many vendor bookings and invoices are affected, and how many tickets were sold and how much money goes back. If the number of tickets surprises you, stop and check you have the right date.
Confirming does all of this:
- Every ticket sold for that occurrence is refunded in full, automatically. You do not refund them one at a time. The seats are released, the bookings are cancelled, and each buyer is emailed — and that email leads with the fact that the event was cancelled, not just that they were refunded.
- Comps, cash and phone bookings are cancelled too — but not refunded through Stripe, because nothing was charged here. Each guest with an email is told the performance is off, with no talk of a refund. Comps are counted and released, and that’s the end of them — nobody is owed anything on a comp. Cash and phone sales are listed for you by name and amount under “refund these by hand”, the same way paid vendor invoices are: the dialog (before you confirm) totals what you took at the box office, and the confirmation (after) names each person so you can hand it back.
- The door stops admitting people. Anyone scanned or looked up at that occurrence’s door gets “Performance cancelled” instead of an Admit button, whatever their ticket says.
- Nothing more can be sold for it. Seat holds and checkouts are refused, including from a bookmarked link or a tab someone left open.
- Vendor bookings on the date are cancelled and their unpaid invoices voided, as described in Markets.
If a refund fails, you are told, and nothing pretends otherwise. Stripe occasionally refuses one. That ticket stays paid, its seats stay held, its buyer is not emailed a refund notice, and the confirmation flags the failure so you can settle it from the door list. (A ticket already refunded in full in Stripe isn’t refunded twice: it is released as the refund it already was.) Two more cases are counted among the ones to look at, and each sends you a notification: a ticket whose buyer has an open dispute (Stripe won’t refund it until the bank decides — if the bank decides for you, you’re told to refund that buyer), and a refund Stripe didn’t confirm (VendorStreet finishes or undoes it within about 15 minutes). The cancellation itself still completes; one stuck refund never blocks the other hundred.
Cancelling is not deleting. A date nobody booked can be deleted outright; a date with sales must be cancelled, precisely so all of the above runs. VendorStreet refuses to delete an occurrence that has sold seats.
Service fee and tipping on seat checkout
Because venue seats now take real payment, they carry the same optional checkout charges as experiences:
- A fixed service fee — set a per-model default under organization settings, or override it per venue in Market → Edit → Basics (“Checkout charges”).
- Tipping — off by default; turn it on per venue with optional presets or a compulsory floor the buyer can add to, plus a custom note.
- A card processing surcharge and sales tax via Stripe Tax also apply here.
One thing worth calling out plainly: on these sales you are the merchant of record, which means you are responsible for collecting and remitting sales tax — and Stripe collects $0 tax until you register your jurisdictions in Stripe. The full story, including the worked line-item math, is in Checkout Charges.
Promo codes on ticket sales
Your existing discounts can now work on tickets too. The same Discounts & promotions card under Market → Edit → Pricing Rules that makes vendor promo codes has a new Use for choice on every discount: Vendor bookings (what every code you already had does), Ticket sales, or Both. Nothing changes until you choose: a code made before this stays a vendor code.
To make a ticket code, add a discount with a promo code buyers can type (a ticket discount can’t be automatic — someone has to enter it), a percent or a fixed amount, optionally a start and end date and a limit on how many times it can be used, and set Use for to Ticket sales or Both. The list shows how many times each code has been used and how much it has taken off.
What buyers see. Once your venue has at least one live ticket code, the cart on the public seat page gains a Have a code? field. The buyer types the code and presses Apply; the cart shows each discounted seat’s new price, a Discount (SCHOOL20) line, and the new total — exactly what Stripe will charge, to the cent. If the code isn’t one of yours, hasn’t started, has expired, has been used up, or is a vendor-only code, they’re told which. The code is recorded on the booking, shows on their booking page and in their confirmation email, and appears on the Stripe line items (“A12 (Premium) — SCHOOL20”).
How the maths works.
- The code comes off the ticket prices only — never your service fee, a tip, a card surcharge or VendorStreet’s booking fee.
- A percent code is rounded per ticket. A fixed amount is split across the tickets in proportion to their prices, so no ticket ever goes below $0; a fixed amount larger than the order simply makes it free.
- VendorStreet’s $1 per ticket still applies to a discounted ticket while it costs more than $0. Two $30 seats with a 50% code pay $2 of fee, on both sides of the “who pays it” setting. A ticket a code takes to $0 pays no fee at all, so a 100%-off code makes the whole order fee-free.
- A $0 order needs no card. When a code (or a cart of only free seats) brings the total to nothing, the button reads Confirm seats, no payment page opens, and the seats are confirmed at once with a confirmation email — the same booking, ticket and door-list entry as a paid order. A free cart that your service fee makes payable still goes to Stripe.
Limits and uses. A code’s limit counts live orders: a checkout the buyer abandons or backs out of, and an order you later refund, give the use back on their own. A code set to Both has one limit shared across vendor bookings and ticket sales. Auto-apply and per-vendor limits are vendor-booking features and do nothing on ticket sales.
Guessing is throttled. Checking a code uses the same per-connection budget as starting a checkout (ten a minute), so a script can’t run through a dictionary of codes.
Ticket types: adult, student, senior
Sell student, senior or other tickets at a different price without building a second price list. A ticket type is one number: a percent off or an amount off each seat’s own price. “Student, 50% off” makes a $40 Premium seat $20 and a $20 rear seat $10; “Senior, $5 off” makes them $35 and $15. On general admission the same rule applies to the section’s price. A price never goes below $0, so a type at 100% off (“Lap child”) is free.
Standard is built in. Every ticket is full price — Standard — unless the buyer picks a type, so a venue that never adds a type sells exactly as before.
Setting up ticket types
Go to Market → Edit → Spaces and find the Ticket types card under your spaces. Add ticket type asks for:
- a name buyers will see (“Student”, “Senior”, “Child”) — “Standard” is taken by the built-in full price;
- an optional note shown to the buyer and to whoever works the door (“Bring a student ID”);
- the price: percent off (0–100) or amount off in dollars;
- offered at: all performances, or only the performances you tick (“Student rush, Thursdays only”).
Owners and admins can add and change types; managers can see them. You can’t delete a type — archive it instead. Archiving stops it being sold from then on; tickets already sold under it keep its name on the booking, the door list and your reports. Restore puts it back on sale.
There’s no limit on how many tickets of a type sell at a performance, and a type is the same discount at every performance it’s offered at — a different price for opening night is not something a ticket type does.
What buyers see
When a performance has types, the cart on the public seat page gains a Ticket picker beside every seat (Standard, or one of your types, each with its price) and, for a general-admission line, a + / − for each type (“Adult 2, Student 1” — whatever isn’t given a type is Standard). The price changes as they choose, and the total is checked against the server before they pay. Your note for each chosen type is shown in the cart, so a student knows to bring their ID.
The type appears everywhere the ticket does: on the Stripe receipt (“A12 (Premium) — Student”; for general admission “Balcony — Student × 2”), on the booking page and in the confirmation email beside each seat, and on the door list and the scanner’s party card as “2 Standard, 1 Student” with the type’s note, so the door knows to ask for a student ID. The door list also shows you (not door staff) sales by ticket type for the performance — tickets and what they sold for — once a type has been sold.
With promo codes and fees. A promo code comes off the ticket’s type price: a 20% code on a $20 student ticket takes $4. VendorStreet’s $1 per ticket is charged on every ticket that still costs more than $0 after its type and any code — a free type pays no fee.
At the box office. The Reserve seats tool gives cash and phone sales the same choice of type per seat. Comps ignore types: they’re free either way.
Add-ons for one type. An add-on’s scoping rules can now name a ticket type, so (for example) a “Student lanyard” is offered only with seats sold as Student.
Add-ons with tickets
Buyers can add parking, merch, a drink or a program to their seats when they buy online. The add-ons are the ones you already sell at the box office: your organization’s add-ons attached to this venue, with the same scoping rules.
How your add-ons reach buyers
Attach an add-on to the venue under Market → Edit → Add-ons as you would for the Reserve seats tool. Nothing else to switch on: once a venue has an active add-on, the public seat page shows an Add to your order panel in the cart. Each buyer sees exactly what the box office would see for the same seats:
- an add-on with no rules is offered with every seat;
- one limited to a section, a seat type or a sale mode is offered only when the cart holds a seat it matches;
- one limited to a ticket type (“Student lanyard”) is offered once a ticket in the cart is that type;
- one that tracks stock shows “Only 3 left” as it runs low, and one set to hide when sold out disappears when it’s gone;
- a required add-on is marked Required and starts at its minimum — the buyer can’t check out without it.
The price is your catalog price, and each add-on’s taxable setting decides whether Stripe Tax charges tax on it.
What buyers see
The panel lists each add-on with its price and a + / −. The total updates as they choose, and is checked against the server before they pay. The add-ons appear as their own lines on the Stripe receipt, on the booking page, and in the confirmation email, each with its price.
Stock is claimed at checkout. When a buyer goes to pay, their add-ons are taken out of stock with their seats. If two people reach for the last parking space at the same moment, one gets it and the other is told it just sold out, with nothing charged. If a buyer leaves without paying, presses Back on Stripe, or is refunded, the add-ons go back into stock.
Money. Add-ons are your money. They are not tickets, so VendorStreet’s per-ticket fee is never charged on them, and they don’t count toward the ticket count. The card processing fee (if you charge one) includes them; the tip doesn’t — a 10% tip is 10% of the tickets. A promo code comes off tickets only. Refunding a booking refunds everything on it, add-ons included.
Donations with tickets
Buyers can add a gift to your organization when they buy seats online. It goes through in the same payment as their tickets.
Turning donations on
Open Market → Edit → Spaces and find the Donations card, under Ticket types. Set:
- Prompt — a line above the step, like “Support the drama program”;
- Suggested amounts — up to six whole-dollar amounts shown as buttons, like 5, 10, 25;
- Maximum per order — from $1 to $1,000 (the default). A cap limits fraud and chargebacks.
Then tick Offer a donation step at checkout. The first time, an owner or admin must also tick “My organization is responsible for donor acknowledgements and any charitable-solicitation registration”. That is a real responsibility: VendorStreet sends no receipts or acknowledgement letters for donations, and says nothing to donors about their gift beyond the amount. If your organization thanks donors in writing, or must register to solicit donations where you are, that is yours to do. The card records who ticked the box and when, and keeps that first record.
Managers can see the settings and the totals; only owners and admins can change them.
The money
- A donation is your money, in the same payout as the tickets.
- No VendorStreet fee. A donation is not a ticket, so the per-ticket fee is never charged on it.
- Stripe’s card rate applies to it, as on everything else in the payment, and your venue bears it — you are the merchant of record.
- It is outside the tip and the card processing fee: a 10% tip is 10% of the tickets, and your card processing fee is not charged on the donation.
- Sales tax is never added to it.
- Refunding a booking refunds the donation too. There is no way to refund only the donation.
Who gave: totals and the donors list
The Donations card shows the total given for performances in the dates you pick (leave them blank for all), with refunded donations counted apart. The door list shows the same total for that night’s performance, next to sales by ticket type. Export donors CSV downloads each donor’s name, email, amount, date and performance, with refunded ones marked “yes” — the list to write your own thank-yous from. Only owners and admins can export it, and each export is recorded in the audit log.
What buyers see
When donations are on, the cart shows an Add a donation step with your prompt, your suggested amounts, a box for another whole-dollar amount and No thanks, which is where it starts. A buyer who picks an amount sees a Donation line in the summary, and the booking page and confirmation email show one line: “Donation to {your organization}: $10.00”.
Season subscriptions
A season subscription is the same seats at every performance of a series, bought in one payment at a discount off single tickets. A subscriber picks their seats once, pays once, and gets a ticket for each night.
Setting up a season and its series
Open Market → Edit → Spaces and find the Seasons card.
- Add season — a name, like “2026–27 Season”, and its dates: when Renewals open and the Renewal deadline (see Renewals below), when Subscriptions on sale opens, and when Single tickets on sale opens. The dates must run in that order.
- Single tickets on sale holds single tickets back. Every performance in the season’s series takes that date as its own booking opens date, and until then buyers can see the seat map but can’t hold or buy a seat: they’re told “Single tickets for this performance go on sale …”, in your venue’s time zone. Change the season’s date and the performances follow; clear it and they open. A date you set on a performance yourself in Scheduling is never overwritten by the season, and a performance you add to or take out of a series picks up or drops the season’s date. Subscriptions, renewals, and your own comps, cash and phone sales aren’t held back, and nobody on a waitlist is emailed before the date.
- Add series under it — a group of performances sold together, like “Friday evenings”. Choose its Space, its Subscriber discount (%) off the single-ticket price, the Most seats per subscription (up to 10), and pick its performances from your upcoming dates in that hall, or whole-venue ones (up to 12).
Managers can see seasons; only owners and admins can change them.
Once anyone has subscribed to a series, its performances, its space and its discount are fixed: that is what the subscribers bought, so changing them is refused with “This series has subscribers…”. You can still rename it, reorder it, list its performances in a different order, take it off sale, or change the most seats per subscription.
Going on sale
Set the season’s Status to On sale, then each series you want to sell to On sale. A series can be bought only while all of these hold:
- the season and the series are on sale;
- the Subscriptions on sale date has passed;
- every performance in it is still ahead and none is cancelled;
- your venue is selling seats online (the same rule as single tickets — see Can customers buy seats online?).
Which of those a series misses decides whether buyers see it. A series whose Subscriptions on sale date hasn’t come yet, that has no performances yet, or with a performance that has started or been cancelled, stays listed with the reason (“A performance in this series was cancelled, so it can’t be sold as a subscription.”), so nobody wonders where it went. A series or season that isn’t on sale isn’t listed at all, and when your venue isn’t selling seats online, buyers see that instead of any seasons. Cancel a performance and the series comes off sale. If nobody has subscribed yet, take that performance out of the series to sell it again; once it has subscribers, its performances stay as they are and each subscriber is refunded for the cancelled night.
What buyers see
Your public venue page shows Season subscriptions next to View seating whenever a series is listed. From there a buyer:
- picks a series, seeing its dates and the subscriber price;
- picks seats on the same seating chart single-ticket buyers use — a seat is free only if it is free at every performance, and its price is the subscriber price. If someone takes a seat at one performance while they’re choosing, they’re told which performance and that change isn’t made: the seats they already had stay held while they choose again;
- picks a ticket type for each seat, if you offer types — only a type offered at every performance in the series is shown, and it holds for the whole series;
- sees a summary listing every date with its price, any service fee, and the booking fee, then pays on Stripe.
They land on a subscription page listing each performance with a link to its own ticket, and get one confirmation email with the same links. Each night’s ticket has its own QR code and admits only on its own night.
The money
- One charge for the whole subscription, in one payment, paid out to you like any seat sale.
- The per-ticket booking fee applies per performance: two seats for six performances is twelve tickets, shown as “Booking fee × 12”. A ticket that is $0 after the discount carries no fee.
- Your service fee is charged once per subscription, not once per performance.
- No tip. The tipping step isn’t offered on a subscription.
- No promo codes on subscriptions — the subscriber discount is the deal.
- If a seat can’t be confirmed after the buyer paid (for example their hold ran out while they sat on Stripe’s page and someone else took the seat), the whole subscription is cancelled and refunded in full, the buyer is emailed, and you get a notice.
At the door
Each performance of a subscription is an ordinary booking on that night’s door list, with its own seats and its own ticket. It carries a Subscriber badge with the series name, so you can tell subscribers from single-ticket buyers.
Refunds
Refunds for subscribers are in place, so a season can now be put on sale. Every refund is per performance: each night of a subscription gets back its own share of the payment, never more, and is refunded at most once however many times anyone clicks.
What a refunded performance returns. Its share of the payment: that night’s tickets, its part of the service fee and card surcharge, its tax and its booking fee. Only VendorStreet’s own platform fee is kept. If part of the payment was already refunded in Stripe, a refund made here never returns more than is left on the payment, so the last one may return less than the night’s share, and says so.
One performance, from the door list. A subscriber’s ticket on the door list has a Refund button like any other booking. The dialog says it’s one performance of a season subscription: only that night is refunded, its seats go back on sale, and the subscriber’s tickets for the other nights are unchanged. If part of the payment was already refunded in Stripe, it returns at most what’s left. They get an email saying it was this performance of their subscription. “I already refunded this another way” works here too, releasing that night’s seats without moving money. Cancelling a whole performance still refunds each subscriber for that night as before.
A whole subscription, from Subscribers. In the Seasons card, each season has a Subscribers button. It lists everyone who subscribed, with their series, seats, what they paid and what has been refunded so far, and a search box. Opening the list is recorded in the audit log, because it holds people’s names and emails. Owners and admins see Refund on each subscription; managers see the list without it. Managers can still refund a subscriber’s nights one at a time from the door list, as they can any ticket.
Refund opens a list of the subscription’s performances with a box for each. Performances still to come are ticked; past ones aren’t, since the subscriber has had those nights. Tick Include past performances to refund those too (for example, if the venue let them down). The dialog shows the total going back before you confirm. Each ticked night is refunded on its own, as above; nights already refunded or cancelled are skipped. The subscriber gets one email listing every night refunded and the total, and everyone on those nights’ waitlists is told seats came free. Once every night is refunded or cancelled, the subscription shows Refunded; refund only some nights and it stays active for the rest.
If one night’s refund doesn’t go through, the others still go ahead, and the dialog says which night failed. If Stripe refused it, the night stays paid and you can try it again from the door list or from Refund once more. If Stripe didn’t answer, the night shows Refund in progress in the list and isn’t offered again: VendorStreet settles it on its own as soon as Stripe answers, marking it refunded if the money went back, or putting it back as paid (and refundable) if it didn’t. A night under an open dispute shows Disputed and isn’t offered either. Clicking Refund twice, or two people refunding at once, refunds nothing twice: the second is told a refund is already being processed.
Disputes. A subscription is one payment, so a dispute covers every night: each of the subscription’s tickets is marked Disputed on its door list, and Refund is disabled on each while it’s open. Decided for the buyer, every night not already refunded is cancelled and its seats go back on sale, the subscription shows Refunded, and you’re told once for the subscription. The buyer isn’t emailed by VendorStreet.
Refunds made in Stripe. Refund the whole payment from the Stripe dashboard and every night is cancelled, its seats go back on sale, the buyer gets one email for the subscription, and it shows Refunded. A part refund made in Stripe can’t say which nights it was for, so no night is changed: every ticket still admits, and you’re notified that the subscription was partly refunded in Stripe. If the refund was for particular nights, release them on the door list with I already refunded this another way. Refunding them in VendorStreet as well would return that money twice. Whatever you do, VendorStreet never refunds more than is left on the payment: once a refund made in Stripe has returned part of it, the last refund made here returns only what’s left, and says so.
Renewals
Last season’s subscribers get first claim on their own seats for next season. To renew a season, edit the new season and set Renews to last season, set Renews on each new series to the series it follows, then set Renewals open and the Renewal deadline. Leave the deadline empty and it’s 21 days after renewals open. Each old series can be renewed by one series of the new season.
The deadline is fixed while any renewal is open. Every held seat is held until the deadline renewals opened with, so while any subscriber’s renewal is still open (seats held, or waiting for new seats) the deadline can’t be moved or cleared and the season can’t come off sale. Nor can the new series’ performances, space or subscriber discount change while any of its renewals is open: each subscriber was invited at that price. Once every renewal has closed (renewed, released or lapsed) they can all change again. An opening that found nobody to invite locks nothing.
Opening renewals. Renewals open on their own at Renewals open (checked every quarter of an hour) while the season is On sale; a season still in draft opens nothing until you put it on sale. You can also open them straight away with Renewals → Open renewals on a season that’s on sale. The button says how many subscribers it will invite and asks you to confirm. For each active, paid subscription on the old series, VendorStreet holds the same seats at every performance of the new series until the deadline, and emails the subscriber an invitation with the price and a link to renew. Invitations go out from the quarter-hourly check, a dozen at a time, so a large season is invited over a few hours; one that can’t be sent is tried again, and nobody gets the same email twice. The automatic opening also works through a large season a few dozen subscribers at a time. If a renewing series is added after renewals opened on their own, use Open renewals to invite its subscribers. Single-ticket buyers and new subscribers can’t take those seats while they’re held. Opening twice, or the button and the automatic opening at the same moment, offers nobody twice and emails nobody twice. The result lists how many had seats held, how many need new seats, how many were already offered, and anyone skipped, with the reason (for example, the subscription was cancelled or refunded, or the new series has no performances yet).
When a seat isn’t available. If any of a subscriber’s seats can’t be held — it’s been comped or sold, or the new series is on a different seating chart — none are held for them. They get an invitation to choose new seats instead, with a link that opens the new series’ seat map for them before subscriptions go on sale to everyone. They can use it to buy once; nobody else can use it after that.
What subscribers see. The renewal link opens a page with their seats, every date, the price and the deadline, in your venue’s time zone. Renew pays on Stripe exactly as a new subscription does, and they get a confirmation email that says renewed. Their renewed subscription is a new one with its own ticket for each night; last season’s subscription is untouched. Release my seats (also linked from the email) asks them to confirm, then releases the seats at once. Seven days before the deadline, anyone who hasn’t answered gets one reminder, which has a link to stop reminders. Going to Stripe and coming back without paying keeps their seats held; a renewal checkout never cuts a hold short.
Cancelled performances. If a performance in the new series is cancelled, renewals and new subscriptions go ahead over the rest of the series, priced over those. A series is off sale only when every one of its performances is cancelled.
The deadline. At the deadline, every renewal not paid for lapses: the seats go back on sale, and the subscriber gets one email saying so. A subscriber who was paying at that moment can still finish. If single tickets for that night are already on sale, its waitlist is told. Before then there’s no waitlist, and the seats go on sale with single tickets.
Renewals → the list. Each season that renews another has a Renewals button. It shows the renewal dates, how many renewals are held, need new seats, renewed, declined or lapsed, and every subscriber with their seats and outcome. Opening it is recorded in the audit log. Owners and admins can Release a renewal: its seats go back on sale now. If single tickets are already on sale, the waitlist is told. Before then there’s no waitlist, and the seats go on sale with single tickets. For a subscriber who needs new seats the button is Close: nothing was held for them, so it only closes their renewal. Managers can see the list but can’t open renewals or release seats. The Subscribers list for last season shows each subscription’s renewal outcome too.
Exchanges between performances come in a later release.
Waitlist for sold-out performances
When a performance sells out, buyers can join its waitlist. VendorStreet emails them when seats come free. Nothing is held for anyone: the seats go straight back on sale to everyone at the same moment the email goes out, and the first to buy gets them.
For buyers
When the seat map has nothing left to buy, the page shows Join the waitlist. Before single tickets go on sale for that performance there’s no waitlist: the map says when they go on sale. The buyer gives their name, email and party size, and can note a section they’d prefer (any text, like “Balcony”). While there are seats enough for their party, they’re asked to choose them on the map instead. Joining again with the same email updates their party size and section rather than adding them twice.
When seats come free, everyone on the list whose party fits is emailed at once: “Seats just opened for Saturday, March 1 at The Playhouse”, with a link to the seat map. The seats needn’t be together; the buyer picks them on the map. Each person is emailed once. To hear about the next seats that come free, they join again. Every email has a link to leave the waitlist. Buyers never see their place in line.
The waitlist is emailed when a booking is refunded or cancelled (in VendorStreet or in Stripe), when a single-ticket or season checkout expires unpaid, when a late payment is refunded because its seats had gone, and when you release seats you were holding on the Reserve seats tool. It is not emailed when a buyer’s own cart hold runs out or they let their seats go, or when they back out of the payment page (their seats go back to their cart): those seats are back on the map for anyone, but nobody is told. When you cancel a performance, nobody on its waitlist is emailed. Email only, for now.
A performance’s waitlist holds up to 500 people; past that, new people are told it’s full. If an email can’t be sent, that person stays on the list and is tried again the next time seats come free. The leave link in each email asks the person to confirm before taking them off.
For operators
In Market → Edit → Scheduling, a performance with people waiting shows Waitlist (n). Open it to see each person’s name, email, party size, preferred section, when they joined and when they were emailed. Owners and admins can Remove someone; managers can see the list without the Remove button. Opening the list and removing someone are recorded in the audit log, because the list holds people’s names and emails.
Renting out the venue
A rental blocks the room for a stretch of time. Use it when another group takes the hall — a school band’s rehearsal, a wedding, a meeting. Nothing is sold through a rental: there are no tickets, no seat map, no door list and no check-in for it, and VendorStreet takes no money from the renter.
Blocking the room
Open Market → Edit → Scheduling and find the Rentals panel. Add rental and set:
- Title — what you’ll recognise it by, like “Lincoln High Band”;
- Space — Whole venue, or one space when the group takes only that room;
- Starts and Ends, in your venue’s time zone;
- Set-up and Tear-down — minutes before and after that the room is also taken. A rental from 9:00 to 13:00 with 60 minutes’ set-up blocks the room from 8:00;
- the renter’s name, email and phone, and the agreed fee and deposit, for your records. VendorStreet does not invoice or charge the renter for them;
- notes.
Rentals show by date among your performances, marked “Rental · Lincoln High Band · 9:00–13:00, set-up 60 min”. A rental that runs past midnight shows on every day it covers, marked “through” its last day. Owners and admins add, edit and cancel rentals; managers can see them, without the Add, Edit and Cancel buttons.
Rentals are for venues only. A market that books vendors into booths can’t take a rental.
Clashes
A rental and a performance can’t overlap, either way round. A rental over a performance — set-up and tear-down included — is refused, naming the performance; so is a performance, or a moved one, over a rental. A performance in one hall clashes only with rentals of that hall and whole-venue rentals; a whole-venue performance clashes with a rental in any space. Two rentals clash the same way: when they overlap and either takes the whole venue or both take the same space. Moving a performance into another hall checks that hall’s rentals too, even when its times don’t change.
Copying a performance onto a date a rental blocks is refused. Duplicating a performance or a schedule set weekly skips the blocked dates and lists them.
Cancel a rental to free its time. The rental stays in your records as cancelled. A space that has ever been rented — past and cancelled rentals included — can’t be deleted, so its rental history is kept; set it inactive instead.
What the public sees
Nothing, by default. Tick Show on the public calendar as ‘Private event’ (no details) and the seat page lists it as Private event with its times, in your venue’s time zone — no title, no renter, and nothing to click. It shows only for a whole-venue rental or a rental of a seated area (one with a seating chart); a rental of a room with no seating chart, like a lobby, stays off the public page.
Who can reserve seats?
Two paths now:
- The public seat checkout (above) is open to anyone — no login, guests buy and pay for themselves.
- The operator Reserve seats tool is staff-only — market admins and managers, from inside the market admin; door staff can’t use it. It never takes a card: every confirmation there is a comp, a cash sale or a phone sale, and becomes a real booking on the door list with a ticket.
The booth map at /markets/<your-slug>/map still shows booth polygons only — it doesn’t render seats. Seat browsing and buying happen on the dedicated public seat page, not the booth map.
Common gotchas
- A map image is required before you can lay out seating. “Upload and select a map for this space to lay out seating.”
- Holds expire in ten minutes. While you’re filling in the sale (kind, name, email, amount, note), each edit keeps the hold alive, so a phone booking you’re typing up won’t lose its seats. A selection left untouched still lapses when the countdown runs out.
- VendorStreet takes no fee on comps, cash or phone sales — only on tickets sold online.
- No email, no QR. A comp or box-office sale without an email address gets no ticket by email; they’re will-call, looked up at the door by name.
- Section sale mode beats the space’s seating model. If a section is behaving unexpectedly, check its sale mode before the space setting.
- General admission and whole sections need an explicit capacity; assigned sections derive theirs from tagged seats.
- Unpriced seats and sections can’t be sold online. The public checkout skips anything with no price; set a section price (or seat tier) to make it purchasable.
- Seats are on sale only while the venue is Live, your membership is active and your payouts are connected. Miss any one and the public seat map closes — buyers are told tickets aren’t on sale online, before they pick a seat. See When are my seats on sale?
- Paused means no seat sales, not just no vendor bookings — carts already holding seats can’t check out.
- Seats in a payment that’s under way can’t be changed. A buyer who has gone to Stripe’s payment page and comes back can’t change those seats until they finish or cancel that payment — so what they pay for is always what they get.
- A cart holds at most 20 seats, and one connection at most 40 per performance. Bigger groups book through you, with Reserve seats.
- On seat sales you’re the merchant of record. You owe the sales tax, and Stripe collects $0 tax until you register your jurisdictions in Stripe. See Checkout Charges.
- A partial refund made in Stripe keeps the seats. A whole refund made in Stripe releases them by itself; a partial one is flagged on the door list for you to review, because VendorStreet can’t tell which seats it was for.
- Refunds are whole-booking only. There’s no way to give back one seat out of three.
- The VendorStreet fee is per ticket, not per order. $1 on every seat, admission or whole unit priced above $0 (a free ticket carries none; a box sold as one is one ticket) — taken from the ticket price or added to the buyer’s total, whichever you chose under Settings → Organization → Booking fee.
- A promo code doesn’t remove the per-ticket fee unless it takes the ticket all the way to $0. Half off two $30 seats still pays $2 of fee; 100% off pays none. See Promo codes on ticket sales.
- Old codes don’t work on tickets by themselves. Every discount made before promo codes reached the seat checkout is set to Use for: Vendor bookings. Change it to Ticket sales or Both if you want buyers to use it.
- Door staff can’t refund. Refunding is an admin/manager action; a door session is refused. That’s the point of the role.
- The camera needs https. On an insecure connection the browser won’t hand over a camera at all — use email lookup.
- Old confirmation emails have no QR. Anything bought before check-in shipped is admitted by email lookup, or from the QR on the buyer’s booking status page.
- Switching a live market’s booking mode is disruptive. Existing bookings and space assignments are affected.
- Booth polygons and seating layouts are stored separately. Drawing booths on the map doesn’t create seats, and vice versa.
Next steps
- Checkout Charges — service fee, tips, and sales tax on seat sales
- Payments & Payouts — connect Stripe and get paid for seats
- Add-ons — sell extras against specific sections, seat types, or sale modes
- Reporting & KPIs — venue occupancy, attendance, attach rate, and seat revenue
- Scheduling — the occurrences you reserve against