diff --git a/beat/web/accounts/api.py b/beat/web/accounts/api.py
index 0b20662bec3b25d55a612aed3cf2eab45c283d7c..fca48e6175dcaefa4b561acde91f8b9cb315d717 100644
--- a/beat/web/accounts/api.py
+++ b/beat/web/accounts/api.py
@@ -40,6 +40,7 @@ from rest_framework.response import Response
 from rest_framework import status
 
 from .serializers import FullSupervisionTrackSerializer
+from .serializers import SupervisionTrackUpdateSerializer
 
 from ..common.utils import validate_restructuredtext
 from ..ui.templatetags.markup import restructuredtext
@@ -58,6 +59,7 @@ from .permissions import IsGodfatherAndAuthor
 
 from ..common.responses import BadRequestResponse, ForbiddenResponse
 
+import datetime
 import re
 
 import simplejson as json
@@ -95,3 +97,46 @@ class GodfatherListView(generics.ListAPIView):
 
 
 #----------------------------------------------------------
+
+
+class BaseUpdateSupervisionTrackView(generics.UpdateAPIView):
+    model = SupervisionTrack
+    serializer_class = SupervisionTrackUpdateSerializer
+
+    def get_permissions(self):
+        permission_classes = [permissions.IsAuthenticated, IsGodfatherAndAuthor]
+
+        self.permission_classes = permission_classes
+
+        return super(BaseUpdateSupervisionTrackView, self).get_permissions()
+
+
+#----------------------------------------------------------
+
+
+class GodfatherAddSuperviseeView(BaseUpdateSupervisionTrackView):
+    permission_classes = BaseUpdateSupervisionTrackView.permission_classes
+
+    def put(self, request, supervisee_name):
+        supervisee = User.objects.get(username=supervisee_name)
+        profile_supervisee = Profile.objects.get(user=supervisee)
+        supervisiontrack = SupervisionTrack.objects.get(godfather=request.user, supervisee=supervisee, supervisee__profile__supervision_key=models.F('supervision_key'))
+
+        supervisiontrack.is_valid = True
+
+        now = datetime.datetime.now()
+        expiration_date_delta = datetime.timedelta(days=settings.ACCOUNT_EXPIRATION_DAYS)
+        supervisiontrack.expiration_date = now + expiration_date_delta
+
+        supervisiontrack.start_date = now
+        supervisiontrack.last_validation_date = now
+        supervisee.profile.status = Profile.ACCEPTED
+
+        supervisiontrack.save()
+        supervisee.profile.save()
+
+
+        return Response(status=status.HTTP_204_NO_CONTENT)
+
+
+#----------------------------------------------------------
diff --git a/beat/web/accounts/api_urls.py b/beat/web/accounts/api_urls.py
index 554de2e8534e0fb63b7c6d0e1fe2cdd71f08c46a..a912e700d327761d07d4e7655b29f9d10d3f2fd1 100644
--- a/beat/web/accounts/api_urls.py
+++ b/beat/web/accounts/api_urls.py
@@ -34,4 +34,11 @@ urlpatterns = [
         api.GodfatherListView.as_view(),
         name='list_supervisee'
     ),
+
+    url(
+        r'^(?P<supervisee_name>[\w\W]+)/validate/$',
+        api.GodfatherAddSuperviseeView.as_view(),
+        name='validate_supervisee'
+    ),
+
 ]
diff --git a/beat/web/accounts/serializers.py b/beat/web/accounts/serializers.py
index f871480a3ecaee756737be55c0cd1af6f38cc7c3..491af9bda3c9e613818c0765f42d0b228e87c395 100644
--- a/beat/web/accounts/serializers.py
+++ b/beat/web/accounts/serializers.py
@@ -70,7 +70,7 @@ class BasicSupervisionTrackSerializer(serializers.ModelSerializer):
 
     class Meta:
         model = SupervisionTrack
-        fields = ['status', 'is_valid']
+        fields = ['is_valid']
 
     #def get_supervisee(self, obj):
     #    return obj.supervisee
@@ -82,7 +82,7 @@ class BasicSupervisionTrackSerializer(serializers.ModelSerializer):
         return obj.is_valid
 
     def get_start_date(self, obj):
-        return obj.expiration_date
+        return obj.start_date
 
     def get_expiration_date(self, obj):
         return obj.expiration_date
@@ -104,3 +104,10 @@ class FullSupervisionTrackSerializer(BasicSupervisionTrackSerializer):
 
 
 #----------------------------------------------------------
+
+
+class SupervisionTrackUpdateSerializer(BasicSupervisionTrackSerializer):
+    pass
+
+
+#----------------------------------------------------------
diff --git a/beat/web/settings/settings.py b/beat/web/settings/settings.py
index 0dc550136858b7732de99a36e52b05aaefcb3b4b..9c54130b04e1e20067b8f3be680cff9357ebd8f1 100755
--- a/beat/web/settings/settings.py
+++ b/beat/web/settings/settings.py
@@ -217,6 +217,8 @@ DATASETS_ROOT_PATH = None
 
 ACCOUNT_ACTIVATION_DAYS  = 2
 ACCOUNT_ACTIVATION_DAYS_FROM_GODFATHER  = 7
+ACCOUNT_EXPIRATION_DAYS  = 365
+
 LOGIN_REDIRECT_URL       = '/'
 LOGIN_URL                = '/login/'
 SYSTEM_ACCOUNT           = 'system'