---
title: "Invite a User"
method: POST
path: "/v2/users/invite"
tags: ["Users"]
---

# Invite a User

`POST /v2/users/invite`

Create a User and invite them to the system

## Request body

- InviteUserRequest
  - `email` string, email, required — the email address of the invited user
  - `mfaType` 'SMS' | 'YUBIKEY' | 'TOTP', required — <p>The MFA type that the user will use</p> <p>The type may be conditional on the role(s) the user has</p>
  - `smsNumber` string, required — The phone number of a device that the user can receive sms messages on
  - `primaryContactNumber` string, required — The main contact number for the user
  - `secondaryContactNumber` string, nullable — The secondary contact number for the user
  - `roles` string[], required — The role(s) for the user The role must exist The role can be a custom role or a system role but the invoker must have the permissions to assign the role System roles are: backoffice.admin, payor.master_admin, payor.admin, payor.support
  - `firstName` string
  - `lastName` string
  - `entityId` string, uuid, nullable — The payorId or null if the user is not a payor user
  - `verificationCode` string, nullable — Optional property that MUST be suppied when manually verifying a user The user's smsNumber is registered via a separate endpoint and an OTP sent to them

## Response `204`

No Content. The user was invited successfully

## Other responses

- `400` — Invalid request. See Error message payload for details of failure
- `401` — Invalid access token. May be expired or invalid
- `403` — The authentication does not have permissions to access the resource This usually occurs when there is a valid authentication instance (client or user) but they do not have the required permissions
- `409` — The request contained data that would reult in a duplicate value
- `412` — The request could not be completed as a precondition was not met

## Changes

- **2020-01-28** `1b2abf26b5d6` — 6 breaking, 5 warning
  - the response's body type changed from `object` to no type for status `400`
  - the response's body type changed from `object` to no type for status `401`
  - the response's body type changed from `object` to no type for status `403`
  - the `errors/items/` response's property type changed from `object` to no type for status `400`
  - …7 more
- **2019-12-11** `a0b19fa311c0` — 1 info
  - endpoint added
- **2019-07-15** `ced8e167a97c` — 1 breaking
  - api path removed without deprecation

[Change history](https://skmtc.dev/velopaymentsapi/apis/velo-payments-apis/changes/v2/users/invite/post.md)

---

[API](https://skmtc.dev/velopaymentsapi/apis/velo-payments-apis.md) · [All operations](https://skmtc.dev/velopaymentsapi/apis/velo-payments-apis/llms.txt) · [OpenAPI document](https://skmtc.dev/velopaymentsapi/apis/velo-payments-apis/revisions/1b2abf26b5d6?raw)
