diff --git a/changelog.d/5658.bugfix b/changelog.d/5658.bugfix
new file mode 100644
index 0000000000000000000000000000000000000000..f6ae906a9ad625b287fc06df3ab2e69542e33534
--- /dev/null
+++ b/changelog.d/5658.bugfix
@@ -0,0 +1 @@
+Fix 3PID bind requests being sent to identity servers as `application/x-form-www-urlencoded` data, which is deprecated.
diff --git a/synapse/handlers/identity.py b/synapse/handlers/identity.py
index c82b1933f2160bc85b2e899ed902444853a1ea77..546d6169e9fa811785b71b84185a2c9783dc5403 100644
--- a/synapse/handlers/identity.py
+++ b/synapse/handlers/identity.py
@@ -118,7 +118,7 @@ class IdentityHandler(BaseHandler):
             raise SynapseError(400, "No client_secret in creds")
 
         try:
-            data = yield self.http_client.post_urlencoded_get_json(
+            data = yield self.http_client.post_json_get_json(
                 "https://%s%s" % (id_server, "/_matrix/identity/api/v1/3pid/bind"),
                 {"sid": creds["sid"], "client_secret": client_secret, "mxid": mxid},
             )