diff --git a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/eventregistration/organizer/QrCodeDetailFragmentTest.kt b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/eventregistration/organizer/QrCodeDetailFragmentTest.kt
index 9986448a35777f646a5b4b694ce54a39f8fbde0d..88fd58510e72caa29f6f538ac577647279cadedc 100644
--- a/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/eventregistration/organizer/QrCodeDetailFragmentTest.kt
+++ b/Corona-Warn-App/src/androidTest/java/de/rki/coronawarnapp/ui/eventregistration/organizer/QrCodeDetailFragmentTest.kt
@@ -5,9 +5,13 @@ import androidx.test.espresso.assertion.ViewAssertions.matches
 import androidx.test.espresso.matcher.ViewMatchers.withId
 import androidx.test.espresso.matcher.ViewMatchers.withText
 import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel
 import dagger.Module
 import dagger.android.ContributesAndroidInjector
 import de.rki.coronawarnapp.R
+import de.rki.coronawarnapp.appconfig.AppConfigProvider
+import de.rki.coronawarnapp.appconfig.ConfigData
+import de.rki.coronawarnapp.appconfig.PresenceTracingConfig
 import de.rki.coronawarnapp.presencetracing.checkins.qrcode.QrCodeGenerator
 import de.rki.coronawarnapp.presencetracing.storage.repo.TraceLocationRepository
 import de.rki.coronawarnapp.ui.presencetracing.organizer.details.QrCodeDetailFragment
@@ -15,7 +19,10 @@ import de.rki.coronawarnapp.ui.presencetracing.organizer.details.QrCodeDetailFra
 import de.rki.coronawarnapp.ui.presencetracing.organizer.details.QrCodeDetailViewModel
 import io.mockk.MockKAnnotations
 import io.mockk.coEvery
+import io.mockk.every
 import io.mockk.impl.annotations.MockK
+import io.mockk.mockk
+import kotlinx.coroutines.flow.flowOf
 import org.joda.time.DateTimeZone
 import org.junit.After
 import org.junit.Before
@@ -30,6 +37,7 @@ import java.util.TimeZone
 class QrCodeDetailFragmentTest : BaseUITest() {
 
     @MockK private lateinit var qrCodeGenerator: QrCodeGenerator
+    @MockK private lateinit var appConfigProvider: AppConfigProvider
     @MockK private lateinit var traceLocationRepository: TraceLocationRepository
 
     private val timeZone = TimeZone.getTimeZone("Europe/Berlin")
@@ -42,6 +50,13 @@ class QrCodeDetailFragmentTest : BaseUITest() {
 
         coEvery { traceLocationRepository.traceLocationForId(1) } returns TraceLocationData.traceLocationSameDate
         coEvery { traceLocationRepository.traceLocationForId(2) } returns TraceLocationData.traceLocationDifferentDate
+        coEvery { appConfigProvider.currentConfig } returns flowOf(
+            mockk<ConfigData>().apply {
+                every { presenceTracing } returns mockk<PresenceTracingConfig>().apply {
+                    every { qrCodeErrorCorrectionLevel } returns ErrorCorrectionLevel.M
+                }
+            }
+        )
 
         setupMockViewModel(
             object : QrCodeDetailViewModel.Factory {
@@ -87,7 +102,8 @@ class QrCodeDetailFragmentTest : BaseUITest() {
             traceLocationId = traceLocationId,
             qrCodeGenerator = qrCodeGenerator,
             traceLocationRepository = traceLocationRepository,
-            dispatcher = TestDispatcherProvider()
+            dispatcher = TestDispatcherProvider(),
+            appConfigProvider = appConfigProvider
         )
 }
 
diff --git a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/presencetracing/ui/poster/QrCodePosterTestViewModel.kt b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/presencetracing/ui/poster/QrCodePosterTestViewModel.kt
index 05bfd33c01dc2301b9fa3523e4e790b8ef72341f..02f7de56f669d9fee6d2d940cea27b6b476ccf25 100644
--- a/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/presencetracing/ui/poster/QrCodePosterTestViewModel.kt
+++ b/Corona-Warn-App/src/deviceForTesters/java/de/rki/coronawarnapp/test/presencetracing/ui/poster/QrCodePosterTestViewModel.kt
@@ -8,6 +8,7 @@ import androidx.lifecycle.MutableLiveData
 import dagger.assisted.Assisted
 import dagger.assisted.AssistedFactory
 import dagger.assisted.AssistedInject
+import de.rki.coronawarnapp.appconfig.AppConfigProvider
 import de.rki.coronawarnapp.presencetracing.checkins.qrcode.PosterTemplateProvider
 import de.rki.coronawarnapp.presencetracing.checkins.qrcode.QrCodeGenerator
 import de.rki.coronawarnapp.presencetracing.checkins.qrcode.Template
@@ -30,6 +31,7 @@ class QrCodePosterTestViewModel @AssistedInject constructor(
     private val qrCodeGenerator: QrCodeGenerator,
     private val posterTemplateProvider: PosterTemplateProvider,
     private val traceLocationRepository: TraceLocationRepository,
+    private val appConfigProvider: AppConfigProvider,
     private val fileSharing: FileSharing
 ) : CWAViewModel(dispatcher) {
 
@@ -81,10 +83,12 @@ class QrCodePosterTestViewModel @AssistedInject constructor(
             if (isRunning) return@launch
             isRunning = true
             val traceLocation = traceLocation()
+            val correctionLevel = appConfigProvider.getAppConfig().presenceTracing.qrCodeErrorCorrectionLevel
             val qrCode = qrCodeGenerator.createQrCode(
                 input = traceLocation.locationUrl,
                 length = length,
-                margin = 0
+                margin = 0,
+                correctionLevel = correctionLevel
             )
             qrCodeBitmap.postValue(qrCode)
         } catch (e: Exception) {
@@ -99,11 +103,13 @@ class QrCodePosterTestViewModel @AssistedInject constructor(
         try {
             val traceLocation = traceLocation()
             val template = posterTemplateProvider.template()
+            val correctionLevel = appConfigProvider.getAppConfig().presenceTracing.qrCodeErrorCorrectionLevel
             Timber.d("template=$template")
             val qrCode = qrCodeGenerator.createQrCode(
                 input = traceLocation.locationUrl,
                 length = template.qrCodeLength,
-                margin = 0
+                margin = 0,
+                correctionLevel = correctionLevel
             )
 
             val textInfo = buildString {
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/presencetracing/checkins/qrcode/QrCodeGenerator.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/presencetracing/checkins/qrcode/QrCodeGenerator.kt
index d4645b71f6decac284bc3720cb37070a12ac63b6..bb024a2b955640bce47235c8105bc001b153d4e3 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/presencetracing/checkins/qrcode/QrCodeGenerator.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/presencetracing/checkins/qrcode/QrCodeGenerator.kt
@@ -8,15 +8,17 @@ import com.google.zxing.EncodeHintType
 import com.google.zxing.MultiFormatWriter
 import com.google.zxing.WriterException
 import com.google.zxing.common.BitMatrix
+import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel
 import dagger.Reusable
-import de.rki.coronawarnapp.appconfig.AppConfigProvider
+import de.rki.coronawarnapp.util.coroutine.DispatcherProvider
 import de.rki.coronawarnapp.util.di.AppContext
+import kotlinx.coroutines.withContext
 import timber.log.Timber
 import javax.inject.Inject
 
 @Reusable
 class QrCodeGenerator @Inject constructor(
-    private val appConfigProvider: AppConfigProvider,
+    private val dispatcherProvider: DispatcherProvider,
     @AppContext private val context: Context,
 ) {
 
@@ -25,25 +27,29 @@ class QrCodeGenerator @Inject constructor(
      * @param input [String]
      * @param length [Int] QR Code side length
      * @param margin [Int] QR Code side's margin
+     * @param correctionLevel [ErrorCorrectionLevel]
+     *
+     * Note: we cannot use Charsets.UTF_8 as zxing calls toString internally and some android version
+     * return the class name and not the charset name
+     * @param characterSet [String]
      *
      * @throws [Exception] it could throw [IllegalArgumentException] , [WriterException]
      * or exception while creating the bitmap
      */
-    suspend fun createQrCode(input: String, length: Int = 1000, margin: Int = 1): Bitmap {
-        val correctionLevel = appConfigProvider
-            .getAppConfig()
-            .presenceTracing
-            .qrCodeErrorCorrectionLevel
+    suspend fun createQrCode(
+        input: String,
+        length: Int = 1000,
+        margin: Int = 1,
+        correctionLevel: ErrorCorrectionLevel = ErrorCorrectionLevel.Q,
+        characterSet: String = Charsets.UTF_8.name()
+    ): Bitmap = withContext(dispatcherProvider.Default) {
         Timber.i("correctionLevel=$correctionLevel")
-
         val hints = mapOf(
             EncodeHintType.ERROR_CORRECTION to correctionLevel,
             EncodeHintType.MARGIN to margin,
-            // we cannot use Charsets.UTF_8 as zxing calls toString internally and some android version
-            // return the class name and not the charset name
-            EncodeHintType.CHARACTER_SET to Charsets.UTF_8.name()
+            EncodeHintType.CHARACTER_SET to characterSet
         )
-        return MultiFormatWriter().encode(
+        MultiFormatWriter().encode(
             input,
             BarcodeFormat.QR_CODE,
             length,
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/details/QrCodeDetailFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/details/QrCodeDetailFragment.kt
index ee6f9e9bdcb47392f40db32fbeb99a23b408d74f..70758a13500e55607c746fe7347edd75573491c1 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/details/QrCodeDetailFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/details/QrCodeDetailFragment.kt
@@ -104,7 +104,7 @@ class QrCodeDetailFragment : Fragment(R.layout.trace_location_organizer_qr_code_
                 )
                 is QrCodeDetailNavigationEvents.NavigateToFullScreenQrCode -> findNavController().navigate(
                     R.id.action_global_qrCodeFullScreenFragment,
-                    QrCodeFullScreenFragmentArgs(it.qrcodeText).toBundle(),
+                    QrCodeFullScreenFragmentArgs(it.qrcodeText, it.correctionLevel).toBundle(),
                     null,
                     FragmentNavigatorExtras(binding.qrCodeImage to binding.qrCodeImage.transitionName)
                 )
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/details/QrCodeDetailNavigationEvents.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/details/QrCodeDetailNavigationEvents.kt
index d2eafc3815ad1b80f656f5fcfd21c441fbac2efc..55dfb3917d29598c885bb32c455f10b12bffdb57 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/details/QrCodeDetailNavigationEvents.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/details/QrCodeDetailNavigationEvents.kt
@@ -1,5 +1,6 @@
 package de.rki.coronawarnapp.ui.presencetracing.organizer.details
 
+import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel
 import de.rki.coronawarnapp.presencetracing.checkins.qrcode.TraceLocation
 import de.rki.coronawarnapp.ui.presencetracing.organizer.category.adapter.category.TraceLocationCategory
 
@@ -9,5 +10,8 @@ sealed class QrCodeDetailNavigationEvents {
     data class NavigateToDuplicateFragment(val traceLocation: TraceLocation, val category: TraceLocationCategory) :
         QrCodeDetailNavigationEvents()
 
-    data class NavigateToFullScreenQrCode(val qrcodeText: String) : QrCodeDetailNavigationEvents()
+    data class NavigateToFullScreenQrCode(
+        val qrcodeText: String,
+        val correctionLevel: ErrorCorrectionLevel
+    ) : QrCodeDetailNavigationEvents()
 }
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/details/QrCodeDetailViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/details/QrCodeDetailViewModel.kt
index 50ac1f175e67ac785270d6b5b3d846a442e0f16f..747679e4f9ef387e99db6ba592e43344bb781e2e 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/details/QrCodeDetailViewModel.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/details/QrCodeDetailViewModel.kt
@@ -6,6 +6,7 @@ import androidx.lifecycle.MutableLiveData
 import dagger.assisted.Assisted
 import dagger.assisted.AssistedFactory
 import dagger.assisted.AssistedInject
+import de.rki.coronawarnapp.appconfig.AppConfigProvider
 import de.rki.coronawarnapp.presencetracing.checkins.qrcode.QrCodeGenerator
 import de.rki.coronawarnapp.presencetracing.checkins.qrcode.TraceLocation
 import de.rki.coronawarnapp.presencetracing.storage.repo.TraceLocationRepository
@@ -16,6 +17,7 @@ import de.rki.coronawarnapp.util.coroutine.DispatcherProvider
 import de.rki.coronawarnapp.util.ui.SingleLiveEvent
 import de.rki.coronawarnapp.util.viewmodel.CWAViewModel
 import de.rki.coronawarnapp.util.viewmodel.CWAViewModelFactory
+import kotlinx.coroutines.flow.first
 import org.joda.time.Instant
 import timber.log.Timber
 import java.lang.Exception
@@ -24,6 +26,7 @@ class QrCodeDetailViewModel @AssistedInject constructor(
     @Assisted private val traceLocationId: Long,
     private val dispatcher: DispatcherProvider,
     private val qrCodeGenerator: QrCodeGenerator,
+    private val appConfigProvider: AppConfigProvider,
     private val traceLocationRepository: TraceLocationRepository
 ) : CWAViewModel() {
 
@@ -57,8 +60,17 @@ class QrCodeDetailViewModel @AssistedInject constructor(
     private fun createQrCode(traceLocation: TraceLocation) = launch(context = dispatcher.IO) {
         try {
             val input = traceLocation.locationUrl
+            val correctionLevel = appConfigProvider.currentConfig.first().presenceTracing.qrCodeErrorCorrectionLevel
             Timber.d("input=$input")
-            mutableUiState.postValue(UiState(traceLocation, qrCodeGenerator.createQrCode(input)))
+            mutableUiState.postValue(
+                UiState(
+                    traceLocation,
+                    qrCodeGenerator.createQrCode(
+                        input = input,
+                        correctionLevel = correctionLevel
+                    )
+                )
+            )
         } catch (e: Exception) {
             Timber.d(e, "Qr code creation failed")
             e.report(ExceptionCategory.INTERNAL)
@@ -86,9 +98,15 @@ class QrCodeDetailViewModel @AssistedInject constructor(
         }
     }
 
-    fun openFullScreen() {
+    fun openFullScreen() = launch {
         traceLocation?.let {
-            routeToScreen.postValue(QrCodeDetailNavigationEvents.NavigateToFullScreenQrCode(it.locationUrl))
+            val correctionLevel = appConfigProvider.currentConfig.first().presenceTracing.qrCodeErrorCorrectionLevel
+            routeToScreen.postValue(
+                QrCodeDetailNavigationEvents.NavigateToFullScreenQrCode(
+                    it.locationUrl,
+                    correctionLevel
+                )
+            )
         }
     }
 
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/poster/QrCodePosterViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/poster/QrCodePosterViewModel.kt
index 4f903050f79ca8c91daa2885f382f8ff21f1fd2e..0c9f19cd9ad8a0448aef2469cc34a4f31dc1a917 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/poster/QrCodePosterViewModel.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/presencetracing/organizer/poster/QrCodePosterViewModel.kt
@@ -8,6 +8,7 @@ import androidx.lifecycle.MutableLiveData
 import dagger.assisted.Assisted
 import dagger.assisted.AssistedFactory
 import dagger.assisted.AssistedInject
+import de.rki.coronawarnapp.appconfig.AppConfigProvider
 import de.rki.coronawarnapp.presencetracing.checkins.qrcode.PosterTemplateProvider
 import de.rki.coronawarnapp.presencetracing.checkins.qrcode.QrCodeGenerator
 import de.rki.coronawarnapp.presencetracing.checkins.qrcode.Template
@@ -19,6 +20,7 @@ import de.rki.coronawarnapp.util.files.FileSharing
 import de.rki.coronawarnapp.util.ui.SingleLiveEvent
 import de.rki.coronawarnapp.util.viewmodel.CWAViewModel
 import de.rki.coronawarnapp.util.viewmodel.CWAViewModelFactory
+import kotlinx.coroutines.flow.first
 import timber.log.Timber
 import java.io.File
 import java.io.FileOutputStream
@@ -30,6 +32,7 @@ class QrCodePosterViewModel @AssistedInject constructor(
     private val qrCodeGenerator: QrCodeGenerator,
     private val posterTemplateProvider: PosterTemplateProvider,
     private val traceLocationRepository: TraceLocationRepository,
+    private val appConfigProvider: AppConfigProvider,
     private val fileSharing: FileSharing
 ) : CWAViewModel(dispatcher) {
 
@@ -80,11 +83,13 @@ class QrCodePosterViewModel @AssistedInject constructor(
         try {
             val traceLocation = traceLocation()
             val template = posterTemplateProvider.template()
+            val correctionLevel = appConfigProvider.currentConfig.first().presenceTracing.qrCodeErrorCorrectionLevel
             Timber.d("template=$template")
             val qrCode = qrCodeGenerator.createQrCode(
                 input = traceLocation.locationUrl,
                 length = template.qrCodeLength,
-                margin = 0
+                margin = 0,
+                correctionLevel = correctionLevel
             )
 
             val textInfo = buildString {
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/qrcode/fullscreen/QrCodeFullScreenFragment.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/qrcode/fullscreen/QrCodeFullScreenFragment.kt
index 0f4420cc9b091306c0098b01842e93a780cf6cd3..ec0a46a97a49c1f6cb37eaac07da72297751c10e 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/qrcode/fullscreen/QrCodeFullScreenFragment.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/qrcode/fullscreen/QrCodeFullScreenFragment.kt
@@ -37,7 +37,8 @@ class QrCodeFullScreenFragment : Fragment(R.layout.fragment_qr_code_full_screen)
         constructorCall = { factory, _ ->
             factory as QrCodeFullScreenViewModel.Factory
             factory.create(
-                qrcodeText = args.qrCodeText
+                qrcodeText = args.qrCodeText,
+                correctionLevel = args.correctionLevel
             )
         }
     )
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/qrcode/fullscreen/QrCodeFullScreenViewModel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/qrcode/fullscreen/QrCodeFullScreenViewModel.kt
index 7427c998be1a03c2f76a8621e4e65c33bf0cfc15..1cfc2635a2d06246468016f3ec92e69c437a9c6a 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/qrcode/fullscreen/QrCodeFullScreenViewModel.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/ui/qrcode/fullscreen/QrCodeFullScreenViewModel.kt
@@ -3,6 +3,7 @@ package de.rki.coronawarnapp.ui.qrcode.fullscreen
 import android.graphics.Bitmap
 import androidx.lifecycle.LiveData
 import androidx.lifecycle.MutableLiveData
+import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel
 import dagger.assisted.Assisted
 import dagger.assisted.AssistedFactory
 import dagger.assisted.AssistedInject
@@ -15,6 +16,7 @@ import timber.log.Timber
 
 class QrCodeFullScreenViewModel @AssistedInject constructor(
     @Assisted private val qrcodeText: String,
+    @Assisted private val correctionLevel: ErrorCorrectionLevel,
     private val qrCodeGenerator: QrCodeGenerator,
     dispatcherProvider: DispatcherProvider
 ) : CWAViewModel(dispatcherProvider) {
@@ -29,7 +31,9 @@ class QrCodeFullScreenViewModel @AssistedInject constructor(
 
     private fun generateQrCode() = launch {
         try {
-            qrCodeBitmap.postValue(qrCodeGenerator.createQrCode(qrcodeText))
+            qrCodeBitmap.postValue(
+                qrCodeGenerator.createQrCode(input = qrcodeText, correctionLevel = correctionLevel)
+            )
         } catch (e: Exception) {
             Timber.d(e, "generateQrCode failed")
         }
@@ -40,7 +44,8 @@ class QrCodeFullScreenViewModel @AssistedInject constructor(
     @AssistedFactory
     interface Factory : CWAViewModelFactory<QrCodeFullScreenViewModel> {
         fun create(
-            qrcodeText: String
+            qrcodeText: String,
+            correctionLevel: ErrorCorrectionLevel
         ): QrCodeFullScreenViewModel
     }
 }
diff --git a/Corona-Warn-App/src/main/res/navigation/nav_graph.xml b/Corona-Warn-App/src/main/res/navigation/nav_graph.xml
index 6966786eac8380ae27a2810af9f5ee6f5cfcc53d..3b7b70124ea8c4dd175329cd2c23698d9a353058 100644
--- a/Corona-Warn-App/src/main/res/navigation/nav_graph.xml
+++ b/Corona-Warn-App/src/main/res/navigation/nav_graph.xml
@@ -807,6 +807,10 @@
         <argument
             android:name="qrCodeText"
             app:argType="string" />
+        <argument
+            android:name="correctionLevel"
+            app:argType="com.google.zxing.qrcode.decoder.ErrorCorrectionLevel"
+            android:defaultValue="Q" />
     </fragment>
     <action
         android:id="@+id/action_global_qrCodeFullScreenFragment"
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/presencetracing/organizer/poster/QrCodePosterViewModelTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/presencetracing/organizer/poster/QrCodePosterViewModelTest.kt
index 7d843d40c657bd1e0adc97f8ca448aedd471d96d..7438b8e3c027c075acbea0b19f55c0e2facc61ca 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/presencetracing/organizer/poster/QrCodePosterViewModelTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/ui/presencetracing/organizer/poster/QrCodePosterViewModelTest.kt
@@ -1,6 +1,10 @@
 package de.rki.coronawarnapp.ui.presencetracing.organizer.poster
 
 import android.graphics.Bitmap
+import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel
+import de.rki.coronawarnapp.appconfig.AppConfigProvider
+import de.rki.coronawarnapp.appconfig.ConfigData
+import de.rki.coronawarnapp.appconfig.PresenceTracingConfig
 import de.rki.coronawarnapp.presencetracing.checkins.qrcode.PosterTemplateProvider
 import de.rki.coronawarnapp.presencetracing.checkins.qrcode.QrCodeGenerator
 import de.rki.coronawarnapp.presencetracing.checkins.qrcode.Template
@@ -13,6 +17,8 @@ import io.mockk.MockKAnnotations
 import io.mockk.coEvery
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
+import io.mockk.mockk
+import kotlinx.coroutines.flow.flowOf
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import org.junit.jupiter.api.extension.ExtendWith
@@ -32,6 +38,7 @@ class QrCodePosterViewModelTest : BaseTest() {
     @MockK lateinit var templateBitmap: Bitmap
     @MockK lateinit var textBox: QRCodeTextBoxAndroid
     @MockK lateinit var traceLocation: TraceLocation
+    @MockK lateinit var appConfigProvider: AppConfigProvider
     private lateinit var template: Template
 
     @BeforeEach
@@ -48,13 +55,21 @@ class QrCodePosterViewModelTest : BaseTest() {
             textBox = textBox
         )
 
-        coEvery { qrCodeGenerator.createQrCode("locationUrl", any(), any()) } returns qrCodeBitmap
+        coEvery { qrCodeGenerator.createQrCode("locationUrl", any(), any(), any(), any()) } returns qrCodeBitmap
         coEvery { posterTemplateProvider.template() } returns template
         coEvery { traceLocationRepository.traceLocationForId(any()) } returns traceLocation.apply {
             every { description } returns "description"
             every { address } returns "address"
             every { locationUrl } returns "locationUrl"
         }
+
+        coEvery { appConfigProvider.currentConfig } returns flowOf(
+            mockk<ConfigData>().apply {
+                every { presenceTracing } returns mockk<PresenceTracingConfig>().apply {
+                    every { qrCodeErrorCorrectionLevel } returns ErrorCorrectionLevel.M
+                }
+            }
+        )
     }
 
     @Test
@@ -72,6 +87,7 @@ class QrCodePosterViewModelTest : BaseTest() {
         qrCodeGenerator = qrCodeGenerator,
         posterTemplateProvider = posterTemplateProvider,
         traceLocationRepository = traceLocationRepository,
-        fileSharing = fileSharing
+        fileSharing = fileSharing,
+        appConfigProvider = appConfigProvider
     )
 }