diff --git a/aleksis/apps/tezor/migrations/0004_client_email.py b/aleksis/apps/tezor/migrations/0004_client_email.py
index c6f4a5c7b5106d312538dc16b9a94e5950044be1..d723854086d1de79ab0802f53afc5644215c82d3 100644
--- a/aleksis/apps/tezor/migrations/0004_client_email.py
+++ b/aleksis/apps/tezor/migrations/0004_client_email.py
@@ -16,4 +16,8 @@ class Migration(migrations.Migration):
             field=models.EmailField(default='', max_length=254, verbose_name='Email'),
             preserve_default=False,
         ),
+        migrations.AlterModelOptions(
+            name='invoice',
+            options={'permissions': (('send_invoice_email', 'Can send invoice by email'),)},
+        ),
     ]
diff --git a/aleksis/apps/tezor/migrations/0005_alter_fields_invoice.py b/aleksis/apps/tezor/migrations/0005_alter_fields_invoice.py
new file mode 100644
index 0000000000000000000000000000000000000000..2a966ce6e709d58cf6af8b3029a880be54711517
--- /dev/null
+++ b/aleksis/apps/tezor/migrations/0005_alter_fields_invoice.py
@@ -0,0 +1,25 @@
+# Generated by Django 3.2.12 on 2022-03-14 14:00
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('contenttypes', '0002_remove_content_type_name'),
+        ('tezor', '0004_client_email'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='invoice',
+            name='for_content_type',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='contenttypes.contenttype'),
+        ),
+        migrations.AlterField(
+            model_name='invoice',
+            name='for_object_id',
+            field=models.PositiveIntegerField(blank=True, null=True),
+        ),
+    ]
diff --git a/aleksis/apps/tezor/migrations/0006_invoice_constraints.py b/aleksis/apps/tezor/migrations/0006_invoice_constraints.py
new file mode 100644
index 0000000000000000000000000000000000000000..cdf6bee6bd74f25f66882383113fd4f80d1ab861
--- /dev/null
+++ b/aleksis/apps/tezor/migrations/0006_invoice_constraints.py
@@ -0,0 +1,23 @@
+# Generated by Django 3.2.12 on 2022-03-14 14:00
+
+from django.db import migrations, models
+import django.db.models.deletion
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('contenttypes', '0002_remove_content_type_name'),
+        ('tezor', '0005_alter_fields_invoice'),
+    ]
+
+    operations = [
+        migrations.RemoveConstraint(
+            model_name='invoice',
+            name='object_or_person',
+        ),
+        migrations.AddConstraint(
+            model_name='invoice',
+            constraint=models.CheckConstraint(check=models.Q(models.Q(('for_object_id__isnull', True), ('person__isnull', False)), models.Q(('for_object_id__isnull', False), ('person__isnull', True)), _connector='OR'), name='object_or_person'),
+        ),
+    ]