Logo 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 »
  • Implementation and Utilities
  • View page source

Implementation and Utilities¶

This chapter describes the various inner workings that power pretix, most of them living in pretix.base. If you want to develop around pretix’s core or advanced plugins, this aims to describe everything you absolutely need to know.

Contents:

  • 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
Next Previous

© Copyright 2014-2026, rami.io GmbH.

Built with Sphinx using a theme that is based on a theme provided by Read the Docs. Imprint · Privacy