> ## Documentation Index
> Fetch the complete documentation index at: https://docs.m1amdocs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# User

The User is the main entity in Storefront Gateway. It represents an individual person.

\[audience: MALFORMED prodId]**Note:** User with an uppercase **U** refers to the Storefront Gateway User entity, whereas user with a lowercase **u** refers to the user or human being. You might also think of the Storefront Gateway User entity as the backend technical equivalent of the front-end's "User ID" or "User Profile."\[/audience: MALFORMED prodId]

When a user onboards to get their own User ID or User Profile within your service, they are, in effect, creating that User entity within the Storefront Gateway data store through the **Onboard User with Email and Mobile** or **Onboard User with Social Account** Process. Once a user authenticates into a service, the client application can then invoke the `GET /user` API to retrieve that User entity details.

Users can have different `type`s in the context of an association with other entities. For example, a User in a Storefront Gateway Group can be designated as either the group Primary, group Admin, or a Regular type. That type is defined on the actual User-to-Group Association. However, on the actual User entity itself, in isolation, Storefront Gateway currently only supports a single `RegularUser` type. Additional entity types may be added in the future.

A Storefront Gateway User entity contains the following default properties.

| Property | Definition | Type | Example |
| - | - | - | - |
| `id` | Unique internal identifier for the Storefront Gateway User entity. | integer | `123456789` |
| `type` | Type of User entity. Currently, only `RegularUser` is supported. | string | `"com.uxpsystems.mint.user.RegularUser"` |
| `displayName` | Optional display-friendly name that the client UI can render. | string | `"Jane Smith"` |
| `status` | Entity status of the User. Possible User statuses include:- activating: The user has onboarded, but they have yet to verify their authN ID and fully activate. - activated: The user has onboarded, has at least one verified authN ID. - suspended: The user is temporarily suspend from authenticating. They can be reactivated. - deactivated: The User entity is permanently deactivated, and may be automatically deleted soon. | string | `"activated"` |
| `avatarUrl` | URL where the User's avatar image is stored. Useful for client applications that want to include an avatar for the user's authenticated view. | string | `"http://client.myavatar/janesmith"` |
| `createdDate` | Date on which this entity was created, expressed in UNIX Epoch format. | integer | `1543833950000` |
| `activatedDate` | Date on which this entity was activated, expressed in UNIX Epoch format. | integer | `1527917430000` |
| `updatedDate` | Date on which this entity was last updated, expressed in UNIX Epoch format. | integer | `1538682581776` |
| `suspendedDate` | Date on which this entity was suspended, expressed in UNIX Epoch format. | integer | `1621622651675` |
| `deactivatedDate` | Date on which this entity was deactivated, expressed in UNIX Epoch format. | integer | `1794095435804` |
| `attributes` | Additional metadata about the entity. See the attributes table below. | | |
| User entities also contain attributes: | | | |

| Attribute | Definition | Type | Example |
| - | - | - | - |
| `familyName` | User's family (or last) name. | string | `"smith"` |
| `givenName` | User's given (or first) name. | string | `"jane"` |
| `language` | User's preferred language, as per [ISO 639-1:2002](https://www.iso.org/standard/22109.html). | string | `"en"` |
| `emails` | List that contains one or more email addresses registered as Authentication Identifiers (authN IDs). Each object in the list includes: | array of `email` objects | |
| `id` | Unique internal identifier for the email registered as an authN ID. | integer | `257` |
| `email` | Actual email address value. | string | `"jane_smith@email.ca"` |
| `status` | Current status of the authN ID. Possible statuses include:- activated: authN ID is fully registered and verified. - activating: authN ID is registered but needs to be verified. - pending: authN ID is registered to replace another authN ID but needs to be verified. | string | `"activated"` |
| `mfaOption` | Whether this authN ID is registered as an [MFA](c_MFA) option for the user. | boolean | `"false"` |
| `mobiles` | List that contains one or more mobile numbers that are registered as Authentication Identifiers (authN IDs). Each object includes: | array of `mobile` objects | |
| `id` | Unique internal identifier for the mobile registered as an authN ID. | integer | `834328` |
| `number` | Actual mobile number value. | string | `"1234567890"` |
| `status` | Current status of the authN ID. Possible statuses include:- activated: authN ID is fully registered and verified. - activating: authN ID is registered but needs to be verified. - pending: authN ID is registered to replace another authN ID but needs to be verified. | string | `"activating"` |
| `country` | Country code, as per [ISO 3166.](https://www.iso.org/iso-3166-country-codes.html) | string | `"CA"` |
| `mfaOption` | Whether this authN ID is registered as an [MFA](c_MFA) option for the user. | boolean | `true` |
| `aliases` | List of one or more aliases registered as an AuthN ID. Each object includes: | Array of `alias` objects. | |
| `id` | Unique internal identifier for the email registered as an authN ID. | string | `19743` |
| `alias` | Actual alias value. | string | `"skippy"` |
| `preferredNotificationChannel` | User's preferred external channel to receive notifications (e.g. email or SMS), taken from one of the registered authN IDs. Value format is: `&#123;object&#125;.&#123;propertyName&#125;,&#123;id&#125;`.For example, "`mobiles.number,723419`" means that the client application should look inside the **`mobiles`** object, and inspect the **`number`** value where the corresponding **`id`** is 723419. | string | `"emails.email,02781"` |
| `branding` | Indicator of branding to be used on a per-user level (e.g. differentiating between an operator's main brand and a discount brand).Applicable to service providers with more than one brand, if they prefer to render a separate, distinct UI. | string | `"Maple"` |
| `socialConnections` | List of user's connections to social providers. Each object includes: | array of `SocialConnection` objects | |
| `id` | Storefront Gateway's unique internal identifier for the connection between this User and the given social account. This ID is distinct from the `socialId` provided by the social provider. | integer | `597` |
| `socialId` | External unique identifier of the social account profile. In other words, this is the user's profile ID with the social provider.This number is provided to Storefront Gateway during the initial Storefront Gateway-to-Social Account association. | string | |
| `providerId` | The name of the social provider in this connection. | string | `"Facebook"` |
| `Secret2faTotp` | The shared secret between Storefront Gateway for this User and an Authenticator App that the User has registered for Multi-factor Authentication. The value for this is obfuscated. | string | |
| `domain` | The domain which the user onboarded onto Storefront Gateway from. Useful as an alternate form to determine appropriate branding. | string | `"int.m1amdocs.com"` |
| **Parent topic:**[Storefront Gateway Data Model](c_connectDataModel) | | | |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.