# Registration Process Flow

<mark style="color:yellow;">**1. Check Identity (ciamregsrvc/webRegistration/checkIdentity)**</mark>

This endpoint checks whether the User is available in Cymmetri Database with following scenarios:

* Check User in Cymmetri Database
* Query the Cymmetri database using the user details.
* If the user is found, initiate the login flow.
* If the user is not found, proceed to the next step.

Else, user will be checked in the CBS with the keeping following scenarios in consideration

* Query the Bank database using the user details.
* If the user is found, trigger the registration flow.
* Send an OTP (One-Time Password) to the user's registered email.
* If the user is not found, proceed to the next step.

IF neither cymmetri nor bank holds this user, then the following action will be performed

* send a response indicating invalid data/user does not exist.

{% openapi src="<https://1897422846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAqdGCEwpNMRjDgEmGpJM%2Fuploads%2FbGP3c0lfnyxPsTrmJRMT%2Fswagger.yaml?alt=media&token=708c25fa-cd8b-4bb2-9f68-a6773cc364d1>" path="/webRegistration/checkIdentity" method="post" %}
[swagger.yaml](https://1897422846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAqdGCEwpNMRjDgEmGpJM%2Fuploads%2FbGP3c0lfnyxPsTrmJRMT%2Fswagger.yaml?alt=media\&token=708c25fa-cd8b-4bb2-9f68-a6773cc364d1)
{% endopenapi %}

<mark style="color:yellow;">**2. Verify Email OTP (ciamregsrvc/webRegistration/VerifyEmailOtp)**</mark>

Email OTP Verification Steps:

* Sending Email OTP: Generate and send an OTP to the user’s email in the registration step.
* Verifying Email OTP: When a user submits the OTP, it needs to be verified.

If Email OTP is Correct:

* Move to the next step and send a mobile OTP.

If Email OTP is Incorrect:

* Track attempts.
* If the user reaches the maximum number of attempts allowed, block the user.

{% openapi src="<https://1897422846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAqdGCEwpNMRjDgEmGpJM%2Fuploads%2FbGP3c0lfnyxPsTrmJRMT%2Fswagger.yaml?alt=media&token=708c25fa-cd8b-4bb2-9f68-a6773cc364d1>" path="/otp/verifyOtp" method="post" %}
[swagger.yaml](https://1897422846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAqdGCEwpNMRjDgEmGpJM%2Fuploads%2FbGP3c0lfnyxPsTrmJRMT%2Fswagger.yaml?alt=media\&token=708c25fa-cd8b-4bb2-9f68-a6773cc364d1)
{% endopenapi %}

<mark style="color:yellow;">**3. Resend OTP Email (ciamregsrvc/webRegistration/resendOtpEmail)**</mark>

&#x20;          If the user does not receive the OTP, they can request to resend it.

{% openapi src="<https://1897422846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAqdGCEwpNMRjDgEmGpJM%2Fuploads%2FbGP3c0lfnyxPsTrmJRMT%2Fswagger.yaml?alt=media&token=708c25fa-cd8b-4bb2-9f68-a6773cc364d1>" path="/webRegistration/resendOtpEmail" method="post" %}
[swagger.yaml](https://1897422846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAqdGCEwpNMRjDgEmGpJM%2Fuploads%2FbGP3c0lfnyxPsTrmJRMT%2Fswagger.yaml?alt=media\&token=708c25fa-cd8b-4bb2-9f68-a6773cc364d1)
{% endopenapi %}

<mark style="color:yellow;">**4. Verify Mobile OTP(ciamregsrvc/webRegistration/VerifyMobileOtp)**</mark>

Mobile OTP Verification Steps:

* Sending Mobile OTP: Generate and send an OTP to the user’s mobile in the verify email OTP step.
* Verifying Mobile OTP: When a user submits the OTP, it needs to be verified.

If Mobile OTP is Correct:

* Proceed to the next step.

If Mobile OTP is Incorrect:

* Track attempts.
* If the user reaches the maximum number of attempts allowed, block the user.

{% openapi src="<https://1897422846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAqdGCEwpNMRjDgEmGpJM%2Fuploads%2FbGP3c0lfnyxPsTrmJRMT%2Fswagger.yaml?alt=media&token=708c25fa-cd8b-4bb2-9f68-a6773cc364d1>" path="/webRegistration/VerifyEmailOtp" method="post" %}
[swagger.yaml](https://1897422846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAqdGCEwpNMRjDgEmGpJM%2Fuploads%2FbGP3c0lfnyxPsTrmJRMT%2Fswagger.yaml?alt=media\&token=708c25fa-cd8b-4bb2-9f68-a6773cc364d1)
{% endopenapi %}

<mark style="color:yellow;">**5. Resend OTP Mobile (ciamregsrvc/webRegistration/resendOtpMobile)**</mark>

&#x20;          If the user does not receive the OTP, they can request to resend it.

{% openapi src="<https://1897422846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAqdGCEwpNMRjDgEmGpJM%2Fuploads%2FbGP3c0lfnyxPsTrmJRMT%2Fswagger.yaml?alt=media&token=708c25fa-cd8b-4bb2-9f68-a6773cc364d1>" path="/webRegistration/resendOtpMobile" method="post" %}
[swagger.yaml](https://1897422846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAqdGCEwpNMRjDgEmGpJM%2Fuploads%2FbGP3c0lfnyxPsTrmJRMT%2Fswagger.yaml?alt=media\&token=708c25fa-cd8b-4bb2-9f68-a6773cc364d1)
{% endopenapi %}

<mark style="color:yellow;">**6. Get MFA LIST (ciamregsrvc/webRegistration/mfa/list)**</mark>

&#x20;          Fetch all the available MFA factors.

{% openapi src="<https://1897422846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAqdGCEwpNMRjDgEmGpJM%2Fuploads%2FbGP3c0lfnyxPsTrmJRMT%2Fswagger.yaml?alt=media&token=708c25fa-cd8b-4bb2-9f68-a6773cc364d1>" path="/webRegistration/mfa/list" method="get" %}
[swagger.yaml](https://1897422846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAqdGCEwpNMRjDgEmGpJM%2Fuploads%2FbGP3c0lfnyxPsTrmJRMT%2Fswagger.yaml?alt=media\&token=708c25fa-cd8b-4bb2-9f68-a6773cc364d1)
{% endopenapi %}

<mark style="color:yellow;">**7. Authenticate User (ciamregsrvc/webRegistration/authenticateUser)**</mark>

Authentication Steps:

* Authenticate user with available MFA factors like credit card, debit card.
* If the user entered correct details, proceed to the next step.
* If a user entered wrong details and reaches the maximum number of attempts allowed, block the user.

{% openapi src="<https://1897422846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAqdGCEwpNMRjDgEmGpJM%2Fuploads%2FbGP3c0lfnyxPsTrmJRMT%2Fswagger.yaml?alt=media&token=708c25fa-cd8b-4bb2-9f68-a6773cc364d1>" path="/webRegistration/authenticateUser" method="post" %}
[swagger.yaml](https://1897422846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAqdGCEwpNMRjDgEmGpJM%2Fuploads%2FbGP3c0lfnyxPsTrmJRMT%2Fswagger.yaml?alt=media\&token=708c25fa-cd8b-4bb2-9f68-a6773cc364d1)
{% endopenapi %}

<mark style="color:yellow;">**8. Fetch existing User Id (ciamregsrvc/webRegistration/existingUserId)**</mark>

&#x20;          Fetch user ID from the existing system (bank database if available).

{% openapi src="<https://1897422846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAqdGCEwpNMRjDgEmGpJM%2Fuploads%2FbGP3c0lfnyxPsTrmJRMT%2Fswagger.yaml?alt=media&token=708c25fa-cd8b-4bb2-9f68-a6773cc364d1>" path="/webRegistration/existingUserId" method="get" %}
[swagger.yaml](https://1897422846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAqdGCEwpNMRjDgEmGpJM%2Fuploads%2FbGP3c0lfnyxPsTrmJRMT%2Fswagger.yaml?alt=media\&token=708c25fa-cd8b-4bb2-9f68-a6773cc364d1)
{% endopenapi %}

<mark style="color:yellow;">**9. Save user id (ciamregsrvc/webRegistration/saveuserid)**</mark>

&#x20;          User can save a new user ID if it is not already in use.

{% openapi src="<https://1897422846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAqdGCEwpNMRjDgEmGpJM%2Fuploads%2FbGP3c0lfnyxPsTrmJRMT%2Fswagger.yaml?alt=media&token=708c25fa-cd8b-4bb2-9f68-a6773cc364d1>" path="/webRegistration/saveuserid" method="post" %}
[swagger.yaml](https://1897422846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAqdGCEwpNMRjDgEmGpJM%2Fuploads%2FbGP3c0lfnyxPsTrmJRMT%2Fswagger.yaml?alt=media\&token=708c25fa-cd8b-4bb2-9f68-a6773cc364d1)
{% endopenapi %}

<mark style="color:yellow;">**10. Validate Password (ciamregsrvc/webRegistration/validatePassword)**</mark>

·   Validate if the password follows all the rules.

·   If it does, move on to the next step.

·   If it doesn't, the user needs to choose another password.

{% openapi src="<https://1897422846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAqdGCEwpNMRjDgEmGpJM%2Fuploads%2FbGP3c0lfnyxPsTrmJRMT%2Fswagger.yaml?alt=media&token=708c25fa-cd8b-4bb2-9f68-a6773cc364d1>" path="/webRegistration/validatePassword" method="post" %}
[swagger.yaml](https://1897422846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAqdGCEwpNMRjDgEmGpJM%2Fuploads%2FbGP3c0lfnyxPsTrmJRMT%2Fswagger.yaml?alt=media\&token=708c25fa-cd8b-4bb2-9f68-a6773cc364d1)
{% endopenapi %}

<mark style="color:yellow;">**11. Set Password: (ciamregsrvc/webRegistration/setIbPassword)**</mark>

·   The user can set a password that meets all the password policy requirements.

{% openapi src="<https://1897422846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAqdGCEwpNMRjDgEmGpJM%2Fuploads%2FbGP3c0lfnyxPsTrmJRMT%2Fswagger.yaml?alt=media&token=708c25fa-cd8b-4bb2-9f68-a6773cc364d1>" path="/webRegistration/setIbPassword" method="post" %}
[swagger.yaml](https://1897422846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAqdGCEwpNMRjDgEmGpJM%2Fuploads%2FbGP3c0lfnyxPsTrmJRMT%2Fswagger.yaml?alt=media\&token=708c25fa-cd8b-4bb2-9f68-a6773cc364d1)
{% endopenapi %}

<figure><img src="https://1897422846-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FAqdGCEwpNMRjDgEmGpJM%2Fuploads%2FVNlITyyfSAGj68G70dPA%2FNoteGPT-Flowchart-1737394291752.png?alt=media&#x26;token=850365e5-b822-427e-94d0-1cc775bdeb0f" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://intelliauth.cymmetri.io/api-specification/registration-process-flow.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
