← venyall.com  ·  Download this manual as a PDF

Venyall

Setup & Operations Manual

Sell your own tickets with Stripe: event calendar, box office, artist payouts and settlement reporting for independent music venues. This manual takes a new venue from a blank WordPress site to a working ticketing system, then explains how to run a show night and settle up.

Plugin version 3.0  ·  For venue owners and managers  ·  Assumes basic WordPress knowledge (you can log in, add a page, and install a plugin)

Contents

  1. Part 1 Before you start — what Venyall does and what you need
  2. Part 2 Install the plugin
  3. Part 3 Set it up, tab by tab (about an hour)
  4. Part 4 Make your pages and add your team
  5. Part 5 Your first show and a test purchase
  6. Part 6 Show night: the door screen, settling up, refunds and cancellations
  7. Part 7 Money: the sales dashboard, bank transfers and sales tax
  8. Part 8 Optional add-ons: card reader, artist payouts, bar sales, recordings, sound crew
  9. Part 9 When something goes wrong
  10. Appendix Shortcodes, roles, webhooks and a settings checklist

Part 1 — Before you start

What Venyall does

Venyall turns your own WordPress website into your box office. Fans buy tickets on your site, the money goes straight into your own Stripe account, and your staff run the door and settle the show from screens built for that job. No third-party ticketing platform, no per-ticket cut, and you keep the customer relationship.

How the money flows

Every card is charged by Stripe. Ticket money lands in your Stripe balance and Stripe pays it out to your bank on its normal schedule. Your website never holds money and never sees a card number, which keeps you out of card-compliance obligations. Artists you pay through Venyall receive a Stripe transfer into their own connected account.

What you need

ItemNotes
A WordPress websiteWordPress 6.0 or newer, PHP 7.4 or newer, with an administrator login. Any normal host works.
A Stripe accountFree to open at stripe.com. Stripe takes a percentage of each sale; there is no monthly fee. Have your bank details ready.
An email-sending pluginWP Mail SMTP or FluentSMTP (both free). Without one, most hosts' ticket receipts get blocked by Gmail and Outlook. This is the single most common support problem.
Optional: a Stripe card readerA Stripe Terminal reader (the S700 is what this was built with) if you want to take walk-up card payments at the door.
Optional: a tablet for the doorAny tablet or laptop with a browser. The door screen is a web page.
About one hourSteps 1–5 in Part 3 get you selling tickets. Everything after that is optional and can wait.
Do it in this orderInstall → settings (time zone first!) → pages → staff → test show → real $1 purchase. Every step builds on the one before it.

Part 2 — Install the plugin

  1. Log in to your WordPress admin at https://yoursite.com/wp-admin with an administrator account.
  2. Upload the plugin. Go to Plugins → Add New → Upload Plugin, click Choose File, pick venyall-3.0.0.zip, then Install Now.
    Plugins > Add New > Upload Plugin
    Plugins → Add New → Upload Plugin. Choose the zip and click Install Now.
  3. Activate it. Click Activate Plugin. You can also activate later from the Plugins list.
    Plugins list with Venyall active
    Venyall in the Plugins list. The Settings link opens the ticketing screens.
  4. You land on the Setup Guide. A new Ticketing menu appears in the left sidebar. Its first tab is a built-in guide that walks the same steps as this manual; keep it open as a checklist.
    The Setup Guide tab
    Ticketing → Setup Guide. "How the whole thing works" is worth two minutes.
  5. Install an email plugin now so you do not forget: Plugins → Add New, search for WP Mail SMTP, install, activate, and connect it to a real mailbox (Gmail, Outlook, or your host's mail). Ticket receipts will not reliably arrive until this is done.

Part 3 — Set it up, tab by tab

Everything venue-specific lives under Ticketing in the WordPress admin. There are nine tabs. This part covers the four you must fill in; Part 8 covers the optional ones.

Step 1 — Selling Tickets tab: your venue and your prices

Selling Tickets tab
Ticketing → Selling Tickets. Work down the page; every field has a plain-language explanation under it.
  1. Venue name. Used on receipts, artist emails and the staff login screen.
  2. Venue time zone — do not skip this. Pick the city closest to your venue. WordPress installs on UTC, and every clock in Venyall runs on this setting: when online sales close, which day a show belongs to, the poster screens, and the door screen's 10 AM "new day" rollover. The Status tab shows a red warning until it is set. (This is the same setting as WordPress's Settings → General, just put where you need it.)
  3. Public contact email — where buyers reply. Problem alerts go to — if a card is charged but the ticket fails to save, this inbox is told immediately. Use one someone reads.
  4. Sales tax rate. Your local rate as a percentage, e.g. 9.75. Enter 0 if you do not collect tax on tickets.
  5. Card fees. Stripe's standard US pricing is 2.9% + 30¢; check your own Stripe pricing page. With Customer pays tax and card fees ticked, a $10 ticket shows as $10 plus tax and fee at checkout and the artist settlement is based on the full $10.
  6. Sales rules. Max tickets per order; how many hours past midnight online sales stay open on show night (3 = 3 AM); the time of day a show's door price replaces its advance price; and a default room capacity for shows that do not set their own (0 = no limit).
  7. Optional tip prompt. Ask buyers to add a few dollars for the venue. Tips are tracked separately and never included in artist settlements. You can write {tip_amount} in the wording. Fill in the "second ask" fields only if you want one more polite pitch after a "No thanks".
  8. After they buy. The heading and message on the thank-you screen and receipt email. {venue_name} and {event_title} are filled in for you.
  9. Door list labels — what your comp categories are called on the settlement sheet (guest list, band members, regulars…).
  10. Usual door times — e.g. 6:00 PM, 9:00 PM. The upcoming-shows audit (Part 5) flags any show whose doors are at a different time, which catches typos like 8:00 AM.
  11. Meta (Facebook) pixel ID — your venue's pixel, if you run Meta ads. Venyall fires it on every show page (ViewContent), the checkout (InitiateCheckout) and the receipt (Purchase, with the order value and the Stripe charge id). Leave it blank if a tag manager already installs your pixel: Purchase still reaches any pixel on the page, and the receipt pushes a ticket_purchase event with orderValue and orderId to the data layer for tag-manager triggers. Promoters and bands add their own pixel on the show itself (Part 5), and every pixel listed gets every event.
  12. Click Save Settings at the bottom.

Step 2 — Stripe tab: keys and webhooks

Stripe tab
Ticketing → Stripe. Red "Missing" badges disappear as you paste each secret.
  1. Get your two API keys. In the Stripe dashboard go to Developers → API keys. Copy the Publishable key (starts pk_live_) and the Secret key (starts sk_live_; Stripe shows it once when you reveal it). Paste both into the Stripe tab and save.
    Treat the secret key like a bank password. Never paste it into email or chat. If it ever leaks, roll it in Stripe and paste the new one here.
  2. Create the ticket webhook. A webhook is how Stripe tells your site "this payment succeeded". In Stripe go to Developers → Webhooks → Add endpoint and enter:
    • Endpoint URL: https://yoursite.com/wp-json/venyall/v1/stripe-webhook
    • Event to listen for: payment_intent.succeeded
    After saving, open the endpoint, click Reveal under Signing secret (starts whsec_), and paste it into Ticket fulfilment secret.
  3. Only if you will pay artists through Stripe (Part 8): add a second endpoint at …/wp-json/venyall/v1/connect-webhook listening for account.updated and charge.refunded, and paste its secret into Artist onboarding secret.
  4. Only if you will sell show recordings (Part 8): a third endpoint at …/wp-json/venyall/v1/recording-paid listening for checkout.session.completed, secret into Recording purchases secret.
  5. Only if you have a card reader: in Stripe, Terminal → Locations, open your location and copy its ID (starts tml_) into Terminal location ID.
Test mode vs live modeStripe has a "Test mode" switch. Keys from test mode start with pk_test_/sk_test_ and will not take real money. Use live keys on your real site; if the card form refuses to load, the usual cause is mixing a test key with a live key.

Step 3 — Emails tab

Emails tab
Ticketing → Emails. Subject lines and the ticket policy that prints on receipts.

Set the subject line of the ticket email and the artist invitation, and write your ticket policy (refunds, transfers). The policy appears on the thank-you screen and in the receipt email. Placeholders such as {event_title} and {venue_name} are filled in automatically.

Step 4 — Appearance tab (optional, but quick)

Appearance tab
Ticketing → Appearance. Pick a preset or set your own colours; staff screens have their own simpler palette.

Choose a colour preset for the public screens (event grid, calendar, checkout) or set your accent, background and text colours to match your site. Staff screens have a separate light/dark palette because they are working tools, not your storefront. The calendar colours by time of day (daytime, early, prime, private) are adjustable here too.

Part 4 — Make your pages and add your team

Step 5 — Create the pages

Venyall's screens live on ordinary WordPress pages. You put one shortcode (a short tag in square brackets) on each page and the plugin fills the page with that screen. Create these pages first; the checkout and staff pages are required, the rest are recommended.

Page (suggested title)Put this on the pageWhat it shows
Events[venue_events]The public grid of upcoming shows with posters and Get Tickets buttons. Usually your home page or main menu item.
Calendar[venue_calendar]A month calendar of shows.
Tickets (required)[venue_checkout]The Buy Tickets form. Every show links here automatically.
Staff Dashboard (required)[venue_staff_dashboard]The calendar, event editor and door/settlement screen for your team — one page does all three.
Sales[venue_sales_dashboard]Live sales, tips, sales tax, payables, bank transfer advisor (managers only).
Artist Directory[venue_artist_directory]Staff list of every band, with invite/onboarding status.
Artist Portal[venue_artist_portal]The page a band opens from the private link you send them.
Bar[venue_bar_dashboard]30-day bar performance (needs the Google Sheets add-on).
Sound Crew[venue_sound_crew_calendar]Where Sound Crew accounts land (recordings add-on).
  1. Add a page: Pages → Add New. Type the title, then in the content area type the shortcode exactly as shown (including the square brackets). Click Publish.
    Page editor with a shortcode
    A page containing only the shortcode. That is all the page needs — the plugin does the rest.
  2. Repeat for each page in the table. Your Pages list will look like this:
    Pages list
    Pages → All Pages after creating the Venyall pages.
  3. Tell Venyall where each page is: Ticketing → Pages & Shortcodes, pick each page from its dropdown, and save. The plugin uses these to send staff and artists to the right place after they log in.
    Pages & Shortcodes tab
    Ticketing → Pages & Shortcodes. The box office kiosk has no page — it lives at /door-pos/.
  4. Refresh permalinks once: Settings → Permalinks, click Save Changes without changing anything. This registers the /door-pos/ address for the door screen.
    Settings > Permalinks
    Settings → Permalinks → Save Changes. Do this once after activating.
  5. Add the public pages to your site menu (Appearance → Menus, or the Site Editor's navigation block) so visitors can find Events and Calendar. Do not put the staff pages in the public menu — they are login-protected, but there is no reason to advertise them.

Step 6 — Add your team

Staff log in with normal WordPress accounts but never see the WordPress admin: they land on the staff dashboard and cannot install plugins, change settings or edit your site. There are four roles, each scoped to a job.

Staff Accounts tab
Ticketing → Staff Accounts explains the roles and links to Users → Add New.
RoleCan doGive it to
Box OfficeOpen the door screen. Check people in, sell walk-ups, print the settlement sheet.The tablet at the door. One shared account for the device is fine.
Venue StaffEverything above, plus create and edit events, invite artists, view dashboards.Bookers and anyone who puts shows on the calendar.
Venue ManagerEverything above, plus settle shows and send money to artists.Whoever pays the bands. Keep this list short.
Sound CrewSee the crew calendar and log recordings. No door list, no money, no event editing.Freelance engineers (recordings add-on).
  1. Go to Users → Add New.
  2. Enter a username and the person's own email address (password resets go there).
  3. Leave Send User Notification ticked so they set their own password.
  4. Choose the role from the Role dropdown and click Add New User.
    Users > Add New
    Users → Add New. The Venyall roles appear in the Role dropdown.
Two-factor for anyone who can move moneyInstall the free Two Factor plugin and turn it on for every Venue Manager and Administrator. Also make sure Anyone can register is unticked under Settings → General.

Step 7 — Check the Status tab

Status tab
Ticketing → Status lists anything still missing. When it is empty, you can sell tickets.

Part 5 — Your first show and a test purchase

Add a show

Open your Staff Dashboard page (the one with [venue_staff_dashboard]) while logged in. The left side is the month calendar; the right side is the event editor.

Staff dashboard
The staff dashboard: calendar on the left, event editor on the right. Coloured blocks are shows; the icon shows whether a past show is settled.
  1. Basic details: title (usually the headliner's name), date, door time, optional end time.
  2. Ticketing & pricing: advance price, an optional door price (takes over at the time you set on the Selling tab), and capacity. Tick Enable DJ payout structure only for a DJ night paid as base + percentage instead of a production fee.
  3. The deal: your production fee (the flat amount the venue keeps before the artist is paid) or the DJ base pay and percentage. This drives the settlement math later, so enter it when you book the show.
  4. Artists: add each band from the directory, or use Invite New Account to email a band that is not in it yet. Adding the band here is what lets you pay them from the door screen later. Picked the wrong one? Click the ✕ beside it and press Update Event; or use Remove from this show under their card on the settlement screen, or Remove in the audit's payout popup. An artist who has already been paid for the show cannot be removed.
  5. Poster and blurb: upload the poster and write the description, or leave it to the band — they can add both from their portal link.
  6. Private or public: a private show stays off the public grid until you flip it, or until the automatic "make public on" date you set.
  7. Tickets sold elsewhere: if a promoter sells the show through their own ticketing service, paste their link into External Ticket Link. The Get Tickets button on the events grid and on the show page then opens their page in a new tab, the checkout page on your site shows a button to the same link and sells nothing, and the audit marks the row "tickets sold elsewhere" and stops asking for a ticket price or capacity. The box office can still sell at the door. Clear the field to sell the show on your own site again.
  8. Promoter tracking: a promoter or band running ads can have their Meta pixel ID entered here (several, separated by commas). Each pixel then records views, checkouts and purchases for this show alongside the venue's own pixel. Bands can also add theirs from their portal link.
  9. Click Create Event (or Update Event when editing). It appears on the calendar and, if public, on your Events page within a minute.

Repeating shows. Tick This event repeats to create a weekly or monthly run. Later, saving or deleting any date in the run opens a popup listing every future date with a checkbox (all ticked), so a new door time or poster can go to the whole run or only to the dates you leave ticked. Older runs that were only linked by name get the same popup, matched by title, and are linked properly the first time you apply a change.

Finding a show. The search box above the calendar lists every matching show on any date: upcoming ones first (green), then past ones (red). Click one to open it.

The upcoming-shows audit

Next to the calendar search box is Audit next month. It replaces the calendar with one table of every show from today through the next 31 days, with the things that go wrong before a show highlighted:

A show that is right as entered but still red (an unusual door time that is correct, say) can be ticked checked ok on its row, which turns its flags off and marks it with a green tick. A ticket price of 0 means a free show: it shows as FREE SHOW here, "Free Show" on the public grid and "Free" on the show page, with no buy button and no fee flag. A blank price is still flagged, because that is a show nobody has priced yet.

Every field in the table is editable in place: title, date, doors, end time, prices, production fee, the waived box, capacity and hidden. Change as many rows as you like; the counter at the top shows how many are unsaved, and Save all changes (or any row's Save button) writes all of them at once. The browser warns you before leaving with unsaved rows.

What the public sees

Public events grid
The Events page ([venue_events]). Each card links to the show's own page and its Buy Tickets form. A poster is generated automatically if the show has none.
Public calendar
The Calendar page ([venue_calendar]).
Checkout form
The Tickets page ([venue_checkout]). Quantity, name, email, then the card. The buyer is asked to confirm their email address before the card is charged — mistyped emails were the number-one reason receipts "never arrived".

Make one real purchase — do not skip this

  1. Create a test show a few days out, price $1, capacity 2.
  2. Open its public page and buy a ticket with a real card.
  3. Confirm all four: the thank-you screen appears (and refreshing it does not charge you again); the receipt email arrives; your name is on the show's will-call list; the charge is in your Stripe dashboard.
  4. Refund the $1 in Stripe and delete the test show. If any of the four failed, see Part 9 before selling real tickets.

Part 6 — Show night

The door screen (box office kiosk)

On the door tablet, open https://yoursite.com/door-pos/ and sign in with the Box Office account once — it stays signed in. The screen takes over the whole browser window and is built for fingers, not a mouse. It shows tonight's shows in the dropdown and switches to the next show automatically an hour before doors. The clock in the corner is venue time, even if the tablet is set to another zone.

Door POS screen
The door screen at /door-pos/. Left: walk-up sales and comp counters. Right: the will-call list with one line per ticket. A green heart marks a buyer who added a tip.
ButtonWhat it does
Check InMarks that ticket as arrived. Multi-ticket orders show as "1 of 3", "2 of 3"… so a group can arrive separately. Tap again to undo.
Search namesFilters the list as you type (an on-screen keyboard appears on tablets).
Log Cash SaleEnter how many walk-ups paid cash at the door price. Counts toward capacity and the settlement.
Connect ReaderIn the top bar beside Refresh Data. A red dot means this screen is not paired with the card reader; green with "Reader Connected" means it is. Press it to pair, or to drop a stale pairing and pair again. The screen also keeps trying by itself every few seconds, so a reader that was still starting up when the computer came on connects on its own. If it cannot, the button tells you why (no reader found, or the reader is in use by another device).
Charge CardOnly with the card reader add-on. Enter the quantity; tax and card fee are added and the reader lights up. "Reader Disconnected" means the reader is asleep or not on the same Stripe location.
Guest List / Band Members / RegularsTap + and − to count comps. These feed the headcount but not the money.
Support Pass Check-InIf you sell a season pass (Part 8), pass holders are checked in here, once per pass per show.
Past ShowsLoad an earlier show to review or reprint it (read-only).
Print SummaryPrints the end-of-night sheet: sales, comps, cash vs. card, and the artist's pay.

How the card reader connects. The Stripe reader is an internet reader: it joins your wifi and reports itself to Stripe, and the door screen never talks to it directly. The screen asks Stripe which readers are at your location and asks Stripe to pair it with one. So the reader must be on, finished starting (a minute or two) and showing its home screen, and the screen has to ask after that. Any computer, tablet or laptop that opens /door-pos/ and signs in as the box office pairs the same way, with no cables or drivers; press Connect Reader if it has not paired itself. Only one screen should be charging cards at a time, so if the door computer is replaced by a tablet, finish on one device before switching. If the button keeps saying no reader was found, check the reader in the Stripe Dashboard under Terminal → Readers: it should show Online, at the location entered under Ticketing → Stripe.

Settling up (the Door List)

From the staff dashboard, open the show and click Door Dashboard & Settlement. This is the manager's screen for closing out a show. It needs the Venue Manager role because the buttons on it move money.

Door list settlement screen
The settlement screen for one show. Gross pool, what the band got in cash, what went through Stripe, and the unpaid balance.

How the math works. The gross pool is online sales + card walk-ups + cash walk-ups (face value, before tax and fees). The venue takes its production fee out of the cash drawer first; whatever cash is left goes to the band in hand. If the drawer did not cover the fee, the rest of the fee comes out of the online/card money, and the band's remaining share is paid through Stripe. The Unpaid Balance box is what the band is still owed electronically.

  1. Check the numbers — the walk-up counts come from the door screen; online sales are automatic. Bar sales and headcount appear at the top if the bar add-on is on.
  2. Pay the band: the amount in the band's card is pre-filled with what the math says. Click Pay Account to send a Stripe transfer to their connected account. The card turns green and shows PAID. Use + Pay More for a top-up; there is no undo for a transfer, because the money has moved.
  3. Record the venue cut: the venue's own card is bookkeeping only (no money moves) — it tells the sales dashboard how much of the Stripe balance is yours.
  4. Paid them in cash instead? Click Mark Paid Externally so the show stops showing as unpaid.
  5. Fee not collected? If the door staff forgot to hold back the production fee and the band walked with all the cash, click Fee Not Collected – Waive. The fee becomes $0 for this show only (undo available) and every other screen agrees.
  6. Export PDF gives you the settlement sheet for your records or the band.
  7. Door staff tapped a cash sale twice? Under the walk-up lines, click Correct walk-up counts. Type the cash and card ticket counts and face-value dollars as they should be, add a note, and save. The settlement, the calendar tick and the sales dashboard all follow the corrected numbers, and the old figures stay in a log on the show. Card corrections only change the count; the Stripe charge itself is untouched, so refund from Stripe if money has to go back.

Recordings. If the sound crew uploaded recordings for the show, a Recordings table sits under Band Payouts: each file, the engineer who recorded it, the tier, and whether the band has bought it yet (green YES with the amount and download count, amber NOT YET with the price, blue COMP for a free one). It is read-only here; comping and settling the engineer happen on the crew calendar and the Sales dashboard.

Refunds and cancellations

Refunds are made from inside Venyall, not by hand in Stripe, so the will-call list, the capacity count, the artist's payout, the tips and the sales-tax month all drop the ticket at the same moment the money goes back. A refunded ticket is never deleted: it stays on record, flagged, and simply stops counting.

One buyer. On the settlement screen (Door Dashboard & Settlement), every name on the will-call list has a Refund button. It offers two choices:

A whole show. In the event editor, next to Delete, is Cancel show & refund tickets. It refunds every online charge and every box-office card sale for that show through Stripe, takes every ticket (including comps) off the list, emails every buyer whose refund went through, closes ticket sales, and marks the show Cancelled on the public grid, both calendars and the show page. The show itself stays in your calendar (grey, marked CANCELLED) so the record is there; delete it when you are done with it, or Undo cancellation if the show is back on. The wording of the cancellation email is on the Emails tab.

Deleting a show with tickets sold does the same refunds first and only moves the show to the Trash once every refund has gone through. If Stripe refuses a refund (a closed card, an outage), that show stays live with its buyers still on the list, you see exactly which refund failed and why, and pressing the button again retries only the ones that failed.

Repeating shows. Saving or deleting a date that belongs to a repeating series opens a list of every future date in the run, each with a checkbox (all ticked to start). Untick the dates you want left alone. For a delete, each date shows how many paid tickets it has and how much would be refunded, so you can see the money before you press the button.

Refunds made in the Stripe dashboardIf you refund a charge from Stripe itself, Venyall hears about it and takes the ticket off the list, provided your Artist onboarding webhook also listens for the charge.refunded event (Appendix). Without that, use Remove from list only afterwards.

Part 7 — Money: the sales dashboard

The Sales page ([venue_sales_dashboard]) is the manager's money screen. It is organised into five numbered sections in the order you use them.

Sales dashboard
The sales dashboard. Totals at the top update live; the sections below are Live Sales, Bank Transfer, Sales Tax, Payables and the Engineer Roster.

1 · Live Sales

A one-line summary of the last 24 hours. Click Show all sales to expand the full list of recent orders (buyer, event, quantity, tip).

∞ · Since Day One

Lifetime totals: tickets sold, face value, tips, and service fees fans did not pay. Press Rebuild from Stripe and it reads every charge in your Stripe account in chunks (with a progress readout), so it covers your whole history including card-reader walk-ups at the door, not just what the website recorded. Cash sales, passes, comps and refunds are left out. The table breaks sales down by ticket price with online and door counts; the service fee per ticket boxes are editable, with presets for common ticketing-company fee structures, so you can show what fans saved against any competitor. Download CSV gives one row per ticket.

2 · Bank Transfer

Stripe pays your balance to your bank, but not all of that balance is yours: some is owed to artists for shows not yet settled, and advance sales for upcoming shows are spoken for. The transfer advisor reads your live Stripe balance, subtracts Hold for bands, and shows Safe to transfer now. The steps on screen are the right order:

  1. Check the numbers.
  2. Make the payout in Stripe (nothing on this page moves money).
  3. Record the transfer right away — before clearing anything — so the amount and what was owed at the time are kept together.
  4. Clear Tips, Venue Cuts and Support Pass in Payables (that money is now in the bank).
  5. Settle engineers when you actually pay them.
  6. Sales tax: mark a month filed only after you have filed and paid the state.

Below the steps, Played shows still holding money back lists any show whose band has not been fully paid through Stripe. If you paid one in cash, click Paid in cash and it stops being held. Mark all before this date settled clears old shows in one go when you first start.

3 · Sales Tax by Month

One row per month: taxable online tickets and card walk-ups, tax due, and cash door sales for reference (not taxed). After you file and pay the state, click Mark filed on that month and enter the date, amount and confirmation number. Nothing is ever erased — the record is permanent, with Undo filing for mistakes and a Download CSV button for your accountant.

4 · Payables

Tips (venue revenue), venue cuts, support-pass sales and what is owed to recording engineers, each with a Clear/Settle button. Every clear is written to Payables History with the amount, date and who did it.

5 · Engineer Roster

The list of engineers that appears in the recording form (recordings add-on).

Part 8 — Optional add-ons

All of these are switched on under Ticketing → Add-Ons. Leave them off until you need them; the plugin is a complete online ticketing system without any of them.

Add-Ons tab
Ticketing → Add-Ons: card reader, artist payouts, bar sales import, show recordings, and the show-type rules that decide which spreadsheet columns a show belongs to.

Card reader at the door

  1. In Stripe, order a Terminal reader and register it under Terminal → Locations. Copy the location ID (tml_…) into the Stripe tab.
  2. Tick Card reader on the Add-Ons tab. The door screen's Charge Card button becomes live when the reader is awake and on the same Wi-Fi.
  3. Card walk-ups are recorded by the door screen itself (with tax and fee added on top), and count toward capacity and the settlement.

Pay artists through Stripe

  1. Add the connect-webhook in Stripe (Part 3, Step 2) and tick Artist payouts on the Add-Ons tab.
  2. Open your Artist Directory page. Click Invite New Account, enter the band's name and email, and send. They receive a link to a Stripe-hosted form where they enter their own bank details — you never see them.
    Artist directory
    The Artist Directory. Each band shows Pending until Stripe confirms their account can receive money, then Ready.
  3. Once a band is Ready for payments, add them to a show and pay them from the Door List with one click (Part 6). Stripe transfers the money to their account; they get it on Stripe's normal schedule.
  4. Bands also get a private portal link for each show (the Copy Link button in the event editor's share block) where they can edit their blurb and poster, watch ticket sales, and buy a recording of the show if you sell them.

Bar sales from a Google Sheet

If your bar closeout lives in a Google Sheet, paste its published-CSV link and the column numbers on the Add-Ons tab. The door list and the Bar page then show bar sales, headcount and average spend per show, so you can see whether a show actually made money. The Show types settings decide which columns a daytime, early, late or Sunday show reads from; the defaults match a typical two-show night.

Bar dashboard
The Bar page ([venue_bar_dashboard]): 30 days of shows with bar sales, headcount and average spend.

Sell show recordings and pay the engineer

If you record shows, bands can buy the recording from their portal. On the Add-Ons tab set your formats and prices (for example Multitrack Audio $50, Program + Audio $150, Full A/V $250) and what the engineer earns per sale. Add the recording-paid webhook in Stripe. Purchases mark themselves paid, the band gets the download link, and the Sales dashboard tallies what each engineer is owed.

The download window. A recording stays available for a set number of days after it is uploaded: 21 unless you change Download window on the Add-Ons tab. When the crew adds a recording the band is emailed the portal link, the price and the deadline. One reminder goes out a few days before the deadline (Remind the artist, 5 days by default) unless they already have their files. The band's portal shows "Available until…" with the days left, and after the deadline it can no longer be bought. Wording for both emails is on the Emails tab.

What happens at the deadline. Once a day Venyall goes through the recordings that have passed their window:

The Recordings on the drive list, under the crew calendar and on the Sales dashboard, shows every recording still stored, its size, deadline and state, with +7 days to extend one, Clear now, and Mark deleted for one you removed by hand.

Connect Google Drive (optional, about ten minutes, once)

Without this, the crew uploads to Drive, sets the folder to "Anyone with the link", pastes the link into the portal, and someone deletes expired recordings by hand and ticks them off. With it, the crew only drags a folder into Drive and picks it from a list: the size fills in, the link stays private until the band pays, and expired recordings are cleared for you.

The connection uses a Google service account: a robot identity that you create and share your Recordings folder with. Nobody stays signed in and nothing expires.

  1. In Google Drive, make a folder called Recordings (or use the one you already have) with the Google account that owns your storage.
  2. Go to console.cloud.google.com, signed in to that same Google account. Create a project; call it anything, such as "Venue recordings".
  3. APIs & Services → Library, search for Google Drive API, and click Enable.
  4. IAM & Admin → Service Accounts → Create service account. Give it a name, click through the optional steps, and finish.
  5. Open the new service account, go to Keys → Add key → Create new key → JSON. A .json file downloads. Keep it private: it is a password.
  6. Copy the service account's email address (it ends in .iam.gserviceaccount.com). In Drive, right-click the Recordings folder → Share, paste that address, set it to Editor, and share.
  7. In WordPress, Ticketing → Add-Ons → Google Drive connection for recordings: paste the Recordings folder's address from your browser into Recordings folder link, open the .json file in a text editor and paste all of it into Google service account key, and save. The section should now say Connected to the folder "Recordings". The key is stored and never shown again; type DISCONNECT in that box to remove it.
If Google will not create a keyA Google Workspace organisation can block service account keys with a security policy. Your Workspace administrator can allow it for this project, or leave the connection off: everything works by pasted link and hand deletion as before.

The sound crew's routine with Drive connected

  1. On the sound Mac, once: install Google Drive for desktop and sign in. The Recordings folder appears in Finder under Google Drive.
  2. After the show: name the show's folder with the date and act, for example 2026-10-01 Blue Band, and drag it from the SSD into the Recordings folder in Finder. Drive uploads it in the background and picks up where it left off if the Mac sleeps. Half a terabyte takes about eleven hours on a 100 Mbps upload line, so leave it overnight. Drive needs working space on the Mac while it uploads; if the internal disk is small, point Drive's cache at the SSD under Drive's Preferences → Settings → Local cached files directory.
  3. When it has finished syncing: open the show from the crew calendar. Under Show Recordings, the folder is listed under "Pick the folder you dropped into Drive". Tick it, choose which act the recording is of (the show's payout artists are listed first, then your whole directory, or type a name), the engineer and the format, and add a note if you like. Send the recording email to fills in when that act has an email on file; type or correct it otherwise. The act recorded is often not the act being paid, so nobody is emailed just for being on the payout: the email and the reminder go only to the address in that box. Press Add Recording.
  4. That is all. One folder per act if the acts buy separately.

Recordings from before you connected. Automatic clearing only applies to recordings uploaded after the connection was switched on. Older ones are never swept away on their own; they sit on the list marked "uploaded before auto-clear" until you press Clear now on each.

Where cleared recordings go. Google only lets a file's owner put it in the trash. On an ordinary Drive the robot cannot do that, so it closes the link and moves the folder into _Expired - safe to delete inside Recordings. Open that folder now and then, select everything, delete, and empty the trash: that is the step that frees the space. If Recordings lives in a Workspace shared drive and the robot is a Content manager there, it trashes expired recordings itself and Google removes them after 30 days.

For the band. A big recording is a Drive folder, and Google's own "Download all" struggles above a few gigabytes. Tell bands to open the folder, choose Add shortcut to Drive, and pull it down with Google Drive for desktop, or download the files one at a time.

Give your sound crew their own login

Create users with the Sound Crew role and pick the Sound Crew page under Pages & Shortcodes. Crew log in and land on a calendar of upcoming shows; each show opens the band's portal with the recording form. They cannot see the door list, money or event editing.

Sound crew calendar
The Sound Crew page ([venue_sound_crew_calendar]).

A season pass or membership

Create an event for it (any date), and put its ID in Evergreen product event ID under Pages & Shortcodes → Advanced. It skips the sales cutoff, shows "Ongoing" instead of a date, and pass holders are checked in from the door screen's Support Pass button. Pass sales are tallied separately on the Sales dashboard.

Part 9 — When something goes wrong

SymptomCause and fix
Receipt emails do not arriveAlmost always your host being blocked by Gmail/Outlook, not the plugin. Install WP Mail SMTP and connect a real mailbox. Check the buyer's spam folder.
The card form does not appear on the Tickets pagePublishable key missing, or a test-mode key on a live site. Check the Stripe tab.
Show times, cutoffs or the door screen are hours offThe Venue time zone is not set (Selling Tickets tab). The Status tab warns about this.
/door-pos/ shows "Page not found"Settings → Permalinks → Save Changes once.
Door screen says "Reader Disconnected"Wake the reader; make sure it is registered to the location whose ID is on the Stripe tab and on the same network. The cash button still works.
A card was charged but no ticket appearedYou get an alert email immediately with the charge ID and buyer details; add them to the list by hand from the event editor. If it happens twice, contact your host.
An artist is stuck on PendingThey have not finished Stripe's form, or the connect-webhook is not set up. Click the Pending badge in the directory to check live.
Staff see "Security check failed"The page sat open too long or is cached. Reload. Exclude the staff pages from your caching plugin.
A payout is refusedThe screen never sends more than the show took in. If Stripe refuses, your balance may not be available yet (takes a couple of days).
Staff land on the WordPress dashboard instead of the staff pagePages & Shortcodes → Staff dashboard is not set.
BackupsYour host's backup covers the database (events, tickets, settlements). Venyall stores nothing outside WordPress, so a normal site backup is a complete backup.

Appendix

A. Shortcodes

ShortcodeScreenWho can see it
[venue_events]Public event gridEveryone
[venue_calendar]Public month calendarEveryone
[venue_checkout]Buy Tickets formEveryone
[venue_staff_dashboard]Calendar + event editor + door/settlementVenue Staff and up (settlement: Manager)
[venue_staff_calendar], [venue_event_editor], [venue_door_list]The three parts of the staff dashboard on separate pages, if you preferStaff / Staff / Manager
[venue_sales_dashboard]Sales, tax, payables, bank transferVenue Manager
[venue_transfer_advisor]Bank transfer panel on its own pageVenue Manager
[venue_artist_directory]Band directory and invitationsVenue Staff and up
[venue_artist_onboarding]Invite-a-band form on its ownVenue Staff and up
[venue_artist_portal]Band's private page (opened with their link)Anyone with the link
[venue_bar_dashboard]30-day bar performanceVenue Staff and up
[venue_sound_crew_calendar]Crew calendarSound Crew and up
[venue_recordings event_id="123"]Recordings panel for one showSound Crew and up

B. Addresses that are not pages

AddressWhat it is
https://yoursite.com/door-pos/The box office kiosk. Bookmark it on the door device.
https://yoursite.com/wp-json/venyall/v1/stripe-webhookStripe webhook: ticket payments (payment_intent.succeeded)
https://yoursite.com/wp-json/venyall/v1/connect-webhookStripe webhook: artist account status (account.updated) and refunds made in the Stripe dashboard (charge.refunded)
https://yoursite.com/wp-json/venyall/v1/recording-paidStripe webhook: recording purchases (checkout.session.completed)
https://yoursite.com/tv/A full-screen poster page for a lobby TV or signage player (Yodeck, a Chromecast, a Raspberry Pi): the next show. /tv/?show=2 for the one after, /tv/?rotate=10 to cycle every upcoming poster ten seconds each, /tv/?rotate=10&from=6&count=10 for shows 6 to 15. Updates itself as shows come and go. All listed on the Status tab.
https://yoursite.com/wp-json/venyall/v1/postersThe raw poster feed (JSON) behind the TV page, for your own signage pages. ?limit=20 for more than five.

C. Setup checklist

Done when…
☐Plugin installed and activated; WP Mail SMTP installed and connected
☐Selling Tickets tab: venue name, time zone, emails, tax rate, card fees saved
☐Stripe tab: publishable + secret key saved; ticket webhook created in Stripe and its secret pasted
☐Pages created: Events, Calendar, Tickets, Staff Dashboard, Sales (+ Artist Directory / Portal if paying artists)
☐Pages & Shortcodes tab: each page selected; Settings → Permalinks saved once
☐Staff accounts created with the right roles; two-factor on for managers
☐Status tab shows nothing missing
☐$1 test purchase: thank-you screen, receipt email, will-call entry, Stripe charge — all four confirmed, then refunded
☐Door device signed in at /door-pos/ and staying signed in

D. Where things are stored

Shows and bands are WordPress "Events" and "Bands (Payouts)" entries. Tickets are one row per ticket in a table the plugin creates. Settlements, payout ledgers and recordings are saved on each show. All settings are on the Ticketing screens. Deactivating the plugin leaves everything in place; deleting it only removes data if you tick "delete data on uninstall" first.

Venyall · venyall.com · This manual describes plugin version 3.0.