diff --git a/src/main/java/com/rudakova/media_archive/model/UpdateRecord.java b/src/main/java/com/rudakova/media_archive/model/UpdateRecord.java
new file mode 100644
index 0000000000000000000000000000000000000000..e6a4caf6a9f0049b485e04881d64aef4a156f47c
--- /dev/null
+++ b/src/main/java/com/rudakova/media_archive/model/UpdateRecord.java
@@ -0,0 +1,70 @@
+package com.rudakova.media_archive.model;
+
+import org.springframework.data.mongodb.core.mapping.Document;
+
+import java.time.Instant;
+import java.util.UUID;
+
+@Document
+public class UpdateRecord {
+
+    private UUID id = UUID.randomUUID();
+
+    private String fileId;
+
+    private String type;
+
+    private Instant creationDate;
+
+    private Account account;
+
+    public UUID getId() {
+        return id;
+    }
+
+    public void setId(UUID id) {
+        this.id = id;
+    }
+
+    public String getFileId() {
+        return fileId;
+    }
+
+    public void setFileId(String fileId) {
+        this.fileId = fileId;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
+
+    public Instant getCreationDate() {
+        return creationDate;
+    }
+
+    public void setCreationDate(Instant creationDate) {
+        this.creationDate = creationDate;
+    }
+
+    public Account getAccount() {
+        return account;
+    }
+
+    public void setAccount(Account account) {
+        this.account = account;
+    }
+
+    @Override
+    public String toString() {
+        return "UpdateRecord{" +
+                "id=" + id +
+                ", fileId='" + fileId + '\'' +
+                ", type='" + type + '\'' +
+                ", creationDate=" + creationDate +
+                '}';
+    }
+}
diff --git a/src/main/java/com/rudakova/media_archive/repository/FileRepository.java b/src/main/java/com/rudakova/media_archive/repository/FileRepository.java
index 2f082ce51a91facc446ae60a09b29eae46c46d35..99aa25e68bbfac24f2324b732252cdeb1e707273 100644
--- a/src/main/java/com/rudakova/media_archive/repository/FileRepository.java
+++ b/src/main/java/com/rudakova/media_archive/repository/FileRepository.java
@@ -1,5 +1,6 @@
 package com.rudakova.media_archive.repository;
 
+import com.rudakova.media_archive.model.Account;
 import com.rudakova.media_archive.model.File;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.mongodb.repository.MongoRepository;
@@ -12,9 +13,6 @@ public interface FileRepository extends MongoRepository<File, String> {
 
     Optional<File> findByPreview(String preview);
 
-    @Query(value = "{ 'parents' : ?0 }", fields = "{ '_id': 1 }")
-    List<String> findIdByParents(String folderId);
-
     @Query("{ 'account.emailAddress' : ?0, 'parents' : ?1 }")
     List<File> findByAccountAndParents(String emailAddress, String folderId, Pageable pageable);
 
diff --git a/src/main/java/com/rudakova/media_archive/repository/UpdateRecordRepository.java b/src/main/java/com/rudakova/media_archive/repository/UpdateRecordRepository.java
new file mode 100644
index 0000000000000000000000000000000000000000..69dc2515b2ded3db1a22e116ca0b8697a6be65c5
--- /dev/null
+++ b/src/main/java/com/rudakova/media_archive/repository/UpdateRecordRepository.java
@@ -0,0 +1,14 @@
+package com.rudakova.media_archive.repository;
+
+import com.rudakova.media_archive.model.UpdateRecord;
+import org.springframework.data.mongodb.repository.MongoRepository;
+import org.springframework.data.mongodb.repository.Query;
+
+import java.util.List;
+import java.util.UUID;
+
+public interface UpdateRecordRepository extends MongoRepository<UpdateRecord, UUID> {
+
+    @Query("{ 'account.emailAddress' : ?0 }")
+    List<UpdateRecord> findByAccount(String emailAddress);
+}
diff --git a/src/main/java/com/rudakova/media_archive/service/RestService.java b/src/main/java/com/rudakova/media_archive/service/RestService.java
index 5d100bc165a6d45cd6bb4be89f53e8be33e914da..bfc358fcc9bc6549809469b55b7863542f40e37f 100644
--- a/src/main/java/com/rudakova/media_archive/service/RestService.java
+++ b/src/main/java/com/rudakova/media_archive/service/RestService.java
@@ -8,8 +8,10 @@ import com.rudakova.media_archive.google.GoogleService;
 import com.rudakova.media_archive.model.Account;
 import com.rudakova.media_archive.model.File;
 import com.rudakova.media_archive.model.FolderList;
+import com.rudakova.media_archive.model.UpdateRecord;
 import com.rudakova.media_archive.repository.AccountRepository;
 import com.rudakova.media_archive.repository.FileRepository;
+import com.rudakova.media_archive.repository.UpdateRecordRepository;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -44,6 +46,9 @@ public class RestService {
     @Autowired
     private AccountRepository accountRepository;
 
+    @Autowired
+    private UpdateRecordRepository updateRecordRepository;
+
     /**
      * Получение папок для выбора рабочей папки.
      * @param nextPageToken токен следующей страницы.
@@ -113,6 +118,29 @@ public class RestService {
         return new AccountDto(account);
     }
 
+    /**
+     * Получение данных о пользователе.
+     * @return пользовательские данные.
+     */
+    @PostMapping("/update")
+    public void update() throws IOException {
+        Account account = authService.getLoggedInAccount();
+        List<UpdateRecord> records = updateRecordRepository.findByAccount(account.getEmailAddress());
+        for (UpdateRecord record : records) {
+            if (record.getType().equals("trash")) {
+                List<String> ids = googleService.getFiles(record.getFileId());
+                for (String id : ids) {
+                    fileRepository.deleteById(id);
+                }
+                LOG.info("Deleted : {}", ids.size());
+            } else {
+                int count = googleService.checkUpdate(record.getFileId(), record.getCreationDate());
+                LOG.info("Added : {}", count);
+            }
+            updateRecordRepository.delete(record);
+        }
+    }
+
     /**
      * Перемещение выбранных файлов в папку для выгрузки.
      * @param files id выбранных файлов.
diff --git a/src/main/java/com/rudakova/media_archive/web/NotificationController.java b/src/main/java/com/rudakova/media_archive/web/NotificationController.java
index 070693537e1244bf89a5e82bee7f372e6223da3c..33376195844fce1b3ed787d67502bb8deea7aa94 100644
--- a/src/main/java/com/rudakova/media_archive/web/NotificationController.java
+++ b/src/main/java/com/rudakova/media_archive/web/NotificationController.java
@@ -1,7 +1,9 @@
 package com.rudakova.media_archive.web;
 
-import com.rudakova.media_archive.google.GoogleService;
+import com.rudakova.media_archive.model.File;
+import com.rudakova.media_archive.model.UpdateRecord;
 import com.rudakova.media_archive.repository.FileRepository;
+import com.rudakova.media_archive.repository.UpdateRecordRepository;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -15,10 +17,6 @@ import javax.servlet.http.HttpServletRequest;
 import java.io.IOException;
 import java.time.Instant;
 import java.time.temporal.ChronoUnit;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.stream.Collectors;
 
 @RestController
 @RequestMapping("/notification")
@@ -26,34 +24,32 @@ public class NotificationController {
     private static final Logger LOG = LoggerFactory.getLogger(NotificationController.class);
 
     @Autowired
-    private GoogleService googleService;
+    private FileRepository fileRepository;
 
     @Autowired
-    private FileRepository fileRepository;
+    private UpdateRecordRepository updateRecordRepository;
 
     @PostMapping
     public ResponseEntity<String> notification(HttpServletRequest request) throws IOException {
-        Map<String, String> headers = Collections.list(request.getHeaderNames())
-                .stream()
-                .collect(Collectors.toMap(h -> h, request::getHeader));
-        LOG.info(String.valueOf(headers));
-        String state = headers.get("x-goog-resource-state");
-        String uri = request.getHeader("x-goog-resource-uri");
-        String id = uri.substring(uri.lastIndexOf("/") + 1, uri.indexOf("?"));
-        LOG.info("Values: {}, {}", state, id);
-        if (state != null && state.equals("trash")) {
-            List<String> ids = googleService.getFiles(id);
-            LOG.info("Deleted from google: {}", ids);
-            for (String trashId : ids) {
-                fileRepository.deleteById(trashId);
-            }
-        } else if (state != null && (state.equals("update") || state.equals("untrash"))) {
-            String changed = headers.get("x-goog-changed");
-            int count = 0;
-            if (changed == null || changed.equals("children")) {
-                count = googleService.checkUpdate(id, Instant.now().minus(10, ChronoUnit.MINUTES));
-            }
-            LOG.info("Changes: {}", count);
+        String state = request.getHeader("x-goog-resource-state");
+        String changed = request.getHeader("x-goog-changed");
+        LOG.info("State value: {}", state);
+
+        if (state != null && (state.equals("trash") ||
+                        (state.equals("update") && changed.equals("children")) ||
+                        state.equals("untrash"))) {
+            String uri = request.getHeader("x-goog-resource-uri");
+            String id = uri.substring(uri.lastIndexOf("/") + 1, uri.indexOf("?"));
+
+            UpdateRecord updateRecord = new UpdateRecord();
+            updateRecord.setFileId(id);
+            File file = fileRepository.findById(id).orElse(null);
+            updateRecord.setAccount(file == null ? null : file.getAccount());
+            updateRecord.setType(state.equals("update") ? changed : state);
+            updateRecord.setCreationDate(Instant.now().minus(10, ChronoUnit.MINUTES));
+            updateRecordRepository.save(updateRecord);
+
+            LOG.info("Update record: {}", updateRecord);
         }
         return new ResponseEntity<>(HttpStatus.OK);
     }
diff --git a/target/MediaArchive-1.0-SNAPSHOT.jar b/target/MediaArchive-1.0-SNAPSHOT.jar
index 18bf6f9caa60beac9466cc8bc02e5d45a1856a60..aa749258941eb41271395c6a7a19f353f615352c 100644
Binary files a/target/MediaArchive-1.0-SNAPSHOT.jar and b/target/MediaArchive-1.0-SNAPSHOT.jar differ