User Registration Process

The user registration process within our system comprises several critical stages designed to ensure both security and compliance with relevant regulations.

1. Creating and Verifying a New User Account

Step 1: Initiating the Registration Process

Description: Users must provide their details to create a new account in the system. To start the registration process, the initial request should be made without the emailConfirmCode parameter, which triggers the sending of a confirmation code to the user's email. After receiving the code, a second request must be made with the confirmation code.

API Endpoint: Create New User

Request Parameters:

  • email(string): The user's email address.
  • password(string): The password for the user account.
  • userType(string, required): The type or role of the user. Default value is CUSTOMER.
  • partnerId(string): The partner or client ID initiating the request.

Example Request without emailConfirmCode:

{
  "userType": "CUSTOMER",  // type or role of the user, e.g., customer.
  "email": "[email protected]",  // user's email address.
  "password": "A9#bL8@z",  // user's password for account access.
}

Response: Indicates that the registration process has started, and the next request should include emailConfirmCode.

Example Response:

{}  

Step 2: Completing the User Account Creation

Step 2.1: Confirming the Email Address

API Endpoint: Create New User

Request Parameters:

  • email: The user's email address.
  • emailConfirmCode: The confirmation code received via email. Default value is 12345.
  • password: The password for the user account.
  • userType (required): The type or role of the user. Default value is CUSTOMER.
  • partnerId: The partner or client ID initiating the request.

Example Request:

{
  "userType": "CUSTOMER",  // type or role of the user, e.g., customer.
  "email": "[email protected]",  // user's email address.
  "password": "A9#bL8@z",  // user's password for account access.
  "emailConfirmCode": "12345"  // code used to confirm the user's email address.
}

Example Response:

{
  "access_token": "eyJraWQiOisdvsdviOiJKV1QiLCJhb1joiYWNjb3VudHM6Y3JlYX1joiYWNjb3VudHM6Y3JlYXGciOiJSUzI1s",  // token used for authenticated API requests.
  "token_type": "Bearer",  // type of token, typically "Bearer".
  "refresh_token": "eyJraWQiOiU2OTQ4ZC1joiYWNjb3VudHM6Y3JlYXRlIGFjU",  // token used to refresh the access token.
  "scope": "accounts:create accounts:read accounts:show cardholder_user:read cardholder_user:write counterparty:create counterparty:read deposit:read deposit_atm:create deposit_bank:create deposit_crypto:create exchange:create exchange:read exchange:show top_up_account:show top_up_atm_gcp_qr:show top_up_bank:show top_up_bank_card:show top_up_crypto:show transfer:read transfer_other:create transfer_own:create user_email:create user_email:write user_mfa:create user_mfa:read user_phone:create user_phone:write withdraw:read withdraw_account:show withdraw_atm:create withdraw_atm_gcp_qr:show withdraw_bank:create withdraw_bank:show withdraw_crypto:create withdraw_crypto:show withdraw_ips:show withdraw_other_account:show",  // permissions associated with the token.
  "expires_in": 86400,  // duration in seconds until the token expires.
  "user_id": "usr:f2e6948d-cb6a-4a6a-beb8-94svdsvs45"  // unique identifier for the user.
}

User Registration Video Guide

Step 3: Adding and Confirming the Phone Number

After the user account has been successfully created and the email address has been verified, the next critical step is to add and confirm the user's phone number.

Step 3.1: Add Phone Number

Description: This endpoint is used to create or confirm a user's phone number.

API Endpoint: Create User Phone

Request Parameters:

  • phone (string, required): The phone number of the user, formatted according to international standards (e.g., +74279579268).
  • code (string, optional): The confirmation code sent to verify the new phone number.

Example Request:

{
  "phone": "74279579268",
}

Example Response:

{
  "phone": "+74279579268",
  "confirmed": false
}

After submitting the request, you will receive a response indicating that the phone number has not been confirmed yet.

Step 3.2: Confirming the Phone Number

Next, you need to enter the confirmation code (e.g., 12345) in the codefield and resubmit the request.

Example Request:

{
  "phone": "74279579268",
  "code": "12345"
}

Example Response:

{
  "phone": "+74279579268",
  "confirmed": true
}

Step 3.3: Confirming the Phone Number

Description: If the user registered via email, they must confirm their phone number by entering the code received via SMS.

API Endpoint: Confirm Phone

Request Parameters:

  • phone (string, required): The phone number to confirm.
  • code (string, required): The confirmation code sent to the phone number.

Example Request:

{
  "phone": "12868126575",
  "code": "12345"
}

Example Response:

{
  "confirmed": true,
  "phone": "string"
}

To verify the phone number and see the confirmed details, use the endpoint: Retrieve User Info

Example Response:

{
  "userType": "CUSTOMER",  // type or role of the user.
  "phone": "447874321567",  // phone number of the user.
  "primaryEmail": {  // primary email information.
    "id": "b3434a35-afeb-4ded-91e5-e222342345ee",  // unique identifier for the primary email.
    "email": "[email protected]",  // primary email address.
    "confirmed": true  // indicates whether the email is confirmed.
  },
  "emails": [{  // list of all email addresses associated with the user.
    "id": "b3434a35-afeb-4ded-91e5-e222342345ee",  // unique identifier for the email.
    "email": "[email protected]",  // email address.
    "confirmed": true  // indicates whether the email is confirmed.
  }],
  "approved": false,  // indicates whether the user has been approved.
  "addresses": [],  // list of addresses associated with the user.
  "userScopes": [  // list of permissions assigned to the user.
    "accounts:create", "accounts:read", "top_up_account:show", "top_up_bank_card:show", 
    "top_up_crypto:show", "top_up_bank:show", "top_up_atm_gcp_qr:show", "withdraw_account:show", 
    "withdraw_bank:show", "withdraw_crypto:show", "withdraw_atm_gcp_qr:show", "exchange:show", 
    "accounts:show", "withdraw_other_account:show", "deposit:read", "deposit_crypto:create", 
    "deposit_bank:create", "deposit_atm:create", "transfer:read", "transfer_own:create", 
    "transfer_other:create", "exchange:read", "exchange:create", "withdraw:read", 
    "withdraw_crypto:create", "withdraw_bank:create", "withdraw_atm:create", "withdraw_ips:show", 
    "cardholder_user:read", "cardholder_user:write", "user_phone:write", "user_email:write", 
    "user_email:create", "user_phone:create", "user_mfa:read", "user_mfa:create", 
    "counterparty:create", "counterparty:read"
  ],
  "accounts": [],  // list of accounts associated with the user.
  "userGroups": []  // list of user groups associated with the user.
}

Step 4: SUMSUB Verification

Description: For further processing, it is mandatory to complete the SUMSUB verification.

API Endpoint: Create Verification

Request Parameters:

  • type: The type of verification to be created.

You can learn more about how to complete the verification here.