User Management
This guide covers how to create users and manage their access to accounts.
Read the User concept guide for an explanation of personas, user groups, and the user lifecycle.
Creating a User
Self-Registration (Public API)
An Investor can register themselves without authentication using the public CreateUser mutation. Their account will be in pending state until an admin approves it.
mutation RegisterInvestor {
CreateUser(
firstName: "Alice"
lastName: "Dupont"
email: "alice.dupont@example.com"
mobile: "+33612345678"
persona: customer
firstAccountInformation: {
firstAccountType: individualAccount
}
tosAcknowledged: true
locale: fr
) {
id
email
firstName
lastName
# ...Other CreatedUser fields
}
}
→ Type reference: CreatedUser
The persona field determines the type of user being created. For end Investors, use customer (direct) or distributed_customer (via distributor channel).
Creating a User as Admin or Distributor
When authenticated as an admin or distributor, use the authenticated CreateUser mutation (under RootMutation). This version allows you to:
- Immediately activate the user (
active: true) - Send a welcome email (
withEmail: true) - Assign the user to a distributor advisor
mutation AdminCreateInvestor {
CreateUser(
firstName: "Bob"
lastName: "Leroy"
email: "bob.leroy@example.com"
mobile: "+33655443322"
persona: distributed_customer
firstAccountInformation: {
firstAccountType: individualAccount
}
active: true
withEmail: true
distributorAdvisorId: "advisor-789"
locale: fr
) {
id
email
active
firstName
lastName
# ...Other User fields
}
}
→ Type reference: User
Creating a Corporate User
For a legal entity investor, provide corporateAccountInformation:
mutation CreateCorporateUser {
CreateUser(
firstName: "Céline"
lastName: "Bernard"
email: "celine.bernard@holding.fr"
mobile: "+33677889900"
persona: customer
firstAccountInformation: {
firstAccountType: corporateAccount
corporateAccountInformation: {
corporateName: "Bernard Holding SAS"
representative: {
firstName: "Céline"
lastName: "Bernard"
}
}
}
active: false
) {
id
email
active
firstName
lastName
# ...Other User fields
}
}
→ Type reference: User
Creating a Joint Account User
For a co-subscription with two natural persons:
mutation CreateJointUser {
CreateUser(
firstName: "Paul"
lastName: "Martin"
email: "paul.martin@example.com"
mobile: "+33611223344"
persona: customer
firstAccountInformation: {
firstAccountType: jointAccount
jointAccountInformation: {
secondaryFirstName: "Sophie"
secondaryLastName: "Martin"
secondaryEmail: "sophie.martin@example.com"
secondaryMobile: "+33622334455"
}
}
) {
id
email
active
firstName
lastName
# ...Other User fields
}
}
→ Type reference: User
Activating and Deactivating a User
Activate
Approves a pending user and optionally sends them an access email:
mutation ApproveUser {
ActivateUser(
userId: "456"
withEmail: true
) {
id
active
acceptedAt
}
}
→ Reference: ActivateUser
Deactivate
Suspends a user's access. A comment explaining the reason is required:
mutation SuspendUser {
DeactivateUser(
userId: "456"
withEmail: true
unactiveComment: "Account suspended pending compliance review."
) {
id
active
unactiveComment
}
}
→ Reference: DeactivateUser
Giving Access to an Account
Query a User's Current Accounts
A user already has the Accounts they were created with. To see all Accounts linked to a User:
query UserAccounts {
GetUser(id: "456") {
id
email
accounts {
id
label
accountType {
code
label
}
kycStatusDetailed {
code
label
}
}
}
}
Updating User Information and Permissions
Changes a User's roles, segments, advisor, or other profile information:
mutation UpdateUser {
UpdateUserInfosAndPermissions(
userId: "456"
firstName: "Alice"
lastName: "Dupont-Martin"
distributorAdvisorId: "999"
) {
id
firstName
lastName
}
}
→ Reference: UpdateUserInfosAndPermissions
Sending Access Email
Resends the invitation email with login instructions to a user:
mutation ResendInvitation {
SendEmailAccess(userId: "456") {
id
email
}
}
→ Reference: SendEmailAccess
Listing and Searching Users
query SearchUsers {
GetUsers(
search: "alice"
isActive: true
personas: [customer, distributed_customer]
resultsPerPage: 20
page: 1
) {
edges {
node {
id
email
firstName
lastName
active
acceptedAt
accounts {
id
label
}
}
}
totalCount
}
}
→ Reference: GetUsers
Related Reference
| Operation | Reference |
|---|---|
| Create a user | CreateUser |
| Fetch a single user | GetUser |
| List users | GetUsers |
| Activate a user | ActivateUser |
| Deactivate a user | DeactivateUser |
| Update user info | UpdateUserInfosAndPermissions |
| Send access email | SendEmailAccess |