diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/auth/registration/RegistrationWizard.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/auth/registration/RegistrationWizard.kt
index 85600e279f128d336c77c39ae8bc499d4621a340..1d67bdd2ce5f27405a468967b9cd42839058902f 100644
--- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/auth/registration/RegistrationWizard.kt
+++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/auth/registration/RegistrationWizard.kt
@@ -82,7 +82,7 @@ interface RegistrationWizard {
      * Current registration "session" param will be included into authParams by default.
      * The authParams should contain at least one entry "type" with a String value.
      */
-    suspend fun registrationCustom(authParams: JsonDict, initialDeviceDisplayName: String? = null): RegistrationResult
+    suspend fun registrationCustom(authParams: JsonDict, initialDeviceDisplayName: String? = null, useRefreshToken: Boolean = false): RegistrationResult
 
     /**
      * Perform the "m.login.email.identity" or "m.login.msisdn" stage.
diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/registration/DefaultRegistrationWizard.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/registration/DefaultRegistrationWizard.kt
index ec0f01f335e9cea12211ce14173d3d29e8358791..63e560a351db49c2fe842cdcacb5b1b3f0e2c071 100644
--- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/registration/DefaultRegistrationWizard.kt
+++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/registration/DefaultRegistrationWizard.kt
@@ -54,12 +54,13 @@ internal class DefaultRegistrationWizard(
 
     override fun getCurrentThreePid(): String? {
         return when (val threePid = pendingSessionData.currentThreePidData?.threePid) {
-            is RegisterThreePid.Email -> threePid.email
+            is RegisterThreePid.Email  -> threePid.email
             is RegisterThreePid.Msisdn -> {
                 // Take formatted msisdn if provided by the server
                 pendingSessionData.currentThreePidData?.addThreePidRegistrationResponse?.formattedMsisdn?.takeIf { it.isNotBlank() } ?: threePid.msisdn
             }
-            null -> null
+
+            null                       -> null
         }
     }
 
@@ -199,7 +200,8 @@ internal class DefaultRegistrationWizard(
 
     override suspend fun registrationCustom(
             authParams: JsonDict,
-            initialDeviceDisplayName: String?
+            initialDeviceDisplayName: String?,
+            useRefreshToken: Boolean
     ): RegistrationResult {
         val safeSession = pendingSessionData.currentSession
                 ?: throw IllegalStateException("developer error, call createAccount() method first")
@@ -207,7 +209,7 @@ internal class DefaultRegistrationWizard(
         val mutableParams = authParams.toMutableMap()
         mutableParams["session"] = safeSession
 
-        val params = RegistrationCustomParams(auth = mutableParams, initialDeviceDisplayName = initialDeviceDisplayName)
+        val params = RegistrationCustomParams(auth = mutableParams, initialDeviceDisplayName = initialDeviceDisplayName, refreshToken = useRefreshToken)
         return performRegistrationOtherRequest(LoginType.CUSTOM, params)
     }
 
diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/registration/RegistrationCustomParams.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/registration/RegistrationCustomParams.kt
index c4dbdf262fd3a5b8adc0cf0ef3a406ceae7fbfda..036a77283463ea1b04742f22eb049af9e3c2bc41 100644
--- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/registration/RegistrationCustomParams.kt
+++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/auth/registration/RegistrationCustomParams.kt
@@ -31,5 +31,8 @@ internal data class RegistrationCustomParams(
 
         // device name
         @Json(name = "initial_device_display_name")
-        val initialDeviceDisplayName: String? = null
+        val initialDeviceDisplayName: String? = null,
+
+        @Json(name = "refresh_token")
+        val refreshToken: Boolean = false
 )