diff --git a/aleksis/apps/tezor/rules.py b/aleksis/apps/tezor/rules.py
index dd255e16f7e0466da73d52d386f9cc11459baa0c..697b27ded234f5702679de89e358b13e4af6d9d3 100644
--- a/aleksis/apps/tezor/rules.py
+++ b/aleksis/apps/tezor/rules.py
@@ -102,7 +102,10 @@ change_payment_variant_predicate = (
     has_person
     & is_in_payment_status(PaymentStatus.WAITING)
     & (
-        (is_own_invoice & (has_no_payment_variant | has_payment_variant("pledge")))
+        (
+            (is_own_invoice | is_site_preference_set("payments", "public_payments"))
+            & (has_no_payment_variant | has_payment_variant("pledge"))
+        )
         | has_global_perm("tezor.change_payment_variant")
         | has_object_perm("tezor.change_payment_variant")
     )