diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/core/RecoveryCertificate.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/core/RecoveryCertificate.kt
index 4bc87fc83fd1b3e1b4e240d5876e605ea6ba59b3..d4fb3bc6bfc0c7a8218fb3495ade91f39fc1494c 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/core/RecoveryCertificate.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/core/RecoveryCertificate.kt
@@ -1,8 +1,10 @@
 package de.rki.coronawarnapp.covidcertificate.recovery.core
 
 import de.rki.coronawarnapp.covidcertificate.common.certificate.CwaCovidCertificate
+import org.joda.time.LocalDate
 
 interface RecoveryCertificate : CwaCovidCertificate {
-
-    // TODO
+    val testedPositiveOn: LocalDate
+    val validFrom: LocalDate
+    val validUntil: LocalDate
 }
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/core/certificate/RecoveryDccV1.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/core/certificate/RecoveryDccV1.kt
index 93696ec4deea3cba7d622dd10bbee14fb69df45b..0038ed3a7b4b469c551b1a3876f4a603b952fb3b 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/core/certificate/RecoveryDccV1.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/core/certificate/RecoveryDccV1.kt
@@ -2,6 +2,7 @@ package de.rki.coronawarnapp.covidcertificate.recovery.core.certificate
 
 import com.google.gson.annotations.SerializedName
 import de.rki.coronawarnapp.covidcertificate.common.certificate.Dcc
+import org.joda.time.LocalDate
 
 data class RecoveryDccV1(
     @SerializedName("ver") override val version: String,
@@ -13,14 +14,24 @@ data class RecoveryDccV1(
     data class RecoveryCertificateData(
         // Disease or agent targeted, e.g. "tg": "840539006"
         @SerializedName("tg") override val targetId: String,
-
-        // TODO
-
+        // Date of First Positive NAA Test Result (required) e.g. "2021-04-21"
+        @SerializedName("fr") val fr: String,
+        // Certificate Valid From (required) e.g. "2021-05-01"
+        @SerializedName("df") val df: String,
+        // Certificate Valid Until (required) e.g. "2021-10-21"
+        @SerializedName("du") val du: String,
         // Country of Test (required)
         @SerializedName("co") override val certificateCountry: String,
         // Certificate Issuer, e.g. "is": "Ministry of Public Health, Welfare and Sport",
         @SerializedName("is") override val certificateIssuer: String,
         // Unique Certificate Identifier, e.g.  "ci": "urn:uvci:01:NL:PlA8UWS60Z4RZXVALl6GAZ"
         @SerializedName("ci") override val uniqueCertificateIdentifier: String
-    ) : Payload
+    ) : Dcc.Payload {
+        val testedPositiveOn: LocalDate
+            get() = LocalDate.parse(fr)
+        val validFrom: LocalDate
+            get() = LocalDate.parse(df)
+        val validUntil: LocalDate
+            get() = LocalDate.parse(du)
+    }
 }
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/core/storage/RecoveryCertificateContainer.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/core/storage/RecoveryCertificateContainer.kt
index 496cbf7c1c0ee6393b13e880e6437987f1103f2f..65209c91976a3d6f5c6145c0388bdbab92f2b8ae 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/core/storage/RecoveryCertificateContainer.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/recovery/core/storage/RecoveryCertificateContainer.kt
@@ -31,7 +31,7 @@ data class RecoveryCertificateContainer(
     ): RecoveryCertificate {
         val header = certificateData.header
         val certificate = certificateData.certificate
-        val testCertificate = certificate.payload
+        val recoveryCertificate = certificate.payload
 
         return object : RecoveryCertificate {
             override val personIdentifier: CertificatePersonIdentifier
@@ -39,25 +39,28 @@ data class RecoveryCertificateContainer(
 
             override val firstName: String?
                 get() = certificate.nameData.firstName
-
             override val lastName: String
                 get() = certificate.nameData.lastName
-
             override val fullName: String
                 get() = certificate.nameData.fullName
 
             override val dateOfBirth: LocalDate
                 get() = certificate.dateOfBirth
 
-            // TODO
+            override val testedPositiveOn: LocalDate
+                get() = recoveryCertificate.testedPositiveOn
+            override val validFrom: LocalDate
+                get() = recoveryCertificate.validFrom
+            override val validUntil: LocalDate
+                get() = recoveryCertificate.validUntil
 
             override val certificateIssuer: String
                 get() = header.issuer
             override val certificateCountry: String
-                get() = Locale(userLocale.language, testCertificate.certificateCountry.uppercase())
+                get() = Locale(userLocale.language, recoveryCertificate.certificateCountry.uppercase())
                     .getDisplayCountry(userLocale)
             override val certificateId: String
-                get() = testCertificate.uniqueCertificateIdentifier
+                get() = recoveryCertificate.uniqueCertificateIdentifier
 
             override val issuer: String
                 get() = header.issuer