diff --git a/doc/development/api/general.rst b/doc/development/api/general.rst
index faf1ef870..f88212bd5 100644
--- a/doc/development/api/general.rst
+++ b/doc/development/api/general.rst
@@ -49,7 +49,7 @@ Backend
.. automodule:: pretix.control.signals
:members: nav_event, html_head, html_page_start, quota_detail_html, nav_topbar, nav_global, nav_organizer, nav_event_settings,
- order_info, event_settings_widget, oauth_application_registered
+ order_info, event_settings_widget, oauth_application_registered, order_position_buttons
.. automodule:: pretix.base.signals
diff --git a/src/pretix/control/signals.py b/src/pretix/control/signals.py
index 519cdc586..16b05620a 100644
--- a/src/pretix/control/signals.py
+++ b/src/pretix/control/signals.py
@@ -201,6 +201,16 @@ As with all plugin signals, the ``sender`` keyword argument will contain the eve
Additionally, the argument ``order`` and ``request`` are available.
"""
+order_position_buttons = EventPluginSignal(
+ providing_args=["order", "position", "request"]
+)
+"""
+This signal is sent out to display additional buttons for a single position of an order.
+
+As with all plugin signals, the ``sender`` keyword argument will contain the event.
+Additionally, the argument ``order`` and ``request`` are available.
+"""
+
nav_event_settings = EventPluginSignal(
providing_args=['request']
)
diff --git a/src/pretix/control/templates/pretixcontrol/order/index.html b/src/pretix/control/templates/pretixcontrol/order/index.html
index 67a6ceef3..afecd77f5 100644
--- a/src/pretix/control/templates/pretixcontrol/order/index.html
+++ b/src/pretix/control/templates/pretixcontrol/order/index.html
@@ -260,6 +260,8 @@
{{ line.subevent.name }} · {{ line.subevent.get_date_range_display }}
{% endif %}
+ {% eventsignal event "pretix.control.signals.order_position_buttons" order=order position=line request=request %}
+
{% if line.has_questions %}