diff --git a/E2ETests/SenderTest.cs b/E2ETests/SenderTest.cs
index 63030ed3cdb888f51f2e07bcf7e734d388a63342..ba46749c133b0dec298db0865cad060ca14035dc 100644
--- a/E2ETests/SenderTest.cs
+++ b/E2ETests/SenderTest.cs
@@ -102,9 +102,7 @@ public class SenderTest {
 
 
         // Assert
-        var submission = _fluentSender.GetType().GetProperties()
-            .FirstOrDefault(p => p.Name == "Submission")
-            .GetValue(_fluentSender) as Submission;
+        var submission = GetSubmissionInfo(_fluentSender);
         submission.Attachments.Should().HaveCount(attachments.Count);
 
         submission.Id.Should().NotBeNullOrWhiteSpace();
@@ -112,11 +110,19 @@ public class SenderTest {
     }
 
 
+    private Submission GetSubmissionInfo(IFluentSender sender) {
+        var submission = sender.GetType().GetProperties()
+            .FirstOrDefault(p => p.Name == "Submission")
+            .GetValue(_fluentSender) as Submission;
+
+        return submission;
+    }
+
     [TestCase("0b8e6fbd-62e2-4b6f-b333-5308d82e0a00")]
     [TestCase("d2be2027-9368-4c0c-a265-2fdbf7ecd4d9")]
     public void GetSubmissionStatus(string caseId) {
         var status = (_fluentSender as FluentSender).GetStatusForSubmission(caseId).Result;
-        status.ForEach(s=>Console.WriteLine(s.Subject));
+        status.ForEach(s => Console.WriteLine(s.Subject));
         status.Count.Should().BeGreaterThan(0);
     }
 
@@ -149,5 +155,7 @@ public class SenderTest {
 
 
         // Assert
+        var submission = GetSubmissionInfo(_fluentSender);
+        submission.Should().NotBeNull();
     }
 }
diff --git a/FitConnect/FluentSender.cs b/FitConnect/FluentSender.cs
index 55d831af06de73878cc811f04da5b25628285b54..fb459a48ee19a465ecb4e3c801dd52d7feeb103b 100644
--- a/FitConnect/FluentSender.cs
+++ b/FitConnect/FluentSender.cs
@@ -172,6 +172,11 @@ public class FluentSender : Sender, IFluentSender, IFluentSenderWithDestination,
         var metadata = CreateMetadata(Submission);
         Logger?.LogDebug(metadata);
         Logger?.LogInformation("Sending submission");
+        var encryptedMeta = Encryption.Encrypt(metadata);
+        Submission.EncryptedMetadata = encryptedMeta;
+
+        var result = SubmissionService
+            .SubmitSubmission(Submission.Id!, (SubmitSubmissionDto)Submission).Result;
         return this;
     }
 
diff --git a/Services/Interfaces/ISubmissionService.cs b/Services/Interfaces/ISubmissionService.cs
index 7bca4fd41e6189d9e03e445f28ac6ad4d09f6ec8..1df6a336e2993059040d1ccdfc559d6d78104bd7 100644
--- a/Services/Interfaces/ISubmissionService.cs
+++ b/Services/Interfaces/ISubmissionService.cs
@@ -33,7 +33,7 @@ public interface ISubmissionService : IAuthenticatedService {
     /// <param name="submitSubmission">RequestBody</param>
     /// <returns></returns>
     /// <exception cref="NotImplementedException"></exception>
-    SubmissionReducedDto SubmitSubmission(string submissionId,
+    Task<SubmissionReducedDto?> SubmitSubmission(string submissionId,
         SubmitSubmissionDto submitSubmission);
 
     /// <summary>
diff --git a/Services/SubmissionService.cs b/Services/SubmissionService.cs
index 3a039616e85f41c9ea8913c97edfc20392043ffe..110653732cd828d67476144eaf374b10771cc1f2 100644
--- a/Services/SubmissionService.cs
+++ b/Services/SubmissionService.cs
@@ -58,9 +58,14 @@ public class SubmissionService : RestCallService, ISubmissionService {
     /// <param name="submitSubmission">RequestBody</param>
     /// <returns></returns>
     /// <exception cref="NotImplementedException"></exception>
-    public SubmissionReducedDto SubmitSubmission(string submissionId,
+    public async Task<SubmissionReducedDto?> SubmitSubmission(string submissionId,
         SubmitSubmissionDto submitSubmission) {
-        throw new NotImplementedException();
+
+        var result = await RestCall<SubmissionReducedDto>("/submissions/{submissionId}",
+            HttpMethod.Put,
+            JsonSerializer.Serialize(submitSubmission), "application/json");
+
+        return result;
     }