# Creating a Matrix Account

<!---
Actions needed:
- [ ] 

# Creating a Matrix Account
--->

<!---<p class="callout info">Remember to check our <a href="https://ems-docs.element.io/books/kieranml-test-book/page/have-you-tried-httpselementiohelp">Looking for help?</a> page for answers to Frequently Asked Questions and our User Guide!</p>--->

<p class="callout warning"><b>Disclaimer:</b> This guide refers to using the Element Matrix clients, <a href="https://app.element.io/" target="_blank" rel="noopener noreferrer">Element Web</a> or <a href="https://element.io/download" target="_blank" rel="noopener noreferrer">Element Desktop</a> apps</p>

### Creating your Matrix Account

Depending on your homeserver, and it's configuration, the sign-up process may differ slightly, however the overall process should largely follow these steps.

From your Matrix Client, click `Create Account`, then make sure to change the homeserver as needed. You can do this by clicking `Edit` next to the current homeserver name. Once a homeserver is selected, the client will then show you the available registration / authentication methods.

[![create_account_prompt](https://ems-docs.element.io/uploads/images/gallery/2023-06/scaled-1680-/image-1686041959863.png)](https://ems-docs.element.io/uploads/images/gallery/2023-06/image-1686041959863.png)

#### External Services

External service registration allows you to register for your account using a handful of different login providers, For example, <a href="https://matrix.org" target="_blank" rel="noopener noreferrer">matrix.org</a> allows sign-up using a number of external services, including GitHub.

<p class="callout warning">If you choose to register using an external service, you will not be able to use it with any other account, including if you deactivate the account it is associated with.</p>

#### Username, Password and Email

For the initial stage of the registration flow, you will need to choose a username, otherwise known as your Matrix ID (MXID). Like email it follows a standardized format, `@username:homeserver.com`, for example a username of `example-name` on the `matrix.org` homeserver would be `@example-name:matrix.org`.

Choose carefully, it isn't possible to change your MXID, you will however have a display name, that is freely changeable.

You will also be able to provide an email, this is an optional field, if you add an email you will be able to reset your password. Additionally, adding an email allows you to opt-in to be discoverable by existing contacts.

#### Privacy Policy

Before your account can be created, you may need to review and accept any policies of the homeserver you wish to join. Do so by clicking the `Privacy Policy` link and reading through the document - if you accept the policy, confirm by clicking the checkbox and clicking `Accept`.

### Creating a Matrix Account on your Homeserver

If you're an EMS customer, you can create your users via the <a href="https://ems.element.io/user/hosting#/admin" target="_blank" rel="noopener noreferrer">Server Admin</a> tab of the <a href="https://ems.element.io/user/hosting" target="_blank" rel="noopener noreferrer">EMS Control Panel</a>.
<!---Check out the [Server Admin]() section of the [EMS Control Panel]() doc for more guidance.--->

Alternatively you can make use of the <a href="https://matrix-org.github.io/synapse/latest/usage/administration/admin_api/" target="_blank" rel="noopener noreferrer">Synapse Admin API</a> to create a Matrix Account on a homeserver you hold an Admin account on. To do so, you will need to use <a href="https://matrix-org.github.io/synapse/latest/admin_api/user_admin_api.html#create-or-modify-account" target="_blank" rel="noopener noreferrer">Create or Modify Account</a> from the <a href="https://matrix-org.github.io/synapse/latest/admin_api/user_admin_api.html#user-admin-api" target="_blank" rel="noopener noreferrer">User Admin API</a>.
<!---For more information on using the <a href="https://matrix-org.github.io/synapse/latest/usage/administration/admin_api/" target="_blank" rel="noopener noreferrer">Synapse Admin API</a> check our [Getting Started using the Admin API]() documentation.--->

```
https://HOMESERVER_URL/_synapse/admin/v2/users/FULL_USERNAME
```

```json
{
    "password": "user_password",
    "displayname": "User",
    "threepids": [
        {
            "medium": "email",
            "address": "<user_mail_1>"
        },
        {
            "medium": "email",
            "address": "<user_mail_2>"
        }
    ],
    "external_ids": [
        {
            "auth_provider": "<provider1>",
            "external_id": "<user_id_provider_1>"
        },
        {
            "auth_provider": "<provider2>",
            "external_id": "<user_id_provider_2>"
        }
    ],
    "avatar_url": "<avatar_url>",
    "admin": false,
    "deactivated": false
}
```