.. spelling:: checkin Check-in lists ============== Resource description -------------------- You can create check-in lists that you can use e.g. at the entrance of your event to track who is coming and if they actually bought a ticket. You can create multiple check-in lists to separate multiple parts of your event, for example if you have separate entries for multiple ticket types. Different check-in lists are completely independent: If a ticket shows up on two lists, it is valid once on every list. This might be useful if you run a festival with festival passes that allow access to every or multiple performances as well as tickets only valid for single performances. The check-in list resource contains the following public fields: .. rst-class:: rest-resource-table ===================================== ========================== ======================================================= Field Type Description ===================================== ========================== ======================================================= id integer Internal ID of the check-in list name string The internal name of the check-in list all_products boolean If ``true``, the check-in lists contains tickets of all products in this event. The ``limit_products`` field is ignored in this case. limit_products list of integers List of item IDs to include in this list. subevent integer ID of the date inside an event series this list belongs to (or ``null``). position_count integer Number of tickets that match this list (read-only). checkin_count integer Number of check-ins performed on this list (read-only). include_pending boolean If ``true``, the check-in list also contains tickets from orders in pending state. auto_checkin_sales_channels list of strings All items on the check-in list will be automatically marked as checked-in when purchased through any of the listed sales channels. allow_multiple_entries boolean If ``true``, subsequent scans of a ticket on this list should not show a warning but instead be stored as an additional check-in. allow_entry_after_exit boolean If ``true``, subsequent scans of a ticket on this list are valid if the last scan of the ticket was an exit scan. rules object Custom check-in logic. The contents of this field are currently not considered a stable API and modifications through the API are highly discouraged. exit_all_at datetime Automatically check out (i.e. perform an exit scan) at this point in time. After this happened, this property will automatically be set exactly one day into the future. Note that this field is considered "internal configuration" and if you pull the list with ``If-Modified-Since``, the daily change in this field will not trigger a response. ===================================== ========================== ======================================================= .. versionchanged:: 3.9 The ``subevent`` attribute may now be ``null`` inside event series. The ``allow_multiple_entries``, ``allow_entry_after_exit``, and ``rules`` attributes have been added. .. versionchanged:: 3.11 The ``subevent_match`` and ``exclude`` query parameters have been added. .. versionchanged:: 3.12 The ``exit_all_at`` attribute has been added. .. versionchanged:: 3.17 The ``ends_after`` and ``expand`` query parameters have been added. Endpoints --------- .. http:get:: /api/v1/organizers/(organizer)/events/(event)/checkinlists/ Returns a list of all check-in lists within a given event. **Example request**: .. sourcecode:: http GET /api/v1/organizers/bigevents/events/sampleconf/checkinlists/ HTTP/1.1 Host: pretix.eu Accept: application/json, text/javascript **Example response**: .. sourcecode:: http HTTP/1.1 200 OK Vary: Accept Content-Type: application/json { "count": 1, "next": null, "previous": null, "results": [ { "id": 1, "name": "Default list", "checkin_count": 123, "position_count": 456, "all_products": true, "limit_products": [], "include_pending": false, "subevent": null, "allow_multiple_entries": false, "allow_entry_after_exit": true, "exit_all_at": null, "rules": {}, "auto_checkin_sales_channels": [ "pretixpos" ] } ] } :query integer page: The page number in case of a multi-page result set, default is 1 :query integer subevent: Only return check-in lists of the sub-event with the given ID :query integer subevent_match: Only return check-in lists that are valid for the sub-event with the given ID (i.e. also lists valid for all subevents) :query string ends_after: Exclude all check-in lists attached to a sub-event that is already in the past at the given time. :query string expand: Expand a field into a full object. Currently only ``subevent`` is supported. Can be passed multiple times. :query string exclude: Exclude a field from the output, e.g. ``checkin_count``. Can be used as a performance optimization. Can be passed multiple times. :param organizer: The ``slug`` field of the organizer to fetch :param event: The ``slug`` field of the event to fetch :statuscode 200: no error :statuscode 401: Authentication failure :statuscode 403: The requested organizer/event does not exist **or** you have no permission to view this resource. .. http:get:: /api/v1/organizers/(organizer)/events/(event)/checkinlists/(id)/ Returns information on one check-in list, identified by its ID. **Example request**: .. sourcecode:: http GET /api/v1/organizers/bigevents/events/sampleconf/checkinlists/1/ HTTP/1.1 Host: pretix.eu Accept: application/json, text/javascript **Example response**: .. sourcecode:: http HTTP/1.1 200 OK Vary: Accept Content-Type: application/json { "id": 1, "name": "Default list", "checkin_count": 123, "position_count": 456, "all_products": true, "limit_products": [], "include_pending": false, "subevent": null, "allow_multiple_entries": false, "allow_entry_after_exit": true, "exit_all_at": null, "rules": {}, "auto_checkin_sales_channels": [ "pretixpos" ] } :param organizer: The ``slug`` field of the organizer to fetch :param event: The ``slug`` field of the event to fetch :param id: The ``id`` field of the check-in list to fetch :statuscode 200: no error :statuscode 401: Authentication failure :statuscode 403: The requested organizer/event does not exist **or** you have no permission to view this resource. .. http:get:: /api/v1/organizers/(organizer)/events/(event)/checkinlists/(id)/status/ Returns detailed status information on a check-in list, identified by its ID. **Example request**: .. sourcecode:: http GET /api/v1/organizers/bigevents/events/sampleconf/checkinlists/1/status/ HTTP/1.1 Host: pretix.eu Accept: application/json, text/javascript **Example response**: .. sourcecode:: http HTTP/1.1 200 OK Vary: Accept Content-Type: application/json { "checkin_count": 17, "position_count": 42, "inside_count": 12, "event": { "name": "Demo Conference" }, "items": [ { "name": "T-Shirt", "id": 1, "checkin_count": 1, "admission": false, "position_count": 1, "variations": [ { "value": "Red", "id": 1, "checkin_count": 1, "position_count": 12 }, { "value": "Blue", "id": 2, "checkin_count": 4, "position_count": 8 } ] }, { "name": "Ticket", "id": 2, "checkin_count": 15, "admission": true, "position_count": 22, "variations": [] } ] } :param organizer: The ``slug`` field of the organizer to fetch :param event: The ``slug`` field of the event to fetch :param id: The ``id`` field of the check-in list to fetch :statuscode 200: no error :statuscode 401: Authentication failure :statuscode 403: The requested organizer/event does not exist **or** you have no permission to view this resource. .. http:post:: /api/v1/organizers/(organizer)/events/(event)/checkinlists/ Creates a new check-in list. **Example request**: .. sourcecode:: http POST /api/v1/organizers/bigevents/events/sampleconf/checkinlists/ HTTP/1.1 Host: pretix.eu Accept: application/json, text/javascript Content-Type: application/json { "name": "VIP entry", "all_products": false, "limit_products": [1, 2], "subevent": null, "allow_multiple_entries": false, "allow_entry_after_exit": true, "auto_checkin_sales_channels": [ "pretixpos" ] } **Example response**: .. sourcecode:: http HTTP/1.1 200 OK Vary: Accept Content-Type: application/json { "id": 2, "name": "VIP entry", "checkin_count": 0, "position_count": 0, "all_products": false, "limit_products": [1, 2], "include_pending": false, "subevent": null, "allow_multiple_entries": false, "allow_entry_after_exit": true, "auto_checkin_sales_channels": [ "pretixpos" ] } :param organizer: The ``slug`` field of the organizer of the event/item to create a list for :param event: The ``slug`` field of the event to create a list for :statuscode 201: no error :statuscode 400: The list could not be created due to invalid submitted data. :statuscode 401: Authentication failure :statuscode 403: The requested organizer/event does not exist **or** you have no permission to create this resource. .. http:patch:: /api/v1/organizers/(organizer)/events/(event)/checkinlists/(id)/ Update a check-in list. You can also use ``PUT`` instead of ``PATCH``. With ``PUT``, you have to provide all fields of the resource, other fields will be reset to default. With ``PATCH``, you only need to provide the fields that you want to change. You can change all fields of the resource except the ``id`` field and the ``checkin_count`` and ``position_count`` fields. **Example request**: .. sourcecode:: http PATCH /api/v1/organizers/bigevents/events/sampleconf/checkinlists/1/ HTTP/1.1 Host: pretix.eu Accept: application/json, text/javascript Content-Type: application/json Content-Length: 94 { "name": "Backstage", } **Example response**: .. sourcecode:: http HTTP/1.1 200 OK Vary: Accept Content-Type: application/json { "id": 2, "name": "Backstage", "checkin_count": 23, "position_count": 42, "all_products": false, "limit_products": [1, 2], "include_pending": false, "subevent": null, "allow_multiple_entries": false, "allow_entry_after_exit": true, "auto_checkin_sales_channels": [ "pretixpos" ] } :param organizer: The ``slug`` field of the organizer to modify :param event: The ``slug`` field of the event to modify :param id: The ``id`` field of the list to modify :statuscode 200: no error :statuscode 400: The list could not be modified due to invalid submitted data :statuscode 401: Authentication failure :statuscode 403: The requested organizer/event does not exist **or** you have no permission to change this resource. .. http:delete:: /api/v1/organizers/(organizer)/events/(event)/checkinlist/(id)/ Delete a check-in list. Note that this also deletes the information on all check-ins performed via this list. **Example request**: .. sourcecode:: http DELETE /api/v1/organizers/bigevents/events/sampleconf/checkinlist/1/ HTTP/1.1 Host: pretix.eu Accept: application/json, text/javascript **Example response**: .. sourcecode:: http HTTP/1.1 204 No Content Vary: Accept :param organizer: The ``slug`` field of the organizer to modify :param event: The ``slug`` field of the event to modify :param id: The ``id`` field of the check-in list to delete :statuscode 204: no error :statuscode 401: Authentication failure :statuscode 403: The requested organizer/event does not exist **or** you have no permission to delete this resource. .. http:post:: /api/v1/organizers/(organizer)/events/(event)/checkinlists/(list)/failed_checkins/ Stores a failed check-in. Only necessary for statistical purposes if you perform scan validation offline. :