diff --git a/src/main/java/it/inaf/ia2/transfer/controller/ArchiveFileController.java b/src/main/java/it/inaf/ia2/transfer/controller/ArchiveFileController.java
index 637208277cf6e33451ecf75cc448c98dadb3e073..7f5ed6c7bab1fe79619e07eaaf532c44ce23bd38 100644
--- a/src/main/java/it/inaf/ia2/transfer/controller/ArchiveFileController.java
+++ b/src/main/java/it/inaf/ia2/transfer/controller/ArchiveFileController.java
@@ -25,7 +25,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RestController;
 
 @RestController
-public class ArchiveFileController extends FileController {
+public class ArchiveFileController extends AuthenticatedFileController {
 
     @Autowired
     private ArchiveService archiveService;
@@ -63,13 +63,9 @@ public class ArchiveFileController extends FileController {
         FileResponseUtil.getFileResponse(response, file);
     }
 
-    private TokenPrincipal getPrincipal() {
-        TokenPrincipal principal = (TokenPrincipal) request.getUserPrincipal();
-
-        if ("anonymous".equals(principal.getName())) {
-            throw new PermissionDeniedException("Tar/Zip archive generation not allowed to anonymous users");
-        }
-        
-        return principal;
+    @Override
+    protected String getCustomAuthErrorMessage() {
+        return "Tar/Zip archive generation not allowed to anonymous users";
     }
+    
 }
diff --git a/src/main/java/it/inaf/ia2/transfer/controller/AuthenticatedFileController.java b/src/main/java/it/inaf/ia2/transfer/controller/AuthenticatedFileController.java
new file mode 100644
index 0000000000000000000000000000000000000000..cefea304af21bf9d1a575d248afd94953104d5d2
--- /dev/null
+++ b/src/main/java/it/inaf/ia2/transfer/controller/AuthenticatedFileController.java
@@ -0,0 +1,24 @@
+/*
+ * This file is part of vospace-file-service
+ * Copyright (C) 2021 Istituto Nazionale di Astrofisica
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ */
+package it.inaf.ia2.transfer.controller;
+
+import it.inaf.ia2.transfer.auth.TokenPrincipal;
+import it.inaf.ia2.transfer.exception.PermissionDeniedException;
+
+public abstract class AuthenticatedFileController extends FileController {
+
+    protected TokenPrincipal getPrincipal() {
+        TokenPrincipal principal = (TokenPrincipal) request.getUserPrincipal();
+
+        if ("anonymous".equals(principal.getName())) {
+            throw new PermissionDeniedException("Tar/Zip archive generation not allowed to anonymous users");
+        }
+
+        return principal;
+    }
+    
+    protected abstract String getCustomAuthErrorMessage();
+}
diff --git a/src/main/java/it/inaf/ia2/transfer/controller/CopyController.java b/src/main/java/it/inaf/ia2/transfer/controller/CopyController.java
new file mode 100644
index 0000000000000000000000000000000000000000..72041fb2085d56ff64244de9a033212d895fe0b9
--- /dev/null
+++ b/src/main/java/it/inaf/ia2/transfer/controller/CopyController.java
@@ -0,0 +1,31 @@
+/*
+ * This file is part of vospace-file-service
+ * Copyright (C) 2021 Istituto Nazionale di Astrofisica
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ */
+package it.inaf.ia2.transfer.controller;
+
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+public class CopyController extends AuthenticatedFileController {
+   
+
+    @PostMapping(value = "/copy", consumes = MediaType.APPLICATION_JSON_VALUE)
+    public ResponseEntity<?> copyFiles(@RequestBody CopyRequest copyRequest) {
+
+        return ResponseEntity.ok(
+                copyRequest.getJobId() + " copy task accepted by File Service"
+        );
+    }
+
+    @Override
+    protected String getCustomAuthErrorMessage() {
+        return "File Copy not allowed to anonymous users";
+    }
+
+}
diff --git a/src/main/java/it/inaf/ia2/transfer/controller/CopyRequest.java b/src/main/java/it/inaf/ia2/transfer/controller/CopyRequest.java
new file mode 100644
index 0000000000000000000000000000000000000000..d725d46efa30dc0fe5174ecc0f94657f24aabb75
--- /dev/null
+++ b/src/main/java/it/inaf/ia2/transfer/controller/CopyRequest.java
@@ -0,0 +1,38 @@
+/*
+ * This file is part of vospace-file-service
+ * Copyright (C) 2021 Istituto Nazionale di Astrofisica
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ */
+package it.inaf.ia2.transfer.controller;
+
+public class CopyRequest {
+
+    String jobId;
+    String target;
+    String direction;
+
+    public String getJobId() {
+        return jobId;
+    }
+
+    public void setJobId(String jobId) {
+        this.jobId = jobId;
+    }
+
+    public String getTarget() {
+        return target;
+    }
+
+    public void setTarget(String target) {
+        this.target = target;
+    }
+
+    public String getDirection() {
+        return direction;
+    }
+
+    public void setDirection(String direction) {
+        this.direction = direction;
+    }
+
+}