diff --git a/api/funkwhale_api/manage/serializers.py b/api/funkwhale_api/manage/serializers.py
index d1a9ebb84b75f97873a157e48e48199aa708cfbb..c639d3a3c2ad26301c203df9c2f393df56f8e926 100644
--- a/api/funkwhale_api/manage/serializers.py
+++ b/api/funkwhale_api/manage/serializers.py
@@ -146,7 +146,7 @@ class ManageInvitationSerializer(serializers.ModelSerializer):
     def validate_code(self, value):
         if not value:
             return value
-        if users_models.Invitation.objects.filter(code=value.lower()).exists():
+        if users_models.Invitation.objects.filter(code__iexact=value).exists():
             raise serializers.ValidationError(
                 "An invitation with this code already exists"
             )
diff --git a/api/funkwhale_api/users/models.py b/api/funkwhale_api/users/models.py
index e205d04d7fdbe12ca122b27f76c00c438f70347a..ec9c39fd69a47d08f08f2a59ba20f480e8cfdb9c 100644
--- a/api/funkwhale_api/users/models.py
+++ b/api/funkwhale_api/users/models.py
@@ -152,7 +152,7 @@ class User(AbstractUser):
 
 def generate_code(length=10):
     return "".join(
-        random.SystemRandom().choice(string.ascii_lowercase) for _ in range(length)
+        random.SystemRandom().choice(string.ascii_uppercase) for _ in range(length)
     )
 
 
diff --git a/api/funkwhale_api/users/serializers.py b/api/funkwhale_api/users/serializers.py
index f857e8da68ba3df9bb559472b24f424bf72559d1..4389512650327a2da66fcd35fee362106814d43a 100644
--- a/api/funkwhale_api/users/serializers.py
+++ b/api/funkwhale_api/users/serializers.py
@@ -18,7 +18,7 @@ class RegisterSerializer(RS):
             return
 
         try:
-            return models.Invitation.objects.open().get(code=value.lower())
+            return models.Invitation.objects.open().get(code__iexact=value)
         except models.Invitation.DoesNotExist:
             raise serializers.ValidationError("Invalid invitation code")
 
diff --git a/api/tests/users/test_views.py b/api/tests/users/test_views.py
index 0ad67fb86910e675f842fea1292ae3383f37ad0f..723360193c6a571b9ca4b38111b96369b0cbe99d 100644
--- a/api/tests/users/test_views.py
+++ b/api/tests/users/test_views.py
@@ -52,7 +52,7 @@ def test_can_disable_registration_view(preferences, api_client, db):
 
 def test_can_signup_with_invitation(preferences, factories, api_client):
     url = reverse("rest_register")
-    invitation = factories["users.Invitation"](code="hello")
+    invitation = factories["users.Invitation"](code="Hello")
     data = {
         "username": "test1",
         "email": "test1@test.com",