diff --git a/duniter4j-es-user/src/main/java/org/duniter/elasticsearch/user/rest/RestModule.java b/duniter4j-es-user/src/main/java/org/duniter/elasticsearch/user/rest/RestModule.java
index db6d83026c6fa5e333cf08f1c35fbedbd426cde5..1260f8840cf23fd0998aa6a6006a6c54a4ddf656 100644
--- a/duniter4j-es-user/src/main/java/org/duniter/elasticsearch/user/rest/RestModule.java
+++ b/duniter4j-es-user/src/main/java/org/duniter/elasticsearch/user/rest/RestModule.java
@@ -26,7 +26,6 @@ import org.duniter.elasticsearch.user.rest.group.RestGroupIndexAction;
 import org.duniter.elasticsearch.user.rest.group.RestGroupUpdateAction;
 import org.duniter.elasticsearch.user.rest.history.RestHistoryDeleteIndexAction;
 import org.duniter.elasticsearch.user.rest.invitation.RestInvitationCertificationIndexAction;
-import org.duniter.elasticsearch.user.rest.invitation.RestInvitationCertificationMarkAsReadAction;
 import org.duniter.elasticsearch.user.rest.message.RestMessageInboxIndexAction;
 import org.duniter.elasticsearch.user.rest.message.RestMessageInboxMarkAsReadAction;
 import org.duniter.elasticsearch.user.rest.message.RestMessageOutboxIndexAction;
@@ -65,7 +64,6 @@ public class RestModule extends AbstractModule implements Module {
 
         // Invitation
         bind(RestInvitationCertificationIndexAction.class).asEagerSingleton();
-        bind(RestInvitationCertificationMarkAsReadAction.class).asEagerSingleton();
 
         // Backward compatibility
         {
diff --git a/duniter4j-es-user/src/main/java/org/duniter/elasticsearch/user/rest/invitation/RestInvitationCertificationMarkAsReadAction.java b/duniter4j-es-user/src/main/java/org/duniter/elasticsearch/user/rest/invitation/RestInvitationCertificationMarkAsReadAction.java
deleted file mode 100644
index 6f65826ff389ca45bb62d64c312c3d788d147fc8..0000000000000000000000000000000000000000
--- a/duniter4j-es-user/src/main/java/org/duniter/elasticsearch/user/rest/invitation/RestInvitationCertificationMarkAsReadAction.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package org.duniter.elasticsearch.user.rest.invitation;
-
-/*
- * #%L
- * duniter4j-elasticsearch-plugin
- * %%
- * Copyright (C) 2014 - 2016 EIS
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the 
- * License, or (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public 
- * License along with this program.  If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import org.duniter.elasticsearch.rest.AbstractRestPostMarkAsReadAction;
-import org.duniter.elasticsearch.rest.security.RestSecurityController;
-import org.duniter.elasticsearch.user.service.UserInvitationService;
-import org.elasticsearch.client.Client;
-import org.elasticsearch.common.inject.Inject;
-import org.elasticsearch.common.settings.Settings;
-import org.elasticsearch.rest.RestController;
-
-public class RestInvitationCertificationMarkAsReadAction extends AbstractRestPostMarkAsReadAction {
-
-    @Inject
-    public RestInvitationCertificationMarkAsReadAction(Settings settings, RestController controller, Client client,
-                                                       RestSecurityController securityController,
-                                                       UserInvitationService service) {
-        super(settings, controller, client, securityController, UserInvitationService.INDEX, UserInvitationService.CERTIFICATION_TYPE,
-                (id, signature) -> {
-                    service.markInvitationAsRead(id, signature);
-                });
-    }
-}
\ No newline at end of file
diff --git a/duniter4j-es-user/src/main/java/org/duniter/elasticsearch/user/service/UserInvitationService.java b/duniter4j-es-user/src/main/java/org/duniter/elasticsearch/user/service/UserInvitationService.java
index aa0548d404536b9a706b451aa4ccb000e30d8c72..ebb8cde1b58bfeedf90d22b0a96154073d613a2a 100644
--- a/duniter4j-es-user/src/main/java/org/duniter/elasticsearch/user/service/UserInvitationService.java
+++ b/duniter4j-es-user/src/main/java/org/duniter/elasticsearch/user/service/UserInvitationService.java
@@ -141,22 +141,6 @@ public class UserInvitationService extends AbstractService {
         return invitationId;
     }
 
-    public void markInvitationAsRead(String id, String signature) {
-        Map<String, Object> fields = getMandatoryFieldsById(INDEX, CERTIFICATION_TYPE, id, Message.PROPERTY_HASH, Message.PROPERTY_RECIPIENT);
-        String recipient = fields.get(UserEvent.PROPERTY_RECIPIENT).toString();
-        String hash = fields.get(UserEvent.PROPERTY_HASH).toString();
-
-        // Check signature
-        boolean valid = cryptoService.verify(hash, signature, recipient);
-        if (!valid) {
-            throw new InvalidSignatureException("Invalid signature: only the recipient can mark an message as read.");
-        }
-
-        UpdateRequestBuilder request = client.prepareUpdate(INDEX, CERTIFICATION_TYPE, id)
-                .setDoc("read_signature", signature);
-        request.execute();
-    }
-
     /* -- Internal methods -- */
 
     public XContentBuilder createCertificationType() {
@@ -197,8 +181,8 @@ public class UserInvitationService extends AbstractService {
                     .field("index", "not_analyzed")
                     .endObject()
 
-                    // read_signature
-                    .startObject("read_signature")
+                    // comment (encrypted)
+                    .startObject("comment")
                     .field("type", "string")
                     .field("index", "not_analyzed")
                     .endObject()