# User data change

A user might request a data change when, for example, moving to a new city or getting married and thus changing their name or adding a nationality.

This guide outlines how to use the Investment API to change user data and the proof documents that must be provided in support of these changes.

## Prerequisites

- **Authentication scopes** — `users:admin`
For more information, refer to [Authentication scopes](/products/byol/concepts/api_concepts/authentication/authentication_oauth#list-of-authentication-scopes).
- **Webhook handler ready** — Set up a webhook endpoint to listen for data change events.
  - Subscribe to [`USER.DATA_CHANGED` and `USER.DATA_CHANGE_FAILED`](/products/byol/guides/users/users_webhooks) events.
For more information, refer to [Implementing webhooks](/products/byol/getting_started/implementing_webhooks).


Before you can change data of a user you must have created one. You can find out how to do this in our [User onboarding guide](/products/byol/guides/users/users_onboarding_overview).

When requesting user data changes, you must submit each separate request individually and wait for the corresponding webhook event (`USER.DATA_CHANGED` or `USER.DATA_CHANGE_FAILED`) before submitting the next request.

Submitting requests in bulk can result in errors during the process.

## Changing user data

In the request body, you specify which fields you intend to change. Request a change by sending:

**POST** [`/users/{user_id}/data_change_requests`](/api/users/user_data_change)

The API responds with `202 Accepted` and processes the change asynchronously. Upvest confirms the outcome with a [`USER.DATA_CHANGED` or `USER.DATA_CHANGE_FAILED`](/products/byol/guides/users/users_webhooks) webhook event.

## Changeable data

You can change the following fields via the Investment API:

- first name
- last name
- salutation
- title
- email
- birth date
- birth city
- birth country
- birth name
- nationalities
- address
- postal address
- gender
- social security number
- decease date
- branch ID
- tags


Data changes other than those listed are subject to a support request to Upvest.

## Request a change to user data

**Example request**

```json
{
  "first_name": "Karl",
  "last_name": "Schmidt",
  "email": "karl.schmidt@example.com",
  "salutation": "SALUTATION_MALE",
  "title": "PROF_DR",
  "birth_date": "1972-01-30",
  "birth_city": "Berlin",
  "birth_country": "DE",
  "birth_name": "Schmidt",
  "nationalities": [
    "DE",
    "AU"
  ],
  "address": {
    "address_line1": "Rosenweg 221",
    "address_line2": "apt. 33",
    "postcode": "45678",
    "city": "Berlin",
    "state": "BE",
    "country": "DE"
  },
  "postal_address": {
    "address_line1": "Rosenweg 221",
    "address_line2": "apt. 33",
    "postcode": "45678",
    "city": "Berlin",
    "state": "BE",
    "country": "DE"
  },
  "branch_id": "e6373bfa-ff12-4004-8de9-747ac96764da",
  "decease_date": "2026-02-27",
  "tags": [
    "CLIENT_EMPLOYEE"
  ]
}
```

After you requested a data change, the user information will be adjusted on the Investment API and a [data change passed webhook](/api/users/user_event) will be sent.

Webhooks notify you of events in business processes, not the success or failure of the initialisation of those processes.

Please be sure to check the [HTTP status](/api_errors) of the response to your requests and handle failure cases appropriately.

## Next steps

Since a change to user data can made at any point in the user's lifecycle in the Investment API, a next step could be to [create an account group](/api/account-groups/create_account_group) or [place an order](/api/orders/place_order). You can see the updated data when [retrieving a report](/api/reports/retrieve_report).