PDF ticket output¶
The PDF ticket output plugin provides a HTTP API that exposes the various layouts used to generate PDF tickets.
Resource description¶
The ticket layout resource contains the following public fields:
Field |
Type |
Description |
---|---|---|
id |
integer |
Internal layout ID |
name |
string |
Internal layout description |
default |
boolean |
|
layout |
list |
Dynamic layout specification. Each list element corresponds to one dynamic element of the layout. The current version of the schema in use can be found here. Submitting invalid content can lead to application errors. |
background |
URL |
Background PDF file |
item_assignments |
list of objects |
Products this layout is assigned to (currently read-only) |
├ sales_channel |
string |
Sales channel (defaults to |
└ item |
integer |
Item ID |
Layout endpoints¶
- GET /api/v1/organizers/(organizer)/events/(event)/ticketlayouts/¶
Returns a list of all ticket layouts
Example request:
GET /api/v1/organizers/bigevents/events/democon/ticketlayouts/ HTTP/1.1 Host: pretix.eu Accept: application/json, text/javascript
Example response:
HTTP/1.1 200 OK Vary: Accept Content-Type: text/javascript { "count": 1, "next": null, "previous": null, "results": [ { "id": 1, "name": "Default layout", "default": true, "layout": {…}, "background": null, "item_assignments": [] } ] }
- Query Parameters:
page – The page number in case of a multi-page result set, default is 1
- Parameters:
organizer – The
slug
field of a valid organizerevent – The
slug
field of a valid event
- Status Codes:
200 OK – no error
401 Unauthorized – Authentication failure
403 Forbidden – The requested organizer does not exist or you have no permission to view it.
- GET /api/v1/organizers/(organizer)/events/(event)/ticketlayouts/(id)/¶
Returns information on layout.
Example request:
GET /api/v1/organizers/bigevents/events/democon/ticketlayouts/1/ HTTP/1.1 Host: pretix.eu Accept: application/json, text/javascript
Example response:
HTTP/1.1 200 OK Vary: Accept Content-Type: text/javascript { "id": 1, "name": "Default layout", "default": true, "layout": {…}, "background": null, "item_assignments": [] }
- Parameters:
organizer – The
slug
field of the organizer to fetchevent – The
slug
field of the event to fetchid – The
id
field of the layout to fetch
- Status Codes:
200 OK – no error
401 Unauthorized – Authentication failure
403 Forbidden – The requested organizer/event does not exist or you have no permission to view it.
- GET /api/v1/organizers/(organizer)/events/(event)/ticketlayoutitems/¶
Returns a list of all assignments of items to layouts
Example request:
GET /api/v1/organizers/bigevents/events/democon/ticketlayoutitems/ HTTP/1.1 Host: pretix.eu Accept: application/json, text/javascript
Example response:
HTTP/1.1 200 OK Vary: Accept Content-Type: text/javascript { "count": 1, "next": null, "previous": null, "results": [ { "id": 1, "layout": 2, "item": 3, "sales_channel": web } ] }
- Query Parameters:
page – The page number in case of a multi-page result set, default is 1
- Parameters:
organizer – The
slug
field of a valid organizerevent – The
slug
field of a valid event
- Status Codes:
200 OK – no error
401 Unauthorized – Authentication failure
403 Forbidden – The requested organizer does not exist or you have no permission to view it.
- POST /api/v1/organizers/(organizer)/events/(event)/ticketlayouts/¶
Creates a new ticket layout
Example request:
POST /api/v1/organizers/bigevents/events/sampleconf/ticketlayouts/ HTTP/1.1 Host: pretix.eu Accept: application/json, text/javascript Content-Type: application/json { "name": "Default layout", "default": true, "layout": […], "background": null, "item_assignments": [] }
Example response:
HTTP/1.1 201 Created Vary: Accept Content-Type: application/json { "id": 1, "name": "Default layout", "default": true, "layout": […], "background": null, "item_assignments": [] }
- Parameters:
organizer – The
slug
field of the organizer of the event to create a layout forevent – The
slug
field of the event to create a layout for
- Status Codes:
201 Created – no error
400 Bad Request – The layout could not be created due to invalid submitted data.
401 Unauthorized – Authentication failure
403 Forbidden – The requested organizer/event does not exist or you have no permission to create this resource.
- PATCH /api/v1/organizers/(organizer)/events/(event)/ticketlayouts/(id)/¶
Update a layout. You can also use
PUT
instead ofPATCH
. WithPUT
, you have to provide all fields of the resource, other fields will be reset to default. WithPATCH
, you only need to provide the fields that you want to change.Example request:
PATCH /api/v1/organizers/bigevents/events/sampleconf/ticketlayouts/1/ HTTP/1.1 Host: pretix.eu Accept: application/json, text/javascript Content-Type: application/json Content-Length: 94 { "name": "Default layout" }
Example response:
HTTP/1.1 200 OK Vary: Accept Content-Type: application/json { "id": 1, "name": "Default layout", "default": true, "layout": […], "background": null, "item_assignments": [] }
- Parameters:
organizer – The
slug
field of the organizer to modifyevent – The
slug
field of the event to modifyid – The
id
field of the layout to modify
- Status Codes:
200 OK – no error
400 Bad Request – The layout could not be modified due to invalid submitted data
401 Unauthorized – Authentication failure
403 Forbidden – The requested organizer/event does not exist or you have no permission to change this resource.
- DELETE /api/v1/organizers/(organizer)/events/(event)/ticketlayouts/(id)/¶
Delete a layout.
Example request:
DELETE /api/v1/organizers/bigevents/events/sampleconf/ticketlayouts/1/ HTTP/1.1 Host: pretix.eu Accept: application/json, text/javascript
Example response:
HTTP/1.1 204 No Content Vary: Accept
- Parameters:
organizer – The
slug
field of the organizer to modifyevent – The
slug
field of the event to modifyid – The
id
field of the layout to delete
- Status Codes:
204 No Content – no error
401 Unauthorized – Authentication failure
403 Forbidden – The requested organizer/event does not exist or you have no permission to delete this resource.
Ticket rendering endpoint¶
- POST /api/v1/organizers/(organizer)/events/(event)/ticketpdfrenderer/render_batch/¶
With this API call, you can instruct the system to render a set of tickets into one combined PDF file. To specify which tickets to render, you need to submit a list of “parts”. For every part, the following fields are supported:
orderposition
(integer
, required): The ID of the order position to render.override_channel
(string
, optional): The sales channel ID to be used for layout selection instead of the original channel of the order.override_layout
(integer
, optional): The ticket layout ID to be used instead of the auto-selected one.
If your input parameters validate correctly, a
202 Accepted
status code is returned. The body points you to the download URL of the result. Running aGET
request on that result URL will yield one of the following status codes:200 OK
– The export succeeded. The body will be your resulting file. Might be large!409 Conflict
– Your export is still running. The body will be JSON with the structure{"status": "running"}
.status
can bewaiting
before the task is actually being processed. Please retry, but wait at least one second before you do.410 Gone
– Running the export has failed permanently. The body will be JSON with the structure{"status": "failed", "message": "Error message"}
404 Not Found
– The export does not exist / is expired.
Warning
This endpoint is considered experimental. It might change at any time without prior notice.
Note
To avoid performance issues, a maximum number of 1000 parts is currently allowed.
Example request:
POST /api/v1/organizers/bigevents/events/sampleconf/ticketpdfrenderer/render_batch/ HTTP/1.1 Host: pretix.eu Accept: application/json, text/javascript Content-Type: application/json { "parts": [ { "orderposition": 55412 }, { "orderposition": 55412, "override_channel": "web" }, { "orderposition": 55412, "override_layout": 56 } ] }
Example response:
HTTP/1.1 200 OK Vary: Accept Content-Type: application/json { "download": "https://pretix.eu/api/v1/organizers/bigevents/events/sampleconf/ticketpdfrenderer/download/29891ede-196f-4942-9e26-d055a36e98b8/3f279f13-c198-4137-b49b-9b360ce9fcce/" }
- Parameters:
organizer – The
slug
field of the organizer to fetchevent – The
slug
field of the event to fetch
- Status Codes:
202 Accepted – no error
400 Bad Request – Invalid input options
401 Unauthorized – Authentication failure
403 Forbidden – The requested organizer/event does not exist or you have no permission to view this resource.