diff --git a/invenio_config_tuw/forms.py b/invenio_config_tuw/forms.py
index ff374e4bf93fb0e8f6cc3b4c6561dbee896f0ed3..04ce19f3aa22f8345c34103f7cee90c861a898cb 100644
--- a/invenio_config_tuw/forms.py
+++ b/invenio_config_tuw/forms.py
@@ -71,8 +71,16 @@ def tuw_registration_form(*args, **kwargs):
         curation_consent = BooleanField(curation_consent_message, default="checked")
         terms_of_use = BooleanField(message, [validators.required()])
 
+        def _get_tiss_id(self):
+            """Parse the TISS ID value into a number."""
+            try:
+                return int(self.user_profile.tiss_id.data)
+            except Exception:
+                return None
+
         def to_dict(self):
             """Turn the form into a dictionary."""
+
             return {
                 "email": self.email.data,
                 "username": self.username.data,
@@ -82,7 +90,7 @@ def tuw_registration_form(*args, **kwargs):
                     "given_name": self.user_profile.given_name.data,
                     "family_name": self.user_profile.family_name.data,
                     "affiliations": self.user_profile.affiliations.data,
-                    "tiss_id": self.user_profile.tiss_id.data,
+                    "tiss_id": self._get_tiss_id(),
                 },
                 "preferences": {
                     "visibility": self.preferences.visibility.data,