Release 3.12.0 of pretix

Oct. 26, 2020

Today, we are releasing pretix 3.12.0. Among other things, this release brings lots of features around our check-in abilities and using your own bank account for payments.

Big thanks go to Chessmaster, David Vaz, Ethan Wang, Jaakko Rinta-Filpulla, Jonathan Berger, JPolonia, Maarten van den Berg, Mie Frydensbjerg, Miguel Magalhães, Nils Schneider, Pernilla Näsfors Östmar, Sohalt, Svyatoslav, tlm06, and Tobias Sundgren who contributed to this release. ❤️

pretix 3.12.0 is now available for installation via pip. The new docker images will appear on Docker Hub over the next few hours. All customers of pretix Hosted are already using the new version and do not need to take any action.

New check-in features

In the last month, we built a number of features related to ticket scanning, making our feature set more suitable to use cases that came up recently, such as large installations with lots of entries and hundreds of thousands of tickets, or self-service check-in situations.


You can now define multiple gates in the system and assign each of your device to those gates. You can use this to model different entrance and exit areas of your location. Whenever a ticket is scanned, not only the device will be stored but also the gate that this device currently belongs to. This makes it possible for you to run reports on your visitor flow based on the entrances and exits they use at various times, and improve planning of your visitor flow and staff assignments.

Auto exit

If you use pretixSCAN to track both entries and exits at your event, pretix can tell you the number of people currently inside your venue. However, in reality you often have a number of people who are not being scanned at the exit, either because they lost their ticket, or for some other reason. In this case, especially at a multi-day event, the system will report more people inside your venue than actually correct.

Starting with 3.12, you can configure a time of day in your check-in lists everyone will be checked out at automatically. For example, if you're sure your venue is empty during the night, you can set it to midnight and the system will automatically mark everyone as absent who is still checked in at that time.

Kiosk mode (Android)

pretixSCAN Android now supports a kiosk mode, which hides all menus that shouldn't be accessible to your event's visitors. Additionally, the interface has been tweaked to use larger symbols and font sizes whenever pretixSCAN is run on a tablet-sized device. This makes pretixSCAN suitable to be used as a self-service scanning device without someone specifically operating it.

We're extending our hardware offering and are able to supply you with specialized hardware to be used for any kind of self-scanning situation, just reach out to us and let's talk! And yes, we can combine this with automated badge printing, too.

Auto event selection

pretixSCAN can now automatically configure itself to the event that is currently running or about to start. This is especially useful in a kiosk situation or in any situation with short time slots and per-time-slot check-in lists. We've implemented a heuristic that tries to figure out which event makes most sense to choose based on the current date and time (and possibly gates, if configured) and are looking forward to your real-world feedback.

This feature is currently only available in pretixSCAN on Android, and will be coming to Desktop as well.

Pluggable ticket secrets

pretix now allows to select between different kinds of ticket secrets, and allows plugins to extend that selection. If you're not familiar with ticket secrets, this is about what's written inside the QR code on a ticket. By default, pretix just uses a random value that is later checked against a database. For 99 % of events running with pretix, we believe this is still the best approach.

However, to support use cases with specific availability, stability and privacy requirements, we now also support encoding the type of ticket into the QR code itself and cryptographically signing it. For specifics, please read the new documentation chapter.

Making this extensible through plugins will make it easier to integrate with third-party scanning solutions in the future.

This feature is currently only available in pretixSCAN on Android, and will be coming to Desktop as well.

Require validated email addresses

By default, pretix allows customers to download their tickets as soon as the purchase is confirmed. This is very convenient, but has the downside of not preventing someone to sign up with completely fake data. Especially during the Covid-19 pandemic, some organizers are legally required to check that they actually have a way of reaching their attendees, so pretix now supports holding back ticket downloads until we know the email address used to purchase them actually works.

If you activate this new feature in the ticket download settings, the order confirmation page will no longer show download buttons, but instead will ask customers to check their e-mail. If the files are small enough, they're attached to the email (as they already were before), and if attaching them didn't work, the download buttons are enabled as soon as the customer clicked one of the links in the email to confirm that they received the email.

Bank transfer improvements

Using your own bank account to accept payments has long been supported in pretix by allowing you to import bank statements into pretix that will automatically be matched to unpaid orders. With this release, we've spent some time on improving these features for use cases with large data sets:

  • When importing, you can now define columns that contain the IBAN and BIC of the payer which will be stored alongside the payment, if available.

  • If IBAN and BIC data is available, bank transfer payments are now supported by pretix' refund handling. After creating refunds of such payments inside pretix, you can batch-export them either as CSV files or as SEPA wire transfer XML files that you can directly submit to your bank to process the refunds.

  • The list of unmatched bank transactions can now be filtered by date and amount.

No-show management

If you use pretix to manage a scarce resource using longer time slots, such as working spaces in a library in multi-hour intervals, nothing is more annoying than people not showing up and blocking others from using the slot instead.

We've therefore added a no-show management plugin that allows to automatically cancel orders if they have not been checked in within a configurable amount of time after the time slot started. This allows re-assigning the spot to someone else spontaneously.

Semigator integration

Semigator is a German company providing both a market place for seminars, workshops, and similar events, as well as a corporate event booking service for large industry clients. If you host workshops targeted towards German-speaking knowledge workers employed at large companies, Semigator might be an important place for you to acquire new attendees. To avoid having duplicate data sources, pretix can now export events as a Semigator event feed.

Smaller changes and bugfixes

  • Our documentation now includes a glossary explaining terms commonly used around pretix.

Ticket shop and widget

  • Week calendars now collapse days on mobile if there's a large number of events.

  • Calenders now show the end dates of events that are less than one day long.

  • The selection of weeks in the week calendar now shows specific dates.

  • The list view of dates can now be used in event series with more than 100 dates as long as no more than 50 are in the future.

  • The calendar rendering in the widget is now a little closer to the standalone shop.

  • Free events now show "fully booked" instead of "sold out".

  • The calendar view of the widget now uses additional CSS classes that encode the reason why an event is unavailable.

  • Finnish and Portuguese (Portugal) have been added as incubating languages.

  • A specific payment error message is now used if purchase is not possible because the last date of payments has passed.

  • Fixed a display bug in the widget that occurred on very large numbers of products.

  • Fixed a situation in which the "copy from above" button was wrongfully missing.

  • Fixed a bug leading to incorrect calculation of payment amounts when paying with multiple gift cards.

  • Fixed a bug leading to an inability to place an order when per-country tax rates and customer-specified prices are combined.

  • Fixed a download link on the ticket page accidentally redirecting to the order page.

  • Stripe credit card inputs are now explicitly localized.

Ticketing backend and configuration

  • When sending emails to all or a group of attendees, you can now add an attachment that will be included with all emails.

  • Our old apps pretixdroid and pretixdesk are no longer supported at all.

  • It is now possible to use name parts in all emails, and the system tries to find any name either from the invoice address or from any position.

  • A name scheme has been added that includes a salutation.

  • A setting has been added to disable the "copy from above" buttons.

  • The list of questions now shows question identifiers.

  • The import of orders with postal addresses now works correctly.

  • The PDF export of the order overview now shows both net and gross values.

  • Accidentally switching options by clicking into the white space left of a checkbox is no longer possible.

  • Viewing a check-in list now includes the date in an event series.

  • The export download of the shredder feature now has the correct file type.

  • The check-in list export now includes postal addresses.

  • The order data export now contains the order comment in the positions sheet as well.

  • The order data export now includes seating information.

  • The list of quotas can now be sorted manually.

  • The lists of quotas and check-in lists now includes the time of day in event series.

  • The time of an event is no longer shown on invoices.

  • Excluded failed and canceled payments from the gift card redemption export.

  • Fixed gift cards not being issued after an order has been changed to include a gift card product.

  • Fixed the voucher edit form to make it possible to unset the selected product or quota.

  • Fixed an incorrect calculation of values in the list of gift cards.

  • Fixed the internal name of products not being used in the order list filter.

  • Fixed the import of orders not assigning correct numbers to order positions.

  • Fixed a redirection loop in the combination of session timeouts and custom authentication backends.

  • The import of orders now throws an error when assigning duplicate ticket secretes even across events.

Runtime and server environment

  • After 30 seconds of idle time, redis connections are now tested with a ping command before they are being re-used.

  • The runperiodic command now allows to run specific tasks individually.

  • You can now set the logging level in the configuration file.

  • Fixed a performance issue in sending out download reminders.

  • Fixed a possible crash in sending out web hooks.

Updates to official plugins and tools

  • The pretix-fontpack-free plugin has been updated to version v1.6.0 to include the font Poppins.

  • The pretix-posbackend plugin has been updated to version v1.8.0 to support new features of pretixPOS.

  • The pretix-resellers plugin has been updated to version v1.8.0 to support per-reseller configuration of fees.

  • The pretix-servicefees plugin has been updated to version v1.6.0 to support the new pretix-resellers features.

Plugin API changes

REST API changes

  • Usage of the API is now possible for organizers and events with a dot in their organizer or event slug.

  • The OAuth authentication method now supports a profile scope and a approval_prompt=auto query parameter.

  • The device API now contains an endpoint for automatic event selection.

  • A new device resource has been added.

  • The check-in list status endpoint now exposes the number of people currently known as inside and uses the same algorithm to compute the number of check-ins as the backend. Also, it now returns the names of products in the event's default language.

  • The subevent resource now has a last_modified attribute.

  • The check-in list resource now has a exit_all_at attribute.

  • The mark_paid operation of the order resource and the payment confirmation operation now take a send_email parameter.

  • The ID of individual check-ins is now included in the order position resource.

Raphael Michel

Raphael is the founder and main developer of pretix. He is passionate about user-friendly, elegant software, and when he's not busy building software for conference organizers, he enjoys co-organizing con​fer​en​ces himself.

Read more blog posts

Any questions?
+49 6221 32177-50 Mo-Fr 09:00-17:00 Uhr