---
description: >-
  Learn about the fields supported in the Basic Information step of the
  Registration wizard, including field types, validation rules, and nesting
  requirements for client data during registration
---

# Fields supported in the Basic Information step

The Registration wizard can accept and process only specific data within the Basic Information step.\
The tables below outlines the available fields that can be included in this step for clients to fill in during registration:

* [Email, password, and password confirmation fields](#email-password-and-password-confirmation-fields)
* [First name, last name, and birthday fields](#first-name-last-name-and-birthday-fields)
* [Address fields](#address-fields)
* [Phone fields](#phone-fields)
* [Consent and agreement fields](#consent-and-agreement-fields)

For each field, it's indicated whether it can be added independently or must be nested within a specific group.

Field names must be specified exactly as provided in the **Name** column.\
Field labels that will be displayed on the **Sign Up** page in the B2CORE UI can be amended according to your preferences.

In addition, specific data validation rules that should be assigned to the fields are listed in the **Validation rules** column.

{% hint style="info" %}
For descriptions of all available field types and data validation rules that can be assigned to the fields, refer to [Field types](../field-types-and-validation-rules#field-types) and [Validation rules](../field-types-and-validation-rules#validation-rules).
{% endhint %}

## Email, password, and password confirmation fields

The table below provides information about the fields for entering an email, setting a password, and confirming the password, including field types, validation rules, and additional attributes for proper configuration.

| Name                   | Field type         | Label                 | Validation rules                                                                                              | Nesting requirements | Additional attributes                                 |
| ---------------------- | ------------------ | --------------------- | ------------------------------------------------------------------------------------------------------------- | -------------------- | ----------------------------------------------------- |
| email                  | **input**          | Email                 | <p>* <code>required</code><br>* <code>email:rfc,spoof,strict</code><br>* <code>unique_active_email</code></p> | No                   | —                                                     |
| password               | **passwordButton** | Password              | <p>* <code>required</code><br>* <code>password_length</code><br>* <code>password_content</code></p>           | No                   | **Label hint** — specify `password_hint`              |
| password\_confirmation | **passwordButton** | Password confirmation | <p>* <code>required</code><br>* <code>same:password</code></p>                                                | No                   | **Label hint** — specify `password_confirmation_hint` |

### Example

This example demonstrates how to add the field for confirming the password.

<figure><img src="https://514898401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGoRxAprhHu1goANW7FXt%2Fuploads%2Fgit-blob-486811d5a9482bf4661d963675464db2e911dc5d%2Freg-wizard-password-confirm.gif?alt=media" alt="User Registration step"><figcaption><p>Password confirmation</p></figcaption></figure>

## First name, last name, and birthday fields

The table below outlines the fields for entering a first name, last name, and birth date.\
These fields must be nested within the **group** field named `info`.

| Name       | Field type | Label      | Validation rules                                                                                                                     | Nesting requirements               | Additional attributes |
| ---------- | ---------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------- | --------------------- |
| info       | **group**  | —          | —                                                                                                                                    | No                                 | —                     |
| givenName  | **input**  | First name | <p>* <code>required</code><br>* <code>string</code><br>* <code>min:1</code><br>* <code>max:30</code><br>* <code>info_name</code></p> | Must be nested in the `info` group | —                     |
| familyName | **input**  | Last name  | <p>* <code>required</code><br>* <code>string</code><br>* <code>min:1</code><br>* <code>max:30</code><br>* <code>info_name</code></p> | Must be nested in the `info` group | —                     |
| birthday   | **date**   | Birth date | <p>* <code>required</code><br>* <code>date</code><br>* <code>age:18</code></p>                                                       | Must be nested in the `info` group | —                     |

### Example

This example illustrates how to add the `info` group, which is necessary for including the fields for entering the client's first and last names.

<figure><img src="https://514898401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGoRxAprhHu1goANW7FXt%2Fuploads%2Fgit-blob-8350d470d37c77d00ec0b228d944b504f588b676%2Freg-wizard-info.gif?alt=media" alt="Info group"><figcaption><p>Info group</p></figcaption></figure>

## Address fields

The table below outlines the fields for entering address information.\
These fields must be nested within the **group** field named `0`, which must in turn be nested within the **group** named `addresses`.

| Name          | Field type | Label           | Validation rules                                                                               | Nesting requirements                  | Additional attributes                                                                                                                                                                                                                  |
| ------------- | ---------- | --------------- | ---------------------------------------------------------------------------------------------- | ------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| addresses     | **group**  | —               | <p>* <code>required</code><br>* <code>array</code></p>                                         | No                                    | —                                                                                                                                                                                                                                      |
| 0             | **group**  | —               | —                                                                                              | Must be nested in the `address` group | —                                                                                                                                                                                                                                      |
| country\_code | **select** | Country         | <p>* <code>required</code><br>* <code>nullable</code><br>* <code>countries_handbook</code></p> | Must be nested in the `0` group       | <p><strong>Options type (endpoint)</strong> — specify <code>/api/v1/countries</code><br><strong>Options type (type)</strong> — specify <code>Countries</code><br>For usage details, refer to the example provided below the table.</p> |
| state         | **input**  | State           | <p>* <code>required</code><br>* <code>string</code><br>* <code>min:1</code></p>                | Must be nested in the `0` group       | —                                                                                                                                                                                                                                      |
| postal\_code  | **input**  | Postal/Zip Code | \* `required`                                                                                  | Must be nested in the `0` group       | —                                                                                                                                                                                                                                      |
| city          | **input**  | City            | <p>* <code>required</code><br>* <code>string</code><br>* <code>min:1</code></p>                | Must be nested in the `0` group       | —                                                                                                                                                                                                                                      |

### Example

This example demonstrates how to add the `addresses` group, which includes the nested group named `0`. Both groups are necessary to include a field for selecting a country.\
To automatically specify all countries configured in your system as selection options for the field, specify `/api/v1/countries` in the **Options type (endpoint)** filed and select `Countries` in the **Options type (type)** dropdown.

<figure><img src="https://514898401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGoRxAprhHu1goANW7FXt%2Fuploads%2Fgit-blob-cd0c2a7f9d3cd5a0b5bd0eaab6ce2263e3684a9e%2Freg-wizard-addresses.gif?alt=media" alt="Address fields"><figcaption><p>Address fields</p></figcaption></figure>

## Phone fields

The table below outlines the field for entering a phone number.\
This field must be nested within the **group** field named `0`, which must in turn be nested within the **group** named `phones`.

| Name   | Field type | Label        | Validation rules                                                                       | Nesting requirements                 | Additional attributes          |
| ------ | ---------- | ------------ | -------------------------------------------------------------------------------------- | ------------------------------------ | ------------------------------ |
| phones | **group**  | —            | <p>* <code>required</code><br>* <code>array</code></p>                                 | No                                   | —                              |
| 0      | **group**  | —            | —                                                                                      | Must be nested in the `phones` group | —                              |
| phone  | **input**  | Phone number | <p>* <code>required</code><br>* <code>distinct</code><br>* <code>phone:AUTO</code></p> | Must be nested in the `0` group      | **Mask key** — specify `phone` |

### Example

This example illustrates how to add the `phones` group, which includes the nested group named `0`. Both groups are necessary to include the field for entering a phone number.

<figure><img src="https://514898401-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FGoRxAprhHu1goANW7FXt%2Fuploads%2Fgit-blob-1d4f3f5f6e00a34b071f4c546a5653e53c46e5a6%2Freg-wizard-phones.gif?alt=media" alt="Phone fields"><figcaption><p>Phone fields</p></figcaption></figure>

## Consent and agreement fields

The table below outlines the fields required for client consent. These fields are essential for obtaining necessary agreements and consents from clients. These fields must be nested within the **group** field named `requirements`.

| Name         | Field type  | Label                                                                                                                                               | Validation rules                                                                         | Nesting requirements                       | Additional attributes |
| ------------ | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ------------------------------------------ | --------------------- |
| requirements | **group**   | —                                                                                                                                                   | \* `array`                                                                               | No                                         | —                     |
| pdp          | **boolean** | <p>labels.agreement<br><br>This label is used to include a link to the document containing the terms and conditions that clients must agree to.</p> | <p>* <code>required</code><br>* <code>boolean</code><br>* <code>requiredValue</code></p> | Must be nested in the `requirements` group | —                     |
| adult        | **boolean** | I am an adult                                                                                                                                       | <p>* <code>required</code><br>* <code>boolean</code><br>* <code>requiredValue</code></p> | Must be nested in the `requirements` group | —                     |
| resident     | **boolean** | I am not US, Iran, or North Korea resident                                                                                                          | <p>* <code>required</code><br>* <code>boolean</code><br>* <code>requiredValue</code></p> | Must be nested in the `requirements` group | —                     |
