diff --git a/register/factory.py b/register/factory.py
index a03597246ede5881c1556dcb5ae5b7d599bf9fed..973d6e793e7b4abeef18708936f0b0eeef3b44fd 100644
--- a/register/factory.py
+++ b/register/factory.py
@@ -23,3 +23,5 @@ class RegistrationFactory(factory.DjangoModelFactory):
         return '{}.{}@example.net'.format(
             printable_only(self.first_name.lower()),
             printable_only(self.last_name.lower()))
+
+    phone_number = factory.Faker('phone_number', locale='fr')
diff --git a/register/migrations/0002_registration_phone_number.py b/register/migrations/0002_registration_phone_number.py
new file mode 100644
index 0000000000000000000000000000000000000000..14f20a952682c759e377f468d83a8627d1172ab4
--- /dev/null
+++ b/register/migrations/0002_registration_phone_number.py
@@ -0,0 +1,18 @@
+# Generated by Django 2.1.1 on 2018-09-20 08:11
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('register', '0001_initial'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='registration',
+            name='phone_number',
+            field=models.CharField(default='', help_text='Numéro de téléphone du lycéen (20 caractères max)', max_length=20, verbose_name='téléphone'),
+        ),
+    ]
diff --git a/register/models.py b/register/models.py
index c1b13bbe30367a8e68667062ff1e234fab4ecc76..d4966c41200ee3a37b9b324b75b5519205b6dbbb 100644
--- a/register/models.py
+++ b/register/models.py
@@ -20,6 +20,11 @@ class Registration(models.Model):
             'Adresse email personnelle du lycéen. '
             'Note : doit être une adresse mail valide.'
         ))
+    phone_number = models.CharField(
+        max_length=20, verbose_name='téléphone',
+        help_text='Numéro de téléphone du lycéen (20 caractères max)',
+        blank=False, default='',
+    )
     submitted = models.DateTimeField(
         auto_now_add=True, verbose_name='envoyé le',
         help_text="Date d'envoi du dossier d'inscription")
diff --git a/register/serializers.py b/register/serializers.py
index 5fd719050b10d77361c332b0d9ed792ca792d8f4..01cea366ada0994d6e2b0d6ef2bd5ea185d32e11 100644
--- a/register/serializers.py
+++ b/register/serializers.py
@@ -23,7 +23,7 @@ class RegistrationSerializer(serializers.ModelSerializer):
     class Meta:  # noqa
         model = Registration
         fields = ('id', 'email', 'password',
-                  'first_name', 'last_name',
+                  'first_name', 'last_name', 'phone_number',
                   'submitted', 'validated',)
 
         extra_kwargs = {
diff --git a/register/signals.py b/register/signals.py
index a5bd23700cd74da5e7cbd633a9ffb2c715085b66..05723916545d82fbd1d52383913b6884eefc2e92 100644
--- a/register/signals.py
+++ b/register/signals.py
@@ -22,6 +22,7 @@ def create_user_and_student(sender, instance: Registration,
         password=password,
         first_name=instance.first_name,
         last_name=instance.last_name,
+        phone_number=instance.phone_number,
     )
 
     Student.objects.create(
diff --git a/tests/test_users/test_user.py b/tests/test_users/test_user.py
index d51091b3f4010d02077cdb099d2e44fed710d563..79a56fcd242c8118cbb129f933a0fa51e17d6ef5 100644
--- a/tests/test_users/test_user.py
+++ b/tests/test_users/test_user.py
@@ -64,6 +64,10 @@ class UserModelTest(ModelTestCase):
                 (User.PROFILE_STUDENT, 'Lycéen'),
                 (User.PROFILE_TUTOR, 'Tuteur'),
             )
+        },
+        'phone_number': {
+            'blank': True,
+            'null': True,
         }
     }
     model_tests = {
diff --git a/users/admin.py b/users/admin.py
index 3f51c65ad568e7d053c76f4d802bafec4a3b7fdc..5131546c64907e3e684fb5d537becff1efd161f9 100644
--- a/users/admin.py
+++ b/users/admin.py
@@ -40,7 +40,7 @@ class CustomUserAdmin(UserAdmin):
     fieldsets = (
         (None, {'fields': ('email', 'password')}),
         (_('Personal info'), {'fields': (
-            'first_name', 'last_name',
+            'first_name', 'last_name', 'phone_number',
         )}),
         (_('Permissions'), {'fields': ('is_active', 'is_staff', 'is_superuser',
                                        'groups', 'user_permissions')}),
diff --git a/users/migrations/0003_user_phone_number.py b/users/migrations/0003_user_phone_number.py
new file mode 100644
index 0000000000000000000000000000000000000000..e21f92f36549728df4075addd578036a9cdf6fb9
--- /dev/null
+++ b/users/migrations/0003_user_phone_number.py
@@ -0,0 +1,18 @@
+# Generated by Django 2.1.1 on 2018-09-20 07:50
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('users', '0002_auto_20180911_2223'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='user',
+            name='phone_number',
+            field=models.CharField(blank=True, max_length=20, null=True, verbose_name='téléphone'),
+        ),
+    ]
diff --git a/users/models.py b/users/models.py
index 5831b586d9625d97d83d98dbe253194213829956..264547d35d316da3c3bb6d4c5301f2a23ec5cd61 100644
--- a/users/models.py
+++ b/users/models.py
@@ -77,6 +77,9 @@ class User(AbstractUser):
                                     choices=PROFILE_CHOICES,
                                     verbose_name='type de profil')
 
+    phone_number = models.CharField('téléphone',
+                                    max_length=20, null=True, blank=True)
+
     @property
     def student(self):
         return getattr(self, 'student', None)
diff --git a/users/serializers.py b/users/serializers.py
index 80643603a550e2cded1e7c675d45a21aff9f60b0..fa0d945045b66544a26a25ab4fe243c098ca2425 100644
--- a/users/serializers.py
+++ b/users/serializers.py
@@ -12,7 +12,7 @@ class UserSerializer(serializers.HyperlinkedModelSerializer):
     class Meta:  # noqa
         model = User
         fields = ('id', 'email', 'profile_type',
-                  'first_name', 'last_name', 'url',)
+                  'first_name', 'last_name', 'phone_number', 'url',)
         extra_kwargs = {
             'email': {'read_only': True},
             'url': {'view_name': 'api:user-detail'},