diff --git a/app/src/main/java/org/futo/circles/feature/sign_up/SignUpDataSource.kt b/app/src/main/java/org/futo/circles/feature/sign_up/SignUpDataSource.kt
index 231bbd8bc3676a2ba088e193d96987b34ffa50ca..ab7447e322916a8f891df8adacb039ca801d20eb 100644
--- a/app/src/main/java/org/futo/circles/feature/sign_up/SignUpDataSource.kt
+++ b/app/src/main/java/org/futo/circles/feature/sign_up/SignUpDataSource.kt
@@ -129,4 +129,7 @@ class SignUpDataSource(
         subtitleLiveData.postValue(subtitle)
     }
 
+    companion object {
+        const val TYPE_PARAM_KEY = "type"
+    }
 }
\ No newline at end of file
diff --git a/app/src/main/java/org/futo/circles/feature/sign_up/subscription_stage/SubscriptionStageDataSource.kt b/app/src/main/java/org/futo/circles/feature/sign_up/subscription_stage/SubscriptionStageDataSource.kt
index 6bbac319a6fe07b9046eb6a05cb6265eb5908916..3c79e48171a2f8527d2fbf8afd271237346aa9c4 100644
--- a/app/src/main/java/org/futo/circles/feature/sign_up/subscription_stage/SubscriptionStageDataSource.kt
+++ b/app/src/main/java/org/futo/circles/feature/sign_up/subscription_stage/SubscriptionStageDataSource.kt
@@ -3,6 +3,7 @@ package org.futo.circles.feature.sign_up.subscription_stage
 import org.futo.circles.extensions.Response
 import org.futo.circles.extensions.createResult
 import org.futo.circles.feature.sign_up.SignUpDataSource
+import org.futo.circles.feature.sign_up.SignUpDataSource.Companion.TYPE_PARAM_KEY
 import org.futo.circles.provider.MatrixInstanceProvider
 import org.matrix.android.sdk.api.auth.registration.RegistrationResult
 import org.matrix.android.sdk.api.auth.registration.Stage
@@ -21,14 +22,24 @@ class SubscriptionStageDataSource(
         val result = createResult {
             wizard.registrationCustom(
                 mapOf(
-                    "type" to type,
-                    "product" to receipt
+                    TYPE_PARAM_KEY to type,
+                    PRODUCT_PARAM_KEY to receipt
                 )
             )
         }
 
         (result as? Response.Success)?.let { signUpDataSource.stageCompleted(result.data) }
-
         return result
     }
+
+    fun getProductIdsList() = ((signUpDataSource.currentStage as? Stage.Other)
+        ?.params?.get(PRODUCT_IDS_KEY) as? List<*>)
+        ?.map { it.toString() }
+        ?: emptyList()
+
+
+    companion object {
+        private const val PRODUCT_PARAM_KEY = "product"
+        private const val PRODUCT_IDS_KEY = "productIds"
+    }
 }
\ No newline at end of file
diff --git a/app/src/main/java/org/futo/circles/feature/sign_up/validate_token/ValidateTokenDataSource.kt b/app/src/main/java/org/futo/circles/feature/sign_up/validate_token/ValidateTokenDataSource.kt
index 43864d482ee842cffa9944e49f29f1e958809508..861c4bee47717f3520addfed10d80e832b0e4f6a 100644
--- a/app/src/main/java/org/futo/circles/feature/sign_up/validate_token/ValidateTokenDataSource.kt
+++ b/app/src/main/java/org/futo/circles/feature/sign_up/validate_token/ValidateTokenDataSource.kt
@@ -3,6 +3,7 @@ package org.futo.circles.feature.sign_up.validate_token
 import org.futo.circles.extensions.Response
 import org.futo.circles.extensions.createResult
 import org.futo.circles.feature.sign_up.SignUpDataSource
+import org.futo.circles.feature.sign_up.SignUpDataSource.Companion.TYPE_PARAM_KEY
 import org.futo.circles.provider.MatrixInstanceProvider
 import org.matrix.android.sdk.api.auth.registration.RegistrationResult
 import org.matrix.android.sdk.api.auth.registration.Stage
@@ -21,8 +22,8 @@ class ValidateTokenDataSource(
         val result = createResult {
             wizard.registrationCustom(
                 mapOf(
-                    "type" to type,
-                    "token" to token
+                    TYPE_PARAM_KEY to type,
+                    TOKEN_PARAM_KEY to token
                 )
             )
         }
@@ -31,4 +32,8 @@ class ValidateTokenDataSource(
 
         return result
     }
+
+    companion object {
+        private const val TOKEN_PARAM_KEY = "token"
+    }
 }
\ No newline at end of file