---
title: "Update User Details"
method: POST
path: "/v2/users/{userId}/userDetailsUpdate"
tags: ["Users"]
---

# Update User Details

`POST /v2/users/{userId}/userDetailsUpdate`

Update the profile details for the given user

When updating Payor users with the role of payor.master\_admin a verificationCode is required

## Path parameters

- `userId` string, uuid, required

## Request body

- UserDetailsUpdateRequest — <p>All properties are optional</p> <p>Only provided properties will be updated</p> <p>Use null to null out a property that is allowed to be nullable</p>
  - `primaryContactNumber` string, nullable — The main contact number for the user
  - `secondaryContactNumber` string, nullable — The secondary contact number for the user
  - `firstName` string, nullable
  - `lastName` string, nullable
  - `email` string, email, nullable — the email address of the user
  - `smsNumber` string, nullable — The phone number of a device that the user can receive sms messages on
  - `mfaType` 'SMS' | 'YUBIKEY' | 'TOTP', nullable — The type of the MFA device
  - `verificationCode` string, nullable — <p>Optional property that MUST be suppied when manually verifying a user</p> <p>The user's smsNumber is registered via a separate endpoint and an OTP sent to them</p>

## Response `204`

request completed okay

## 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
- `404` — The resource was not found or is no longer available
- `409` — The request contained data that would result in a duplicate value

## Changes

- **2020-09-25** `dd71433847a6` — 5 breaking, 30 info
  - the `errors/items/` response's property type/format changed from ``/`` to `object`/`` for status `400`
  - the `errors/items/` response's property type/format changed from ``/`` to `object`/`` for status `401`
  - the `errors/items/` response's property type/format changed from ``/`` to `object`/`` for status `403`
  - the `errors/items/` response's property type/format changed from ``/`` to `object`/`` for status `404`
  - …31 more
- **2020-08-13** `75bb7af5ae63` — 3 warning
  - changed the pattern of the request property `primaryContactNumber` from `^\+?[1-9]\d{1,14}$` to `^\+[1-9]\d{1,14}$`
  - changed the pattern of the request property `secondaryContactNumber` from `^\+?[1-9]\d{1,14}$` to `^\+[1-9]\d{1,14}$`
  - changed the pattern of the request property `smsNumber` from `^\+?[1-9]\d{1,14}$` to `^\+[1-9]\d{1,14}$`
- **2020-06-24** `aded220b0d7b` — 2 breaking
  - the response's body type/format changed from `object`/`` to ``/`` for status `404`
  - the `errors/items/` response's property type/format changed from `object`/`` to ``/`` for status `404`
- **2020-02-27** `7c8cfeb59952` — 2 breaking
  - the response's body type/format changed from `object`/`` to ``/`` for status `409`
  - the `errors/items/` response's property type/format changed from `object`/`` to ``/`` for status `409`
- **2020-01-28** `1b2abf26b5d6` — 1 info
  - endpoint added

[Full history](https://skmtc.dev/velopaymentsapi/apis/velo-payments-apis/changes/v2/users/:userId/userDetailsUpdate/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-service-production.skmtc.workers.dev/v1/apis/velopaymentsapi/velo-payments-apis/revisions/05c3f09fc50a/schema)
