# Create multiple users under the specified account Creates multiple users in a single request. The maximum batch size is enforced server-side (see ema.api.account.users.bulk-create.max). Each item is processed independently; partial success is reported when some users are created and others fail. Requires EM_ACCOUNT.USER edit permission on the account. Endpoint: POST /accounts/{AccountIdentifier}/users/action/bulk-create Version: 1.0.0-beta Security: bearerToken ## Path parameters: - `AccountIdentifier` (string, required) Account identifier Example: "098B0A25" ## Request fields (application/json): - `users` (array, required) - `users.firstName` (string, required) Must not contain digits (0-9). Special characters are allowed. Same validation as legacy EMA UI. Example: "John" - `users.middleName` (string) Must not contain digits (0-9). Special characters are allowed. Same validation as legacy EMA UI. Example: "Jackson" - `users.lastName` (string, required) Must not contain digits (0-9). Special characters are allowed. Same validation as legacy EMA UI. Example: "Doe" - `users.email` (string, required) Example: "john.doe@example.com" - `users.jobTitle` (string, required) Example: "Portfolio Manager" - `users.telephone` (string) Example: "555-123-4567" - `users.authSubject` (string) Example: "auth0|asdfghjkl1234567890" - `users.login` (string) User login name. Required when editing an existing user. Example: "johndoe" - `users.address` (object, required) - `users.address.postalCode` (string, required) Example: "12345" - `users.address.city` (string, required) Example: "New York" - `users.address.country` (string, required) Ref.Data.COUNTRY - `users.address.addressLineOne` (string, required) Example: "5 Broadway" - `users.address.addressLineTwo` (string) Example: "5th floor" - `users.address.stateProvince` (string) Ref.Data.STATE_PROVINCE - `users.organizationRelationship` (string) Ref.Data.USER_ORGANIZATION_RELATIONSHIP - `users.roles` (array) Account-scoped entitlement roles only. Enum: "ACCOUNT_ADMIN", "ACCOUNT_MANAGER", "EXCHANGE_READ", "EXCHANGE_WRITE", "PORTFOLIO_READ", "PORTFOLIO_WRITE" - `users.status` (string) Ref.Data.USER_STATUS ## Response 200 fields (application/json): - `code` (string, required) Aggregate outcome based on all items in the request. Enum: "SUCCESS", "PARTIAL_SUCCESS", "FAILURE" - `message` (string) - `results` (array, required) - `results.index` (integer, required) Zero-based index of the user in the request users array. - `results.code` (string, required) Result for the single user create attempt. Enum: "CREATED", "FAILED" - `results.message` (string) Error message when code is FAILED. - `results.user` (object) - `results.user.firstName` (string, required) Must not contain digits (0-9). Special characters are allowed. Same validation as legacy EMA UI. Example: "John" - `results.user.middleName` (string) Must not contain digits (0-9). Special characters are allowed. Same validation as legacy EMA UI. Example: "Jackson" - `results.user.lastName` (string, required) Must not contain digits (0-9). Special characters are allowed. Same validation as legacy EMA UI. Example: "Doe" - `results.user.email` (string, required) Example: "john.doe@example.com" - `results.user.jobTitle` (string, required) Example: "Portfolio Manager" - `results.user.telephone` (string) Example: "555-123-4567" - `results.user.authSubject` (string) Example: "auth0|asdfghjkl1234567890" - `results.user.login` (string) User login name. Required when editing an existing user. Example: "johndoe" - `results.user.address` (object, required) - `results.user.address.postalCode` (string, required) Example: "12345" - `results.user.address.city` (string, required) Example: "New York" - `results.user.address.country` (string, required) Ref.Data.COUNTRY - `results.user.address.addressLineOne` (string, required) Example: "5 Broadway" - `results.user.address.addressLineTwo` (string) Example: "5th floor" - `results.user.address.stateProvince` (string) Ref.Data.STATE_PROVINCE - `results.user.organizationRelationship` (string) Ref.Data.USER_ORGANIZATION_RELATIONSHIP - `results.user.roles` (array) Account-scoped entitlement roles only. Enum: "ACCOUNT_ADMIN", "ACCOUNT_MANAGER", "EXCHANGE_READ", "EXCHANGE_WRITE", "PORTFOLIO_READ", "PORTFOLIO_WRITE" - `results.user.account` (object) Optional property. Use include param. - `results.user.account.id` (integer, required) - `results.user.account.identifier` (string, required) Example: "0980A123" - `results.user.account.noOfUsers` (integer, required) - `results.user.account.status` (string, required) Ref.Data.ACCOUNT_STATUS Example: "APPROVED" - `results.user.account.maxUsers` (number, required) - `results.user.account.childAccounts` (array, required) - `results.user.account.registryLinks` (array, required) - `results.user.account.registryLinks.program` (string, required) Ref.Data.PROGRAM - `results.user.account.registryLinks.registryAccountId` (string, required) - `results.user.account.registryLinks.status` (string, required) Ref.Data.REGISTRY_LINK_STATUS - `results.user.account.registryLinks.lastSyncDate` (string,null) Incremental sync watermark (RFC 3339 date-time), equivalent to the server's sync time identifier used for incremental sync. Omitted or null when the registry link has never been synced. - `results.user.account.organization` (object, required) - `results.user.account.organization.iamOrgId` (string) - `results.user.account.organization.legalName` (string, required) Example: "RVCMC Sub Default" - `results.user.account.organization.structure` (string, required) Ref.Data.ORGANIZATION_LEGAL_STRUCTURE Example: "PRIVATELY_OWNED_CORP" - `results.user.account.organization.type` (string, required) Ref.Data.ORGANIZATION_TYPE Example: "BROKER" - `results.user.account.services` (array, required) Service accounts for this EMA account. Each item is an AccountService - `results.user.account.services.status` (string, required) Ref.Data.SERVICE_ACCOUNT_STATUS Example: "APPROVED" - `results.user.account.services.type` (string, required) Ref.Data.SERVICE_TYPE Example: "ACX" - `results.user.account.services.attributes` (any) Shape is determined by the parent service type (Ref.ServiceType), using mapping: ACX → AcxAccountServiceAttributes; SUBACCOUNT_SERVICE → SubaccountAccountServiceAttributes; CUSTODIAN_SERVICE → CustodianAccountServiceAttributes. If there are no service attributes (all other service types), do not display this object — omit attributes, or return attributes as an empty object. - `results.user.status` (string) Ref.Data.USER_STATUS - `results.user.lastLogin` (string) Last login timestamp - `results.user.isAdmin` (boolean) ## Response 400 fields (application/json): - `code` (string) Enum: "INVALID_REQUEST" - `message` (string) ## Response 401 fields (application/json): - `message` (string) ## Response 404 fields (application/json): - `message` (string) ## Response 500 fields (application/json): - `message` (string)