diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/datadonation/OTPAuthorizationResult.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/datadonation/OTPAuthorizationResult.kt
index 4cf4427828dafc0c9653f0862e2dc6f2fcb18b31..49dc05c9c62752b2f15d3bd314f971045348b9c2 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/datadonation/OTPAuthorizationResult.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/datadonation/OTPAuthorizationResult.kt
@@ -12,5 +12,10 @@ data class OTPAuthorizationResult(
     @SerializedName("authorized")
     val authorized: Boolean,
     @SerializedName("redeemedAt")
-    val redeemedAt: Instant
-)
+    val redeemedAt: Instant,
+    @SerializedName("invalidated")
+    val invalidated: Boolean
+) {
+
+    fun toInvalidatedInstance() = OTPAuthorizationResult(uuid, authorized, redeemedAt, true)
+}
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/datadonation/survey/SurveySettings.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/datadonation/survey/SurveySettings.kt
index 228b75aa90a94823144c1946038ef3666e1bd64e..bf804128e1815ec72818c5c59e28707197ea04db 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/datadonation/survey/SurveySettings.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/datadonation/survey/SurveySettings.kt
@@ -52,6 +52,7 @@ class SurveySettings @Inject constructor(
                     requireNotNull(result.uuid)
                     requireNotNull(result.authorized)
                     requireNotNull(result.redeemedAt)
+                    requireNotNull(result.invalidated)
                     return result
                 }
                 return null
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/datadonation/survey/Surveys.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/datadonation/survey/Surveys.kt
index 4034bbc3e14ee2b00ed91d61809c4b213609b372..6914f0d81106fbe62dfc4fd080e8bf7436185ffc 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/datadonation/survey/Surveys.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/datadonation/survey/Surveys.kt
@@ -60,7 +60,12 @@ class Surveys @Inject constructor(
 
         // request validation from server
         val errorCode = surveyServer.authOTP(oneTimePassword, attestationResult).errorCode
-        val result = OTPAuthorizationResult(oneTimePassword.uuid, errorCode == null, now)
+        val result = OTPAuthorizationResult(
+            uuid = oneTimePassword.uuid,
+            authorized = errorCode == null,
+            redeemedAt = now,
+            invalidated = false
+        )
         oneTimePasswordRepo.otpAuthorizationResult = result
 
         if (result.authorized) {
@@ -74,9 +79,10 @@ class Surveys @Inject constructor(
     }
 
     fun resetSurvey(type: Type) {
-        if (type == Type.HIGH_RISK_ENCOUNTER) {
-            Timber.d("Discarding one time password for survey about previous high-risk state.")
-            oneTimePasswordRepo.clear()
+        val authResult = oneTimePasswordRepo.otpAuthorizationResult
+        if (type == Type.HIGH_RISK_ENCOUNTER && authResult != null) {
+            Timber.d("Invalidating one time password for survey about previous high-risk state.")
+            oneTimePasswordRepo.otpAuthorizationResult = authResult.toInvalidatedInstance()
         }
     }
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/storage/OTPRepositoryTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/storage/OTPRepositoryTest.kt
index 63d916e3d870042c220ad1c6cfe0e38ee34f58c1..b9908423a1f9fccc6be8555b2971c8255fe03120 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/storage/OTPRepositoryTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/storage/OTPRepositoryTest.kt
@@ -69,7 +69,8 @@ class OTPRepositoryTest : BaseTest() {
         settings.otpAuthorizationResult = OTPAuthorizationResult(
             UUID.randomUUID(),
             true,
-            Instant.now()
+            Instant.now(),
+            false
         )
 
         settings.otpAuthorizationResult shouldNotBe null
@@ -87,7 +88,8 @@ class OTPRepositoryTest : BaseTest() {
         OTPRepository(settings).otpAuthorizationResult = OTPAuthorizationResult(
             UUID.randomUUID(),
             true,
-            Instant.now()
+            Instant.now(),
+            false
         )
         settings.oneTimePassword shouldBe null
     }
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/survey/SurveySettingsTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/survey/SurveySettingsTest.kt
index ba9894c5f47557708907931935a218e32e8f2a65..6fd1b7161a4109a3cc916257aa5cac7da5627207 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/survey/SurveySettingsTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/survey/SurveySettingsTest.kt
@@ -101,7 +101,8 @@ class SurveySettingsTest : BaseTest() {
                 {
                     "uuid":"e103c755-0975-4588-a639-d0cd1ba421a1",
                     "authorized": true,
-                    "redeemedAt": 1612381217443
+                    "redeemedAt": 1612381217443,
+                    "invalidated": true
                 }
             """.trimIndent()
         ).apply()
@@ -111,6 +112,7 @@ class SurveySettingsTest : BaseTest() {
         value!!.uuid.toString() shouldBe "e103c755-0975-4588-a639-d0cd1ba421a1"
         value.authorized shouldBe true
         value.redeemedAt.millis shouldBe 1612381217443
+        value.invalidated shouldBe true
     }
 
     @Test
@@ -133,14 +135,15 @@ class SurveySettingsTest : BaseTest() {
         val redeemedAt = Instant.ofEpochMilli(1612381217445)
 
         val instance = SurveySettings(context, baseGson)
-        instance.otpAuthorizationResult = OTPAuthorizationResult(uuid, authorized, redeemedAt)
+        instance.otpAuthorizationResult = OTPAuthorizationResult(uuid, authorized, redeemedAt, false)
 
         val value = preferences.getString("otp_result", null)
         value shouldBe """
             {
               "uuid": "e103c755-0975-4588-a639-d0cd1ba421a0",
               "authorized": false,
-              "redeemedAt": 1612381217445
+              "redeemedAt": 1612381217445,
+              "invalidated": false
             }
         """.trimIndent()
     }