> ## Documentation Index > Fetch the complete documentation index at: https://docs.restaurant365.com/llms.txt > Use this file to discover all available pages before exploring further. # Users > Creates one or more users. Returns 207 Multi-Status when some users were created and others failed. Returns 409 Conflict for duplicate usernames or emails, and 422 for invalid field values. **Security** The requesting user must have the following permission to create users: - Administration → Users → Create Users ## OpenAPI ````json POST /public/v1/user-management/users { "openapi": "3.0.1", "info": { "title": "R365 Public API", "contact": { "name": "R365 Services Team", "email": "r365@restaurant365.com" }, "version": "1.0" }, "security": [ { "Bearer": [] } ], "paths": { "/public/v1/user-management/users": { "post": { "tags": [ "user-management" ], "summary": "Users", "description": "Creates one or more users. Returns 207 Multi-Status when some users were created and others failed.\r\nReturns 409 Conflict for duplicate usernames or emails, and 422 for invalid field values.\n\n**Security**\n\nThe requesting user must have the following permission to create users:\n\n- Administration → Users → Create Users", "parameters": [ { "$ref": "#/components/parameters/TenantId" } ], "requestBody": { "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/CreateUserRequest" } } } } }, "responses": { "200": { "description": "Users created successfully.", "content": { "application/json": { "schema": { "type": "object", "properties": { "success": { "type": "array", "nullable": "false", "items": { "$ref": "#/components/schemas/UserCreated" } }, "errors": { "type": "array", "nullable": false, "example": "[]", "description": "Per-item failures. NOTE: the wire property is 'errors' (SuccessErrorsResponse), not 'userErrors'." } } } } } }, "207": { "description": "207 Multi-Status – Partial success: the response contains arrays of created users and of errors for those that could not be created.", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserCreatedSuccessErrorsResponse" } } } }, "400": { "description": "Bad Request — a parameter value is malformed, of the wrong type, or outside its allowed range." }, "401": { "description": "Unauthorized — the bearer token is missing, invalid or expired, or is not valid for the specified tenant." }, "403": { "description": "Forbidden — the caller lacks the permission required for this operation." }, "404": { "description": "Not Found — the requested resource does not exist, or the supplied continuation token is unknown or has expired." }, "409": { "description": "Conflict — the request conflicts with the current state of the resource and cannot be applied." }, "422": { "description": "Unprocessable Entity — a required parameter is missing, or a supplied parameter value is invalid." }, "429": { "description": "Too Many Requests — the caller has exceeded the rate limit; retry after a short delay." }, "500": { "description": "Internal Server Error — an unexpected error occurred while processing the request." } } } } }, "components": { "parameters": { "TenantId": { "name": "x-r365-context-tenant-id", "in": "header", "required": true, "description": "Identifies the R365 tenant the request applies to. Required on every request.", "schema": { "type": "string" } } }, "schemas": { "CreateUserRequest": { "type": "object", "properties": { "fullName": { "type": "string" }, "username": { "type": "string" }, "defaultLocation": { "type": "string", "format": "uuid" }, "email": { "type": "string" }, "managedByBrand": { "type": "string", "nullable": true }, "mobileNumber": { "type": "string", "nullable": true }, "allLocationsAccess": { "type": "boolean", "nullable": true }, "allBrandFranchiseeLocationAccess": { "type": "boolean", "nullable": true }, "canGrantAccessBeyondPersonalLevel": { "type": "boolean" }, "inActive": { "type": "boolean", "nullable": true }, "userRoles": { "type": "array", "items": { "$ref": "#/components/schemas/GuidId" }, "minItems": 1, "description": "User roles to assign. At least one role is required — an empty array is rejected with errorCode 'urn:r365:user:role-required'." }, "locations": { "type": "array", "items": { "$ref": "#/components/schemas/GuidId" }, "nullable": true }, "externalLocations": { "type": "array", "items": { "$ref": "#/components/schemas/ExternalLocationReference" }, "nullable": true }, "reportRoles": { "type": "array", "items": { "$ref": "#/components/schemas/GuidId" }, "nullable": true }, "optionIds": { "type": "array", "items": { "$ref": "#/components/schemas/EntityReferenceLongPost" }, "nullable": true }, "linkedToEmployee": { "type": "string", "format": "uuid", "nullable": true, "description": "Identifier of the employee record to link this user to. Supplied as a bare GUID on the request; the GET response returns it as an object with id and name." }, "legalEntities": { "type": "array", "nullable": true, "items": { "$ref": "#/components/schemas/GuidId" }, "description": "Legal entities to scope this user to." } }, "additionalProperties": false, "required": [ "email", "username", "fullName", "defaultLocation", "userRoles" ] }, "UserCreated": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid", "description": "Unique identifier of the user created." }, "username": { "type": "string" } }, "additionalProperties": false }, "UserCreatedSuccessErrorsResponse": { "type": "object", "properties": { "success": { "type": "array", "items": { "$ref": "#/components/schemas/UserCreated" } }, "errors": { "type": "array", "items": { "$ref": "#/components/schemas/UserErrors" } } }, "additionalProperties": false }, "GuidId": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid", "description": "Unique identifier of the guid id." } }, "additionalProperties": false }, "ExternalLocationReference": { "type": "object", "properties": { "id": { "type": "string", "format": "uuid", "description": "Unique identifier of the external location." }, "tenant": { "type": "string" } }, "additionalProperties": false }, "EntityReferenceLongPost": { "type": "object", "properties": { "id": { "type": "integer", "format": "int64", "description": "Unique identifier of the entity reference long post." } }, "additionalProperties": false }, "UserErrors": { "type": "object", "properties": { "username": { "type": "string" }, "errors": { "type": "array", "items": { "$ref": "#/components/schemas/ErrorMessage" } } }, "additionalProperties": false }, "ErrorMessage": { "type": "object", "properties": { "error": { "type": "string", "nullable": true }, "errorCode": { "type": "string", "nullable": true } }, "additionalProperties": false } }, "securitySchemes": { "Bearer": { "type": "http", "scheme": "Bearer" } } } } ````