diff --git a/aleksis/apps/tezor/filters.py b/aleksis/apps/tezor/filters.py
index 397883fff0a581ef936fa06d31d268070923ebdc..2afa6361751917dfdb75ee5c723cb01669e7469a 100644
--- a/aleksis/apps/tezor/filters.py
+++ b/aleksis/apps/tezor/filters.py
@@ -8,14 +8,12 @@ from .models.invoice import Invoice
 class InvoicesFilter(FilterSet):
     variant = ChoiceFilter(choices=Invoice.get_variant_choices())
     status = ChoiceFilter(choices=PaymentStatus.CHOICES)
-   
-    
+
     def __init__(self, *args, **kwargs):
         super().__init__(*args, **kwargs)
         self.form.layout = Layout(
             Row("variant", "status"),
         )
-        
 
     class Meta:
         models = Invoice
diff --git a/aleksis/apps/tezor/models/invoice.py b/aleksis/apps/tezor/models/invoice.py
index 08805fedd809dcd57ae2d0bf507e863bc7d51426..223cd61d6d9ae75c22c5b32599f6a6cd367c61e4 100644
--- a/aleksis/apps/tezor/models/invoice.py
+++ b/aleksis/apps/tezor/models/invoice.py
@@ -1,4 +1,3 @@
-from django.conf import settings
 from django.contrib.contenttypes.fields import GenericForeignKey
 from django.contrib.contenttypes.models import ContentType
 from django.db import models
@@ -105,11 +104,17 @@ class Invoice(BasePayment, PureDjangoModel):
 
         super().save(*args, **kwargs)
 
-    @classmethod
-    def get_variant_choices(cls):
+    def get_variant_choices(self=None):
         choices = []
-        for variant in settings.PAYMENT_VARIANTS.keys():
-            choices.append((variant, cls.VARIANT_DISPLAY[variant][0]))
+        for variant in Invoice.VARIANT_DISPLAY.keys():
+            if (
+                self
+                and self.group
+                and self.group.client
+                and not getattr(self.group.client, f"{variant}_enabled")
+            ):
+                continue
+            choices.append((variant, Invoice.VARIANT_DISPLAY[variant][0]))
         return choices
 
     def get_variant_name(self):
diff --git a/aleksis/apps/tezor/views.py b/aleksis/apps/tezor/views.py
index 8ede4aa614fccdef7a5b9f74c78990e8d6b070e1..17cc6888b95ba049ee2495834aaf577f0b27f89b 100644
--- a/aleksis/apps/tezor/views.py
+++ b/aleksis/apps/tezor/views.py
@@ -1,4 +1,3 @@
-from django.conf import settings
 from django.core.exceptions import PermissionDenied, SuspiciousOperation
 from django.shortcuts import get_object_or_404, redirect, render
 from django.urls import reverse, reverse_lazy
@@ -48,7 +47,7 @@ class DoPaymentView(PermissionRequiredMixin, View):
         new_variant = request.GET.get("variant", None)
         if new_variant:
             if request.user.has_perm("tezor.change_payment_variant", self.object):
-                if new_variant in settings.PAYMENT_VARIANTS:
+                if new_variant in dict(self.object.get_variant_choices()).keys():
                     self.object.variant = new_variant
                     self.object.save()
                 else:
@@ -145,7 +144,9 @@ class InvoiceGroupDetailView(PermissionRequiredMixin, DetailView):
     def post(self, request, *args, **kwargs):
         r = super().get(request, *args, **kwargs)
         if self.invoices_action_form.is_valid():
-            action = self.invoices_action_form._get_actions_dict()[self.invoices_action_form.cleaned_data["action"]]
+            action = self.invoices_action_form._get_actions_dict()[
+                self.invoices_action_form.cleaned_data["action"]
+            ]
             if request.user.has_perm(action.permission):
                 self.invoices_action_form.execute()
         return r
@@ -162,7 +163,9 @@ class InvoiceGroupDetailView(PermissionRequiredMixin, DetailView):
         RequestConfig(self.request).configure(invoices_table)
         context["invoices_table"] = invoices_table
 
-        self.invoices_action_form = InvoicesActionForm(self.request, self.request.POST or None, queryset=invoices)
+        self.invoices_action_form = InvoicesActionForm(
+            self.request, self.request.POST or None, queryset=invoices
+        )
         context["action_form"] = self.invoices_action_form
 
         return context