Ticket141
Ticket shop, admission, and settlement for organizers and clubs – open source, on your own web space, payments via Stripe, embedded into your own website with two lines. Presale, box office, QR scanner on your phone, and the settlement afterwards: all in one small PHP application without a database server.
What Ticket141 does
Categories, quotas & access codes
Standing, grandstand, VIP: price, quota, min/max per order, and sales window per category. Hidden categories for sponsors and guest lists via access code, member prices via Gym141.
Coupons
Percentage, amount, or free ticket – global or per event and category, with redemption limit, validity, and minimum order value. Pre-fillable via link.
Stripe Checkout
Cards, Apple Pay, Google Pay, and depending on your account EPS, Klarna, or SEPA. Reservations with expiry, signed webhook, confirmation e-mail with all tickets.
Box office
On-site sales in the admin: cash, card, bank transfer, or free – without fees and independent of the presale window. Dedicated "box office" role for helpers.
Admission scanner with QR on your phone
Every ticket carries a QR code. At the door, the phone scans with its camera in the browser – or a USB/Bluetooth scanner. Guest list search, undo, live figures, "admission" role.
Settlement with XLSX export
Revenue by category and payment method, discounts, fees, refunds, VAT share, and payout amount per event. Numbered closing snapshot, export as XLSX or CSV.
Embed widget in one line
The shop runs inside your own website: one div, one script, done. Height adjusts automatically, payment goes securely through Stripe.
API & Webhooks
JSON API with keys and scopes (read, check-in, write) for your own purchase pages, registers, and scanner apps. HMAC-signed webhooks on purchase, cancellation, and check-in.
Integrations: Event141, Gym141, Task141
Import events from Event141 and embed the shop there, member prices and sales overview in Gym141, a task checklist per event in Task141.
Screenshots
Ticket141 with a demo event ("Fight Night Demo") – click to enlarge.
How to embed the shop
Ticket141 runs on your web space, yet the shop appears inside your existing website – no plugin, no framework. Two lines wherever you want it, fill in the event slug, done:
<div data-ticket141="slug"></div>
<script src="https://tickets.example.org/embed.js" defer></script>
The widget height adjusts automatically; access code, coupon, and return link can be passed as attributes. Without JavaScript, a plain iframe works too, and if you want a fully custom purchase page, use the JSON API. Clubs on Gym141 add the shop as a content block – no code at all.
Download & updates
Ticket141 is open source (MIT). Download the ZIP, upload it to your web space, open setup.php, enter your Stripe keys – done. Later versions install with one click from Updates in the admin; the database is backed up first, your data and uploads stay untouched.
New in 0.1.1:Neue Option ca_bundle in app/config.php fuer Server ohne CA-Store (Stripe und Kopplungen). Stripe-Checkout end-to-end mit Testschluessel verifiziert.
Manifest for automatic updates: manifest.json · Requires PHP 8.1+
Pricing
Open source stays free – one active event with everything you need on the day. Pro comes in when several events run in parallel or other systems need to connect.
Stripe fees are charged directly by Stripe; Ticket141 takes no commission. All prices incl. VAT, billed securely via Stripe in the DevWorld customer portal.



