diff --git a/arkindex/documents/models.py b/arkindex/documents/models.py
index 26ca7659d8da55717ab9ddfb5e347ade6f62e039..825043879fd35785f4daf19d682bff892f2b8d80 100644
--- a/arkindex/documents/models.py
+++ b/arkindex/documents/models.py
@@ -6,6 +6,7 @@ from django.core.exceptions import ValidationError
 from enumfields import EnumField, Enum
 from arkindex_common.enums import TranscriptionType, MetaType, EntityType
 from arkindex_common.ml_tool import MLToolType
+from arkindex.project.default_corpus import DEFAULT_CORPUS_TYPES
 from arkindex.project.models import IndexableModel
 from arkindex.project.fields import ArrayField
 from arkindex.project.elastic import ESTranscription, ESElement, ESEntity
@@ -81,6 +82,12 @@ class Corpus(IndexableModel):
 
         return rights
 
+    def create_default_types(self):
+        self.types.bulk_create(
+            ElementType(corpus=self, **values)
+            for values in DEFAULT_CORPUS_TYPES
+        )
+
 
 class ElementType(models.Model):
     id = models.UUIDField(default=uuid.uuid4, primary_key=True, editable=False)
diff --git a/arkindex/documents/serializers/elements.py b/arkindex/documents/serializers/elements.py
index 3fe4e8936233bec55fe6aba83a5b066b639a123c..2d27bbe05fb52c2e516c9290bfcc5646c48f9154 100644
--- a/arkindex/documents/serializers/elements.py
+++ b/arkindex/documents/serializers/elements.py
@@ -78,15 +78,7 @@ class CorpusSerializer(serializers.ModelSerializer):
             can_write=True,
             can_admin=True,
         )
-        corpus.types.create(
-            folder=True,
-            slug='folder',
-            display_name='Folder',
-        )
-        corpus.types.create(
-            slug='page',
-            display_name='Page',
-        )
+        corpus.create_default_types()
         return corpus
 
 
diff --git a/arkindex/documents/tests/test_corpus.py b/arkindex/documents/tests/test_corpus.py
index 91cc9b76a8af95b4236aa617466c3b32ccd9ccd0..a0a1bd84123f5f2685347c459da8b8ea687437f9 100644
--- a/arkindex/documents/tests/test_corpus.py
+++ b/arkindex/documents/tests/test_corpus.py
@@ -6,6 +6,7 @@ from django.urls import reverse
 from rest_framework import status
 
 from arkindex.documents.models import Corpus, Element, Right
+from arkindex.project.default_corpus import DEFAULT_CORPUS_TYPES
 from arkindex.project.tests import FixtureAPITestCase
 import datetime
 import mock
@@ -279,14 +280,23 @@ class TestCorpus(FixtureAPITestCase):
         right = corpus.corpus_right.get(user=self.user)
         self.assertTrue(right.can_write)
         self.assertTrue(right.can_admin)
-        self.assertEqual(corpus.types.count(), 2)
-        folder, page = corpus.types.order_by('slug')
-        self.assertEqual(folder.slug, 'folder')
-        self.assertEqual(folder.display_name, 'Folder')
-        self.assertTrue(folder.folder)
-        self.assertEqual(page.slug, 'page')
-        self.assertEqual(page.display_name, 'Page')
-        self.assertFalse(page.folder)
+
+        # Assert defaults types are set on the new corpus
+        self.assertCountEqual(
+            list(corpus.types.values(
+                'slug',
+                'display_name',
+                'folder',
+                'default_view',
+                'allowed_transcription'
+            )),
+            [{
+                'folder': False,
+                'default_view': False,
+                'allowed_transcription': None,
+                **values
+            } for values in DEFAULT_CORPUS_TYPES]
+        )
 
     def test_create_requires_login(self):
         response = self.client.post(reverse('api:corpus'), {
diff --git a/arkindex/project/default_corpus.py b/arkindex/project/default_corpus.py
index a4681b6373e75769e85b8db5c8c8d8b8e7bbe979..965e90f251d5a082dda57f3df308f507e32cbc1c 100644
--- a/arkindex/project/default_corpus.py
+++ b/arkindex/project/default_corpus.py
@@ -1,19 +1,41 @@
 # Default corpus attributes
+from arkindex_common.enums import TranscriptionType
+
 
 DEFAULT_CORPUS_TYPES = [
     {
-        'slug': 'volume',
-        'display_name': 'Volume',
+        'slug': 'folder',
+        'display_name': 'Folder',
         'folder': True,
-        'default_view': True
-    }, {
+        'default_view': True,
+    },
+    {
         'slug': 'page',
-        'display_name': 'Page'
-    }, {
+        'display_name': 'Page',
+    },
+    {
         'slug': 'text_line',
-        'display_name': 'Text line'
-    }, {
-        'slug': 'text',
-        'display_name': 'Text'
+        'display_name': 'Text line',
+        'allowed_transcription': TranscriptionType.Line,
+    },
+    {
+        'slug': 'illustration',
+        'display_name': 'Illustration',
+    },
+    {
+        'slug': 'decoration',
+        'display_name': 'Decoration',
+    },
+    {
+        'slug': 'chart',
+        'display_name': 'Chart',
+    },
+    {
+        'slug': 'table',
+        'display_name': 'Table',
+    },
+    {
+        'slug': 'signature',
+        'display_name': 'Signature',
     }
 ]
diff --git a/arkindex/users/api.py b/arkindex/users/api.py
index 652c9653abd93be0983d38aaffebe51d2a487a72..77cbbce5e8b43e81a022fcd81641163c16521f74 100644
--- a/arkindex/users/api.py
+++ b/arkindex/users/api.py
@@ -15,8 +15,7 @@ from rest_framework.generics import \
 from rest_framework.response import Response
 from rest_framework.exceptions import AuthenticationFailed, ValidationError, PermissionDenied
 from arkindex.project.permissions import IsAuthenticatedOrReadOnly, IsVerified
-from arkindex.project.default_corpus import DEFAULT_CORPUS_TYPES
-from arkindex.documents.models import Corpus, ElementType
+from arkindex.documents.models import Corpus
 from arkindex.users.providers import oauth_providers, get_provider
 from arkindex.users.models import User, OAuthStatus, UserScope, Scope
 from arkindex.users.serializers import (
@@ -246,10 +245,7 @@ class UserEmailVerification(APIView):
                     can_write=True
                 )
                 # Add default types
-                corpus.types.bulk_create([
-                    ElementType(corpus=corpus, **values)
-                    for values in DEFAULT_CORPUS_TYPES
-                ])
+                corpus.create_default_types()
 
             # Redirtect to home page
             url = '/'
diff --git a/arkindex/users/tests/test_registration.py b/arkindex/users/tests/test_registration.py
index 25dbfc5c62ac1d68791df693c305f2927e29cb6e..2b9ae3d87380913f0de34cd6d5f3051076cebf89 100644
--- a/arkindex/users/tests/test_registration.py
+++ b/arkindex/users/tests/test_registration.py
@@ -111,11 +111,18 @@ class TestRegistration(FixtureAPITestCase):
             list(new_corpus)
         )
         # Assert defaults types are set on the new corpus
-        self.assertListEqual(
-            list(new_corpus.get().types.values('slug', 'display_name', 'folder', 'default_view')),
+        self.assertCountEqual(
+            list(new_corpus.get().types.values(
+                'slug',
+                'display_name',
+                'folder',
+                'default_view',
+                'allowed_transcription'
+            )),
             [{
                 'folder': False,
                 'default_view': False,
+                'allowed_transcription': None,
                 **values
             } for values in DEFAULT_CORPUS_TYPES]
         )