Developer Documentation
REST API
Basic concepts
Authentication
Permissions
Compatibility
Pagination
Conditional fetching
Object-level conditional fetching
List-level conditional fetching
Errors
Data types
Query parameters
Idempotency
File upload
Authentication
Token-based authentication
Obtaining an API token
Using an API token
OAuth authentication / “Connect with pretix”
Registering an application
Obtaining an authorization grant
Getting an access token
Using the API with an access token
Refreshing an access token
Revoking a token
Fetching the user profile
Device authentication
Initializing a new device
Performing API requests
Updating the software version
Device Information
Creating a new API key
Removing a device
Permissions & security profiles
Removing a device
Event selection
Resources and endpoints
Organizers
Resource description
Endpoints
Organizer settings
Events
Resource description
Endpoints
Event settings
Event series dates / Sub-events
Resource description
Endpoints
Tax rules
Resource description
Tax codes
Endpoints
Item categories
Resource description
Endpoints
Items
Resource description
Notes
Endpoints
Item variations
Resource description
Endpoints
Item bundles
Resource description
Endpoints
Item add-ons
Resource description
Endpoints
Item Meta Properties
Resource description
Endpoints
Item program times
Resource description
Endpoints
Questions
Resource description
Endpoints
Question options
Resource description
Endpoints
Quotas
Resource description
Endpoints
Seats
Resource description
Endpoints
Orders
Order resource
Order position resource
Order payment resource
Order refund resource
List of all orders
Fetching individual orders
Order ticket download
Updating order fields
Generating new secrets
Deleting orders
Creating orders
Order state operations
Generating invoices
Sending e-mails
List of all order positions
Fetching individual positions
Order position ticket download
Manipulating individual positions
Changing order contents
Order payment endpoints
Order refund endpoints
Revoked ticket secrets
Blocked ticket secrets
Invoices
Resource description
Transmission types
List of all invoices
Fetching individual invoices
Modifying invoices
Transmitting invoices
Transactions
Our financial model
Resource description
Endpoints
Vouchers
Resource description
Endpoints
Discounts
Resource description
Endpoints
Check-in
Checking a ticket in
Performing a ticket search
Annulment of a check-in
Check-in history
Check-in lists
Resource description
Endpoints
Order position endpoints
Waiting list entries
Resource description
Endpoints
Customers
Resource description
Endpoints
Sales channels
Resource description
Endpoints
Membership types
Resource description
Endpoints
Memberships
Resource description
Endpoints
Gift cards
Resource description
Endpoints
Reusable media
Resource description
Endpoints
Cart positions
Cart position resource
Cart position endpoints
Teams
Team resource
Team member resource
Team invite resource
Team API token resource
Team endpoints
Team member endpoints
Team invite endpoints
Team API token endpoints
Devices
Device resource
Device endpoints
Webhooks
Resource description
Endpoints
Seating plans
Resource description
Endpoints
Data exporters
Listing available exporters
Running an export
Downloading the result
Scheduled data exports
Scheduled export resource
Special notes on permissions
Endpoints for event exports
Endpoints for organizer exports
Data shredders
Listing available shredders
Running an export
Downloading the result
Shredding the data
Checking the result
Bank transfer
Bank import job resource
PDF ticket output
Resource description
Layout endpoints
Ticket rendering endpoint
Badges
Resource description
Endpoints
Scheduled email rules
Resource description
Endpoints
Auto check-in rules
Resource description
Endpoints
Campaigns
Resource description
Endpoints
Certificates of attendance
Certificate download
Digital content
URL interpolation and JWT authentication
API Resource description
API Endpoints
Exhibitors
REST API
App API
Secrets Import
API Resource description
API Endpoints
Offline sales
Resource description
Endpoints
Shipping
Shipping address resource
Shipping status resource
Print job resource
Endpoints
pretix Hosted billing invoices
Resource description
Endpoints
pretix Hosted reseller API
Reseller account resource
Endpoints
Rate limiting
Webhooks
Configuring webhooks
Receiving webhooks
Responding to a webhook
Debugging webhooks
API Usage Guides
Understanding the life cycle of orders
Order states
Object types
Creating an external checkout process
Creating orders
Handling payments yourself
Using pretix payment providers
Optional: Cart reservations
Plugin & core development
Concepts and Terminology
The components
Users and events
Items and variations
Quotas
Vouchers
Orders
Development setup
Obtain a copy of the source code
External Dependencies
Your local python environment
Working with the code
Run the development server
Code checks and unit tests
Working with mails
Working with periodic tasks
Working with translations
Working with the documentation
Working with frontend assets
Contributing to pretix
General remarks
Sending a patch
Coding style and quality
Code
Commits and Pull Requests
Code of Conduct
Our Pledge
Our Standards
Our Responsibilities
Scope
Enforcement
Attribution
Implementation and Utilities
Data model
User model
Organizers and events
Items
Carts and Orders
Logging
Invoicing
Vouchers
Working with URLs
URL routing
URL reversal
Implementation details
Internationalization
Forms
Useful utilities
Settings storage
SettingsSandbox
Forms
Defaults in plugins
Background tasks
Implementing a task
Tasks in the request-response flow
Sending Email
mail()
Permissions
Requiring permissions for a view
Requiring permissions in the REST API
Checking permission in code
Staff sessions
Logging and notifications
Logging changes
Sending notifications
Logging technical information
Resource locking
Time machine mode
time_machine_now()
Background tasks
Algorithms
Pricing algorithms
Computation of listed prices
Guarantees on listed prices
Computation of cart prices
Discounts
Flowchart
Rounding of taxes
Check-in algorithms
Server-side
Client-side
Ticket layout
Plugin development
Creating a plugin
Plugin metadata
Plugin registration
Signals
Registries
Views
Writing an exporter plugin
Exporter registration
The exporter class
Writing a ticket output plugin
Output registration
The output class
Writing a payment provider plugin
Provider registration
The provider class
Additional views
Writing an HTML e-mail renderer plugin
Output registration
The renderer class
Helper class for template-base renderers
Writing a template placeholder plugin
Placeholder registration
Context mechanism
The placeholder class
Helper class for simple placeholders
Signals
Writing an invoice renderer plugin
Output registration
The renderer class
Helper class for reportlab-base renderers
Writing an invoice transmission plugin
Output registration
The provider class
Writing a data shredder
Shredder registration
The shredder class
Example
Extending the import process
Import process
Column registration
The column class API
Example
Creating custom views
Control panel views
Event settings view
Frontend views
REST API viewsets
Handling cookie consent
Server-side integration
JavaScript-side integration
Pluggable authentication backends
UserManager
The backend interface
Logging users in
Data sync providers
Property mappings
Implementation examples
The OutboundSyncProvider base class
Property mapping format
Translating mappings on Event copy
General APIs
Core
Frontend
Backend
API
Plugin quality checklist
A. Meta
B. Isolation
C. Security
D. Privacy
E. Internationalization
F. Functionality
G. Code quality
H. Specific to pretix.eu
Directory structure
Translating pretix
Official and inofficial languages
Using our translation platform
NFC media
UID-based
Mifare Ultralight AES
Random UIDs
Key management
Encoding a chip
Usage
2025.11
pretix
Docs
»
Plugin & core development
»
Contributing to pretix
View page source
Contributing to pretix
¶
General remarks
Sending a patch
Coding style and quality
Code
Commits and Pull Requests
Code of Conduct
Our Pledge
Our Standards
Our Responsibilities
Scope
Enforcement
Attribution