diff --git a/aleksis/apps/tezor/urls.py b/aleksis/apps/tezor/urls.py
index 0c1cdfe0ee45bca5b18d7f5d75fe104bbfc8ac43..571809cf71d6d08182a261b2aa26cde2155b6844 100644
--- a/aleksis/apps/tezor/urls.py
+++ b/aleksis/apps/tezor/urls.py
@@ -3,6 +3,6 @@ from django.urls import include, path
 from . import views
 
 urlpatterns = [
-    path("empty", views.empty, name="empty"),
     path("payments/", include("payments.urls")),
+    path("invoice/<int:pk>/print", views.GetInvoicePDF.as_view(), name="get_invoice_by_pk")
 ]
diff --git a/aleksis/apps/tezor/views.py b/aleksis/apps/tezor/views.py
index c808ecb3fa1540695f9c8ab49e02859a678d9189..b44eae70b9e60f7dbdffa7ddd7540af6867b1a0d 100644
--- a/aleksis/apps/tezor/views.py
+++ b/aleksis/apps/tezor/views.py
@@ -1,10 +1,19 @@
-from django.contrib.auth.decorators import login_required
-from django.http import HttpRequest, HttpResponse
+from django.views.generic import View
 from django.shortcuts import render
 
+from rules.contrib.views import PermissionRequiredMixin
 
-@login_required
-def empty(request: HttpRequest) -> HttpResponse:
-    context = {}
+from .models.invoice import Invoice
+
+
+class GetInvoicePDF(PermissionRequiredMixin, View):
+
+    permission_required = "tezor.can_print_invoice"
+
+    def get(self, request, *args, **kwargs):
+        context = {}
+        invoice = Invoice.objects.get(id=self.kwargs["pk"])
+        context["invoice"] = invoice
+
+        return render(request, invoice.group.template_name, context=context)
 
-    return render(request, "tezor/empty.html", context)