diff --git a/changelog.d/12639.bugfix b/changelog.d/12639.bugfix
new file mode 100644
index 0000000000000000000000000000000000000000..c01596282c9f648b801934b98b4b0daf82a29993
--- /dev/null
+++ b/changelog.d/12639.bugfix
@@ -0,0 +1 @@
+Add new `enable_registration_token_3pid_bypass` configuration option to allow registrations via token as an alternative to verifying a 3pid.
\ No newline at end of file
diff --git a/synapse/config/registration.py b/synapse/config/registration.py
index 70eb7e6a9778b31606da5787c65096599cba296e..d2d0425e62cb5e02c472867d39d526cf5fe04240 100644
--- a/synapse/config/registration.py
+++ b/synapse/config/registration.py
@@ -43,8 +43,8 @@ class RegistrationConfig(Config):
         self.registration_requires_token = config.get(
             "registration_requires_token", False
         )
-        self.enable_registration_token_3pid_bypasss = config.get(
-            "enable_registration_token_3pid_bypasss", False
+        self.enable_registration_token_3pid_bypass = config.get(
+            "enable_registration_token_3pid_bypass", False
         )
         self.registration_shared_secret = config.get("registration_shared_secret")
 
diff --git a/synapse/handlers/ui_auth/checkers.py b/synapse/handlers/ui_auth/checkers.py
index e2a441066d1cbad4292cd798fb2d8713c9abcedb..05cebb5d4d8960da8f338a184ee2be3438fd502c 100644
--- a/synapse/handlers/ui_auth/checkers.py
+++ b/synapse/handlers/ui_auth/checkers.py
@@ -258,7 +258,7 @@ class RegistrationTokenAuthChecker(UserInteractiveAuthChecker):
         self.hs = hs
         self._enabled = bool(
             hs.config.registration.registration_requires_token
-        ) or bool(hs.config.registration.enable_registration_token_3pid_bypasss)
+        ) or bool(hs.config.registration.enable_registration_token_3pid_bypass)
         self.store = hs.get_datastores().main
 
     def is_enabled(self) -> bool:
diff --git a/synapse/rest/client/register.py b/synapse/rest/client/register.py
index 47b6db1ebfbaaf13b8996e329b613ed4e5133fef..e8e51a9c66ad8542ca5d60c1f22298f3f08983ff 100644
--- a/synapse/rest/client/register.py
+++ b/synapse/rest/client/register.py
@@ -930,7 +930,7 @@ def _calculate_registration_flows(
         flows.append([LoginType.MSISDN, LoginType.EMAIL_IDENTITY])
 
     # Add a flow that doesn't require any 3pids, if the config requests it.
-    if config.registration.enable_registration_token_3pid_bypasss:
+    if config.registration.enable_registration_token_3pid_bypass:
         flows.append([LoginType.REGISTRATION_TOKEN])
 
     # Prepend m.login.terms to all flows if we're requiring consent