Release 4.1.0 of pretix

June 30, 2021

Today, we are releasing pretix 4.1.0. This release introduces scheduled emails and lots of little features.

Big thanks go to Abdullah, digitalesIch, Fabian, Frank, Faakko Rinta-Filppula, lapor-kris, Maico Timmermann, Mohamed Tawfix, and Tim Neumann who contributed to this release. ❤️

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

Scheduled emails

pretix has always been able to send emails to all your attendees to let them know about important information or remind them about an upcoming event. However, when running many events, this quickly becomes hard to keep track of. pretix 4.1 now introduces the option to schedule emails that will be sent to your attendees automatically.

To make this really useful for our clients running large numbers of events or event series, you can also schedule this dynamically. For example, you can schedule an email to be sent automatically at 3pm one day before the day of the event, without needing to configure it for each event individually.

Check-in history

Historically, pretix only stored successful ticket scans in a structured manner. Failed scans were (under some conditions) listed in the order log, but it was not possible to do reports or exports based on failed scans.

Starting with pretix 4.1, pretix stores all check-ins regardless of their result. A new "Check-in history" view allows you to inspect and filter all check-ins happening in the system, including the reasons for failed check-ins. In a large event, this helps you to easily spot if something is going wrong at the entrance from the comfort of your desk.


We've released a new plugin "Double-Opt-In Step" which allows you to require your customers to validate their email address before they can even create an order. This can be useful if you need to ensure email addresses are working for legal reasons, but it can also be a powerful tool to fight against spam registrations in free events.

Of course, this also works properly in combination with customer accounts, ensuring only customer accounts with a validated email address will be used.

Smaller changes and bugfixes

Ticket shop and widget

  • A bug has been fixed that caused the week calendar to show the next week already if the last event of the current week already started (but is still running).

  • The event calendar no longer shows a scroll bar on small screens if the event names contain very long words.

  • Password recovery for customer accounts no longer treats email addresses case-sensitively. Email addresses are now also always converted to lowercase.

  • A performance issue has been fixed that prevented use of the "change order" feature in event series.

  • Creating a new customer account is no longer offered during checkout if an existing membership is required for the purchase.

  • The "frontpage text" is now shown in embedded environments such as the pretix Button or our Facebook integration as well.

  • It is no longer possible to sign up for the waiting list for a past event.

  • Cancellation requests are no longer wrongly created for free or unpaid orders.

  • Organizer-level emails now use the correct sender email address.

  • Various new caching mechanisms have been introduced to improve performance.

  • The widget now correctly links to the AGPL license declaration.

  • The widget now fails gracefully if it receives a 429 status code.

  • The widget JavaScript code is now minimized to reduce bandwidth.

Ticketing backend and configuration

  • You can now add a "custom follow-up date" to an order, which will mark the order as "to do" in the list of orders starting on this date. You can use this to implement custom manual workflows inside pretix.

  • When creating a new event and only one organizer is available, the language selection is now prefilled with the languages of the organizer.

  • The list of customers can now be filtered by various attributes.

  • The detail view of a customer now allows to send a password reset with the click of a button.

  • Cancelling an order that includes a membership now also cancels that membership.

  • Waiting list notification emails now support new placeholders such as {subevent_date_from} in event series.

  • Check-in: Scanning a product that is not part of the check-in list now yields a new error message.

  • Check-in: Scanning revoked ticket codes now shows a more precise error message.

  • The "ticket code" button in the order detail view now shows the first characters of the ticket code as well.

  • When importing orders, you can now use more common date and time formats to select an event in an event series.

  • An incorrect ordering of columns in the "order data" exporter has been fixed.

  • Reactivating a canceled order now correctly checks if a seat has been re-sold in the meantime.

  • A new setting in the organizer settings allows you to prevent search engines from indexing your organizer page.

  • PayPal: If the sale ID is not known for a specific payment, an attempt to fetch it will now be made before we try a refund.

  • Stripe: Error handling during refunds has been improved.

  • A bug has been fixed that prevented setting the "ignore for event availability" flag in quotas when editing event series dates in bulk.

  • A bug in batch-selecting items on the waiting list have been fixed.

  • Pagination on the list of teams has been fixed.

  • Performance of team search has been improved.

  • Cloning events no longer leads to proposed slugs like event-2-2-2.

  • Creating a new event as part of a staff session no longer causes new teams to be created.

  • Cancelling an empty event no longer crashes.

Runtime and server environment

  • The update documentation for manual installations has been changed to pass a new parameter to pip.

  • Native support for redis sentinel has been added.

  • Thumbnail images can now be JPG files instead of only PNG files as well to reduce bandwith usage and email size in some situations.

  • Error 500 pages no longer include the pretix logo.

  • You can now restrict the number of available languages through configuration.

Updates to official plugins and tools

  • The Certificates plugin has been released in version 1.5.0 to make it compatible with pretix 4.1.

  • The Offline Sales plugin has been released in version 1.0.3 to resolve issues around creating and cancelling tickets.

  • The Passbook plugin has been released in version 1.8.0 has been released to improve pass display in event series.

  • The pretixPOS plugin has been released in version 2.0.1 to fix a critical bug in cashier handling.

  • The Reports plugin has been released in version 1.10.0 to make it compatible with pretix 4.1 and add new options to the check-in reporting.

  • The Resellers plugin has been released in version 2.1.2 to make sure events are visible or invisible consistently between calendar and list view.

  • The SEPA debit plugin has been released in version 2.0.0 to introduce a block list as well as postponing debits after a given date.

  • The Seating plugin has been released in version 1.6.5 to fix a minor bug during copying dates in an event series.

  • The Shipping plugin has been released in version 1.13.0 to make it compatible with pretix 4.1 and fix a minor bug.

Plugin API changes

  • Your installed() method is now always called after the Event is saved to the database.

  • As Checkin objects can now be successfull or not, the OrderPosition.checkins relation is now called OrderPosition.all_checkins to allow a similar setup as with positions vs. all_positions.

  • We have replaced the dependency used for inlining CSS in HTML emails. Please check that your HTML emails still render correctly.

REST API changes

  • The Invoice lines resource has two new attributes fee_type and fee_internal_type if the line is created from a fee instead of a product.

  • The Event resource supports new query parameters with_availability_for and search.

  • The Quota list endpoint now supports querying availability.

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