diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/server/CoronaTestResult.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/server/CoronaTestResult.kt
index 0fdb395a62ec5d5ca519f8d009b3ee5b9f8514d2..09c931f12a74f13ca57de95b32e7eecf41136844 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/server/CoronaTestResult.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/server/CoronaTestResult.kt
@@ -8,13 +8,15 @@ import org.json.JSONObject
 
 data class CoronaTestResultResponse(
     val coronaTestResult: CoronaTestResult,
-    val sampleCollectedAt: Instant?
+    val sampleCollectedAt: Instant?,
+    val labId: String?
 ) {
     companion object {
         fun fromResponse(response: VerificationApiV1.TestResultResponse) =
             CoronaTestResultResponse(
                 coronaTestResult = CoronaTestResult.fromInt(response.testResult),
-                sampleCollectedAt = response.sampleCollectedAt?.toLong()?.let { Instant.ofEpochSecond(it) }
+                sampleCollectedAt = response.sampleCollectedAt?.toLong()?.let { Instant.ofEpochSecond(it) },
+                labId = response.labId
             )
     }
 }
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/server/VerificationApiV1.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/server/VerificationApiV1.kt
index 4f46627679001d32028ec1307cdb8a281e3cca00..b7c4efd790ac9045d3345a4d6e753ee6a98ce332 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/server/VerificationApiV1.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/server/VerificationApiV1.kt
@@ -32,7 +32,8 @@ interface VerificationApiV1 {
 
     data class TestResultResponse(
         @SerializedName("testResult") val testResult: Int,
-        @SerializedName("sc") val sampleCollectedAt: Int?
+        @SerializedName("sc") val sampleCollectedAt: Int?,
+        @SerializedName("labId") val labId: String?
     )
 
     @POST("version/v1/testresult")
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/CoronaTest.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/CoronaTest.kt
index 824a468b746938f0b30c3c532cc7f00800ad8cd4..d1fc0813d294254adcc85f57aac5b327e5731b3f 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/CoronaTest.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/CoronaTest.kt
@@ -49,6 +49,9 @@ interface CoronaTest {
     // Has the corresponding entry been created in the test certificate storage
     val isDccDataSetCreated: Boolean
 
+    //  The ID of the lab that uploaded the test result
+    val labId: String?
+
     enum class Type(val raw: String) {
         @SerializedName("PCR")
         PCR("PCR"),
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/pcr/PCRCoronaTest.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/pcr/PCRCoronaTest.kt
index fd28cb44782cf18837dda25c487667d006a4c34a..0fc8c26a31eae2e78ddccfc1a0240b522eb0da17 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/pcr/PCRCoronaTest.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/pcr/PCRCoronaTest.kt
@@ -46,6 +46,9 @@ data class PCRCoronaTest(
 
     @SerializedName("isDccDataSetCreated")
     override val isDccDataSetCreated: Boolean = false,
+
+    @SerializedName("labId")
+    override val labId: String? = null,
 ) : CoronaTest {
 
     override val type: CoronaTest.Type
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/pcr/PCRTestProcessor.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/pcr/PCRTestProcessor.kt
index 58bfe8a28d16fd55ab3d07efd251fd7f4458e288..ce35035b404f73f9d96b48bdbdde63b0166a9ea3 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/pcr/PCRTestProcessor.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/pcr/PCRTestProcessor.kt
@@ -130,6 +130,7 @@ class PCRTestProcessor @Inject constructor(
             testResult = testResult,
             testResultReceivedAt = determineReceivedDate(null, testResult),
             isDccConsentGiven = request.isDccConsentGiven,
+            labId = response.testResultResponse.labId
         )
     }
 
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/rapidantigen/RACoronaTest.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/rapidantigen/RACoronaTest.kt
index 6dfa9ad11f4179a805596e85dee86c89e613b510..fa0933bc2da91e216d9278ea1565ba9f41f2a839 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/rapidantigen/RACoronaTest.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/rapidantigen/RACoronaTest.kt
@@ -70,6 +70,9 @@ data class RACoronaTest(
     override val isDccConsentGiven: Boolean = false,
     @SerializedName("isDccDataSetCreated")
     override val isDccDataSetCreated: Boolean = false,
+
+    @SerializedName("labId")
+    override val labId: String? = null,
 ) : CoronaTest {
 
     override val type: CoronaTest.Type
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/rapidantigen/RATestProcessor.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/rapidantigen/RATestProcessor.kt
index 075881497a8447e524264062768309f02867f60d..e119cba0f64720b70a39a218182be317879ac02e 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/rapidantigen/RATestProcessor.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/coronatest/type/rapidantigen/RATestProcessor.kt
@@ -98,6 +98,7 @@ class RATestProcessor @Inject constructor(
             sampleCollectedAt = sampleCollectedAt,
             isDccSupportedByPoc = request.isDccSupportedByPoc,
             isDccConsentGiven = request.isDccConsentGiven,
+            labId = registrationData.testResultResponse.labId
         )
     }
 
@@ -137,7 +138,8 @@ class RATestProcessor @Inject constructor(
                     Timber.tag(TAG).w("HTTP 400 error after 21 days, remapping to RAT_REDEEMED.")
                     CoronaTestResultResponse(
                         coronaTestResult = RAT_REDEEMED,
-                        sampleCollectedAt = null
+                        sampleCollectedAt = null,
+                        labId = null
                     )
                 } else {
                     Timber.tag(TAG).v("Unexpected HTTP 400 error, rethrowing...")
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/exception/TestCertificateServerException.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/exception/TestCertificateServerException.kt
index 6cbe138c4d7109ece44e02e86542fdd94b06176a..fb6fb45851e7640be92cbbcde391b9f05118f05e 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/exception/TestCertificateServerException.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/exception/TestCertificateServerException.kt
@@ -62,6 +62,10 @@ class TestCertificateServerException(
             "DCC Components failed with error 500: Signing server error",
             ERROR_MESSAGE_E2E_ERROR_CALL_HOTLINE
         ),
+        DCC_NOT_SUPPORTED_BY_LAB(
+            "DCC is not supported by the lab",
+            ERROR_MESSAGE_DCC_NOT_SUPPORTED_BY_LAB
+        ),
         DCC_COMP_NO_NETWORK(
             "DCC Test Certificate Components failed due to no network connection.",
             ERROR_MESSAGE_NO_NETWORK
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/test/core/TestCertificateRepository.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/test/core/TestCertificateRepository.kt
index ed383c7d1fa83bb75448b86cb217054caeea4445..17f9632e9498ad08ab3774d1295777245ff923a6 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/test/core/TestCertificateRepository.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/test/core/TestCertificateRepository.kt
@@ -2,6 +2,7 @@ package de.rki.coronawarnapp.covidcertificate.test.core
 
 import de.rki.coronawarnapp.bugreporting.reportProblem
 import de.rki.coronawarnapp.coronatest.type.CoronaTest
+import de.rki.coronawarnapp.covidcertificate.exception.TestCertificateServerException
 import de.rki.coronawarnapp.covidcertificate.test.core.qrcode.TestCertificateQRCodeExtractor
 import de.rki.coronawarnapp.covidcertificate.test.core.storage.PCRCertificateData
 import de.rki.coronawarnapp.covidcertificate.test.core.storage.RACertificateData
@@ -87,7 +88,7 @@ class TestCertificateRepository @Inject constructor(
 
     /**
      * Will create a new test certificate entry.
-     * Automation via [de.rki.coronawarnapp.coronatest.type.common.TestCertificateRetrievalScheduler] will kick in.
+     * Automation via [de.rki.coronawarnapp.covidcertificate.test.core.execution.TestCertificateRetrievalScheduler] will kick in.
      *
      * Throws an exception if there already is a test certificate entry for this test
      * or this is not a valid test (no consent, not supported by PoC).
@@ -114,11 +115,13 @@ class TestCertificateRepository @Inject constructor(
                     identifier = identifier,
                     registeredAt = test.registeredAt,
                     registrationToken = test.registrationToken,
+                    labId = test.labId
                 )
                 CoronaTest.Type.RAPID_ANTIGEN -> RACertificateData(
                     identifier = identifier,
                     registeredAt = test.registeredAt,
                     registrationToken = test.registrationToken,
+                    labId = test.labId
                 )
             }
             val container = TestCertificateContainer(
@@ -172,12 +175,42 @@ class TestCertificateRepository @Inject constructor(
             }
         }
 
+        // Not sure i really like this
+        internalData.updateBlocking {
+            Timber.tag(TAG).d("Checking for invalid lab id.")
+
+            val refreshedCerts = values
+                .filter { workedOnIds.contains(it.identifier) } // Refresh targets
+                .filter { it.labId == null } // Targets of this step
+                .map { cert ->
+                    Timber.tag(TAG).d("%s is missing a lab id returning exception", cert)
+                    RefreshResult(
+                        cert,
+                        TestCertificateServerException(
+                            TestCertificateServerException.ErrorCode.DCC_NOT_SUPPORTED_BY_LAB
+                        )
+                    )
+                }
+
+            refreshedCerts.forEach {
+                refreshCallResults[it.certificateContainer.identifier] = it
+            }
+
+            mutate {
+                refreshedCerts
+                    .filter { it.error == null }
+                    .map { it.certificateContainer }
+                    .forEach { this[it.identifier] = it }
+            }
+        }
+
         internalData.updateBlocking {
             Timber.tag(TAG).d("Checking for unregistered public keys.")
 
             val refreshedCerts = values
                 .filter { workedOnIds.contains(it.identifier) } // Refresh targets
                 .filter { !it.isPublicKeyRegistered } // Targets of this step
+                .filter { it.labId != null }
                 .map { cert ->
                     withContext(dispatcherProvider.IO) {
                         try {
@@ -208,6 +241,7 @@ class TestCertificateRepository @Inject constructor(
             val refreshedCerts = values
                 .filter { workedOnIds.contains(it.identifier) } // Refresh targets
                 .filter { it.isPublicKeyRegistered && it.isCertificateRetrievalPending } // Targets of this step
+                .filter { it.labId != null }
                 .map { cert ->
                     withContext(dispatcherProvider.IO) {
                         try {
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/test/core/storage/PCRCertificateData.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/test/core/storage/PCRCertificateData.kt
index 118bf5bc112a3fc4399a49210542b1f6069c7256..2fe7dcb304f97d7f8a5dfa079194d5bbc5bc2c66 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/test/core/storage/PCRCertificateData.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/test/core/storage/PCRCertificateData.kt
@@ -37,6 +37,9 @@ data class PCRCertificateData internal constructor(
 
     @SerializedName("testCertificateQrCode")
     override val testCertificateQrCode: String? = null,
+
+    @SerializedName("labId")
+    override val labId: String? = null,
 ) : StoredTestCertificateData {
 
     // Otherwise GSON unsafes reflection to create this class, and sets the LAZY to null
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/test/core/storage/RACertificateData.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/test/core/storage/RACertificateData.kt
index dfcb82bad80c8f2000c505ce3929fb62dc6f1f64..8b87ecb424f012e4432e04e82536c5ff864ace23 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/test/core/storage/RACertificateData.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/test/core/storage/RACertificateData.kt
@@ -37,6 +37,9 @@ data class RACertificateData(
 
     @SerializedName("testCertificateQrCode")
     override val testCertificateQrCode: String? = null,
+
+    @SerializedName("labId")
+    override val labId: String? = null,
 ) : StoredTestCertificateData {
 
     // Otherwise GSON unsafes reflection to create this class, and sets the LAZY to null
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/test/core/storage/StoredTestCertificateData.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/test/core/storage/StoredTestCertificateData.kt
index 131c18e26608fb530f939f6cccc0cbb49128133d..16c307f8ecfdb83e2017b26bdb532653f3f67d94 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/test/core/storage/StoredTestCertificateData.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/test/core/storage/StoredTestCertificateData.kt
@@ -18,4 +18,5 @@ interface StoredTestCertificateData {
     val encryptedDataEncryptionkey: ByteString?
     val encryptedDccCose: ByteString?
     val testCertificateQrCode: String?
+    val labId: String?
 }
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/test/ui/CertificatesFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/test/ui/CertificatesFragment.kt
index afd660e979ff7f8197838d140578d3350edb9b55..f83587427e2bb2db0edccd20f58054192323ae6d 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/test/ui/CertificatesFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/test/ui/CertificatesFragment.kt
@@ -7,9 +7,12 @@ import androidx.fragment.app.Fragment
 import androidx.navigation.fragment.findNavController
 import androidx.recyclerview.widget.DefaultItemAnimator
 import de.rki.coronawarnapp.R
+import de.rki.coronawarnapp.bugreporting.ui.toErrorDialogBuilder
+import de.rki.coronawarnapp.covidcertificate.exception.TestCertificateServerException
 import de.rki.coronawarnapp.covidcertificate.vaccination.ui.list.VaccinationListFragment
 import de.rki.coronawarnapp.databinding.FragmentCertificatesBinding
 import de.rki.coronawarnapp.util.DialogHelper
+import de.rki.coronawarnapp.util.ExternalActionHelper.openUrl
 import de.rki.coronawarnapp.util.di.AutoInject
 import de.rki.coronawarnapp.util.lists.decorations.TopBottomPaddingDecorator
 import de.rki.coronawarnapp.util.lists.diffutil.update
@@ -58,14 +61,18 @@ class CertificatesFragment : Fragment(R.layout.fragment_certificates), AutoInjec
                     )
                 }
                 is CertificatesFragmentEvents.ShowRefreshErrorCertificateDialog -> {
-                    val dialog = DialogHelper.DialogInstance(
-                        context = requireContext(),
-                        title = R.string.test_certificate_refresh_dialog_title,
-                        message = event.error.localizedMessage,
-                        positiveButton = R.string.test_certificate_refresh_dialog_confirm_button,
-                        cancelable = false
-                    )
-                    DialogHelper.showDialog(dialog)
+                    event.error.toErrorDialogBuilder(requireContext()).apply {
+                        setTitle(R.string.test_certificate_refresh_dialog_title)
+                        setCancelable(false)
+                        if (
+                            event.error is TestCertificateServerException &&
+                            event.error.errorCode == TestCertificateServerException.ErrorCode.DCC_NOT_SUPPORTED_BY_LAB
+                        ) {
+                            setNeutralButton(R.string.test_certificate_error_invalid_labid_faq) { _, _ ->
+                                openUrl(getString(R.string.test_certificate_error_invalid_labid_faq_link))
+                            }
+                        }
+                    }.show()
                 }
                 is CertificatesFragmentEvents.ShowDeleteErrorCertificateDialog -> {
                     val dialog = DialogHelper.DialogInstance(
diff --git a/Corona-Warn-App/src/main/res/values-de/green_certificate_strings.xml b/Corona-Warn-App/src/main/res/values-de/green_certificate_strings.xml
index 6c5711aae15226505605cd6643c463d9bf1aa18e..2cdecbe39b85a1314264840193e5674077172f35 100644
--- a/Corona-Warn-App/src/main/res/values-de/green_certificate_strings.xml
+++ b/Corona-Warn-App/src/main/res/values-de/green_certificate_strings.xml
@@ -100,4 +100,8 @@
     <string name="test_certificate_error_label_refreshing">"Ihr Zertifikat wird gerade erstellt…"</string>
     <!-- XTXT: Test error card body refreshing -->
     <string name="test_certificate_error_refreshing_status">"Ihr Zertifikat wird gerade angefragt, dies kann einige Minuten dauern…"</string>
+    <!-- XBUT: Text for invalid test certificate error button, linking to FAQ-->
+    <string name="test_certificate_error_invalid_labid_faq">"FAQ zu Testzertifikaten"</string>
+    <!-- XTXT: Explains user about test certificate: URL, has to be "translated" into english (relevant for all languages except german) - https://www.coronawarn.app/en/faq/#vac_cert_invalid -->
+    <string name="test_certificate_error_invalid_labid_faq_link">"https://www.coronawarn.app/de/faq/#test_cert"</string>
 </resources>
diff --git a/Corona-Warn-App/src/main/res/values/green_certificate_strings.xml b/Corona-Warn-App/src/main/res/values/green_certificate_strings.xml
index e40bf9c68d6446f06cd15fd81aab2f95bfa58ec0..be47fa7e524f0f247498ed274e8647639a7a9727 100644
--- a/Corona-Warn-App/src/main/res/values/green_certificate_strings.xml
+++ b/Corona-Warn-App/src/main/res/values/green_certificate_strings.xml
@@ -100,4 +100,8 @@
     <string name="test_certificate_error_label_refreshing">"Your certificate is being created..."</string>
     <!-- XTXT: Test error card body refreshing -->
     <string name="test_certificate_error_refreshing_status">"Your certificate is being requested. This may take a few minutes..."</string>
+    <!-- XBUT: Text for invalid test certificate error button, linking to FAQ-->
+    <string name="test_certificate_error_invalid_labid_faq"></string>
+    <!-- XTXT: Explains user about test certificate: URL, has to be "translated" into english (relevant for all languages except german) - https://www.coronawarn.app/en/faq/#vac_cert_invalid -->
+    <string name="test_certificate_error_invalid_labid_faq_link"></string>
 </resources>
\ No newline at end of file
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/coronatest/server/VerificationApiV1Test.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/coronatest/server/VerificationApiV1Test.kt
index 9076ba3b7c9e0cda0069939b58e8889d959f2a90..bc48dcd234cb9e7c0bf0c6b43a30560bd3bd1d0f 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/coronatest/server/VerificationApiV1Test.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/coronatest/server/VerificationApiV1Test.kt
@@ -169,7 +169,8 @@ class VerificationApiV1Test : BaseIOTest() {
             requestBody
         ) shouldBe VerificationApiV1.TestResultResponse(
             testResult = 1,
-            sampleCollectedAt = null
+            sampleCollectedAt = null,
+            labId = null,
         )
 
         webServer.takeRequest(5, TimeUnit.SECONDS)!!.apply {
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/coronatest/server/VerificationServerTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/coronatest/server/VerificationServerTest.kt
index 07f8cbc45e513d5797afe10e4a6fbe92dc193e0a..1f68b62c1311a2ec9e3fa64ab6bd967082c30b09 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/coronatest/server/VerificationServerTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/coronatest/server/VerificationServerTest.kt
@@ -166,12 +166,13 @@ class VerificationServerTest : BaseIOTest() {
                 registrationToken shouldBe "testRegistrationToken"
                 requestPadding.length shouldBe 170
             }
-            VerificationApiV1.TestResultResponse(testResult = 2, sampleCollectedAt = null)
+            VerificationApiV1.TestResultResponse(testResult = 2, sampleCollectedAt = null, labId = null)
         }
 
         server.pollTestResult("testRegistrationToken") shouldBe CoronaTestResultResponse(
             coronaTestResult = CoronaTestResult.PCR_POSITIVE,
-            sampleCollectedAt = null
+            sampleCollectedAt = null,
+            labId = null,
         )
 
         coVerify { verificationApi.getTestResult(any(), any(), any()) }
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/coronatest/type/pcr/PCRProcessorTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/coronatest/type/pcr/PCRProcessorTest.kt
index 04e5a7110f6f46ccf7ebac591793fc89b0892b98..d11874da7c5eebd5dd5b51d64c768446a6d66716 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/coronatest/type/pcr/PCRProcessorTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/coronatest/type/pcr/PCRProcessorTest.kt
@@ -67,6 +67,7 @@ class PCRProcessorTest : BaseTest() {
             coEvery { checkTestResult(any()) } returns CoronaTestResultResponse(
                 coronaTestResult = PCR_OR_RAT_PENDING,
                 sampleCollectedAt = null,
+                labId = null,
             )
             coEvery { registerTest(any()) } answers {
                 val request = arg<RegistrationRequest>(0)
@@ -76,6 +77,7 @@ class PCRProcessorTest : BaseTest() {
                     testResultResponse = CoronaTestResultResponse(
                         coronaTestResult = PCR_OR_RAT_PENDING,
                         sampleCollectedAt = null,
+                        labId = null,
                     ),
                 )
             }
@@ -131,6 +133,7 @@ class PCRProcessorTest : BaseTest() {
             testResultResponse = CoronaTestResultResponse(
                 coronaTestResult = PCR_OR_RAT_PENDING,
                 sampleCollectedAt = null,
+                labId = null,
             )
         )
         coEvery { submissionService.registerTest(any()) } answers { registrationData }
@@ -144,6 +147,7 @@ class PCRProcessorTest : BaseTest() {
                 testResultResponse = CoronaTestResultResponse(
                     coronaTestResult = it,
                     sampleCollectedAt = null,
+                    labId = null,
                 )
             )
             when (it) {
@@ -170,6 +174,7 @@ class PCRProcessorTest : BaseTest() {
             CoronaTestResultResponse(
                 coronaTestResult = pollResult,
                 sampleCollectedAt = null,
+                labId = null,
             )
         }
 
@@ -222,6 +227,7 @@ class PCRProcessorTest : BaseTest() {
             CoronaTestResultResponse(
                 coronaTestResult = PCR_POSITIVE,
                 sampleCollectedAt = null,
+                labId = null,
             )
         }
 
@@ -284,6 +290,7 @@ class PCRProcessorTest : BaseTest() {
             testResultResponse = CoronaTestResultResponse(
                 coronaTestResult = PCR_OR_RAT_PENDING,
                 sampleCollectedAt = null,
+                labId = null,
             )
         )
         coEvery { submissionService.registerTest(any()) } answers { registrationData }
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/coronatest/type/rapidantigen/RAProcessorTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/coronatest/type/rapidantigen/RAProcessorTest.kt
index 2846d0f54b9f17b104b72c59e83d4295f94f8f4f..c9c60d3474d0b078bf79ca3596f3af9d6e4ab95b 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/coronatest/type/rapidantigen/RAProcessorTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/coronatest/type/rapidantigen/RAProcessorTest.kt
@@ -67,6 +67,7 @@ class RAProcessorTest : BaseTest() {
             coEvery { checkTestResult(any()) } returns CoronaTestResultResponse(
                 coronaTestResult = PCR_OR_RAT_PENDING,
                 sampleCollectedAt = null,
+                labId = null,
             )
 
             coEvery { registerTest(any()) } answers {
@@ -77,6 +78,7 @@ class RAProcessorTest : BaseTest() {
                     testResultResponse = CoronaTestResultResponse(
                         coronaTestResult = PCR_OR_RAT_PENDING,
                         sampleCollectedAt = null,
+                        labId = null,
                     )
                 )
             }
@@ -121,6 +123,7 @@ class RAProcessorTest : BaseTest() {
         coEvery { submissionService.checkTestResult(any()) } returns CoronaTestResultResponse(
             coronaTestResult = PCR_OR_RAT_PENDING,
             sampleCollectedAt = nowUTC,
+            labId = null,
         )
 
         (instance.pollServer(raTest) as RACoronaTest).sampleCollectedAt shouldBe nowUTC
@@ -171,6 +174,7 @@ class RAProcessorTest : BaseTest() {
             testResultResponse = CoronaTestResultResponse(
                 coronaTestResult = PCR_OR_RAT_PENDING,
                 sampleCollectedAt = null,
+                labId = null,
             ),
         )
         coEvery { submissionService.registerTest(any()) } answers { registrationData }
@@ -187,6 +191,7 @@ class RAProcessorTest : BaseTest() {
                 testResultResponse = CoronaTestResultResponse(
                     coronaTestResult = it,
                     sampleCollectedAt = null,
+                    labId = null,
                 )
             )
             when (it) {
@@ -212,6 +217,7 @@ class RAProcessorTest : BaseTest() {
             CoronaTestResultResponse(
                 coronaTestResult = pollResult,
                 sampleCollectedAt = null,
+                labId = null,
             )
         }
 
@@ -245,6 +251,7 @@ class RAProcessorTest : BaseTest() {
             CoronaTestResultResponse(
                 coronaTestResult = RAT_POSITIVE,
                 sampleCollectedAt = null,
+                labId = null,
             )
         }
 
@@ -312,6 +319,7 @@ class RAProcessorTest : BaseTest() {
             testResultResponse = CoronaTestResultResponse(
                 coronaTestResult = PCR_OR_RAT_PENDING,
                 sampleCollectedAt = null,
+                labId = null,
             )
         )
         coEvery { submissionService.registerTest(any()) } answers { registrationData }
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/http/playbook/DefaultPlaybookTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/http/playbook/DefaultPlaybookTest.kt
index dd870ce117d4d635b42aefaba8000c70443d9e47..2ed483adc823e40dbf465713789e2530e52a7f22 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/http/playbook/DefaultPlaybookTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/http/playbook/DefaultPlaybookTest.kt
@@ -46,7 +46,8 @@ class DefaultPlaybookTest : BaseTest() {
         coEvery { verificationServer.retrieveRegistrationToken(any()) } returns "token"
         coEvery { verificationServer.pollTestResult(any()) } returns CoronaTestResultResponse(
             coronaTestResult = CoronaTestResult.PCR_OR_RAT_PENDING,
-            sampleCollectedAt = null
+            sampleCollectedAt = null,
+            labId = null,
         )
         coEvery { verificationServer.retrieveTanFake() } returns mockk()
         coEvery { verificationServer.retrieveTan(any()) } returns "tan"
@@ -214,7 +215,8 @@ class DefaultPlaybookTest : BaseTest() {
         val expectedResult = CoronaTestResult.PCR_OR_RAT_PENDING
         coEvery { verificationServer.pollTestResult(expectedToken) } returns CoronaTestResultResponse(
             coronaTestResult = expectedResult,
-            sampleCollectedAt = null
+            sampleCollectedAt = null,
+            labId = null,
         )
         coEvery { submissionServer.submitFakePayload() } throws TestException()
 
@@ -224,7 +226,8 @@ class DefaultPlaybookTest : BaseTest() {
         registrationToken shouldBe expectedToken
         testResult shouldBe CoronaTestResultResponse(
             coronaTestResult = expectedResult,
-            sampleCollectedAt = null
+            sampleCollectedAt = null,
+            labId = null,
         )
     }
 
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/service/submission/CoronaTestServiceTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/service/submission/CoronaTestServiceTest.kt
index b75849bb4e33f6cfa2b4f7a3e9e373e21d745e4c..cc973f05d4e2fcf3f3b050824c4025d6ea0c7a6d 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/service/submission/CoronaTestServiceTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/service/submission/CoronaTestServiceTest.kt
@@ -45,7 +45,8 @@ class CoronaTestServiceTest : BaseTest() {
             registrationToken = registrationToken,
             testResultResponse = CoronaTestResultResponse(
                 coronaTestResult = CoronaTestResult.PCR_OR_RAT_PENDING,
-                sampleCollectedAt = null
+                sampleCollectedAt = null,
+                labId = null,
             )
         )
     }
@@ -85,13 +86,15 @@ class CoronaTestServiceTest : BaseTest() {
     fun requestTestResultSucceeds() {
         coEvery { mockPlaybook.testResult(registrationToken) } returns CoronaTestResultResponse(
             coronaTestResult = CoronaTestResult.PCR_NEGATIVE,
-            sampleCollectedAt = null
+            sampleCollectedAt = null,
+            labId = null,
         )
 
         runBlocking {
             createInstance().checkTestResult(registrationToken) shouldBe CoronaTestResultResponse(
                 coronaTestResult = CoronaTestResult.PCR_NEGATIVE,
                 sampleCollectedAt = null,
+                labId = null,
             )
         }
         coVerify(exactly = 1) {