# Updates an environment's Multitenant Mobile App Identifier versions.

`PUT /api/configuration/multitenant-mobile-app-identifier/environment/{environmentId}`

- **Products:** Gladstone Admin Areas (`ADMIN`)
- **Features:** not restricted by feature

HTML version: [Updates an environment's Multitenant Mobile App Identifier versions.](https://support.gladstonesoftware.cloud/reference/configuration/updates-an-environments-multitenant-mobile-app-identifier-versions)

## Overview

Sets which multitenant mobile app identifier versions an environment is linked to. A multitenant mobile app identifier is the credential pairing that lets one shared mobile app build talk to a particular tenant; each identifier carries versions, and this call decides which of those versions an environment accepts.

**This is a full replacement, not a partial update.** The links you send become the environment's complete set: any version currently linked and not present in your array is unlinked. Sending an empty array `[]` unlinks every version, which will stop the mobile app authenticating against that environment. Read the current links with [List an environment's identifiers](retrieves-multitenant-mobile-app-identifiers-for-a-specific-environment.md) and send the whole list back with your change applied.

The body is a JSON array of objects, not an array of bare integers.

Validation runs before anything is written, so a rejected call changes nothing. Every version id is checked individually, and duplicates in the array are rejected outright. A successful call returns `204 No Content`.

## Endpoint

`PUT {base_url}/api/configuration/multitenant-mobile-app-identifier/environment/{environmentId}`

`{base_url}` is the environment URL issued to your integration. See [Authenticating with Gladstone APIs](../../guides/authenticating-with-gladstone-apis.md).

## Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `environmentId` | integer (int32) | Yes | The environment whose identifier links you are replacing — an environment is one deployed tenant of the platform, and the id is the one your integration was issued for that environment. An id matching no environment fails with `404` and `The environment with ID {environmentId} could not be found to update`. |

## Request body

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `[].multitenantMobileAppIdentifierVersionId` | integer (int32) | Yes | The id of one identifier version to link, as returned by [List multitenant mobile app identifiers](retrieves-all-multitenant-mobile-app-identifiers.md) — this is the version's own id, not the parent identifier's id. Each version must already exist, or the call fails with `404` naming the offending id, and each may appear only once in the array. An omitted value is treated as `0`, which then fails the existence check. |

## Sample request

```bash title="cURL"
curl -X PUT '{base_url}/api/configuration/multitenant-mobile-app-identifier/environment/{environmentId}' \
  -H 'Authorization: Bearer {accessToken}' \
  -H 'X-Use-SSO: true' \
  -H 'Content-Type: application/json' \
  -d '[
  {
    "multitenantMobileAppIdentifierVersionId": 12345
  }
]'
```

## Errors

| Status | Meaning | When |
|--------|---------|------|
| `400` | Bad request | The same `multitenantMobileAppIdentifierVersionId` appears more than once — `The identifier versions found within the request are found to have duplicate ID(s)`. Checked first, before the environment is even looked up. |
| `404` | Not found | No environment has that `environmentId` — `The environment with ID {environmentId} could not be found to update`. |
| `404` | Not found | An entry references a version that does not exist — `The identifier version with the ID of {id} could not be found`. Versions are checked one at a time, so the message names the first bad id only, and nothing is written. |
| `409` | Conflict | Not returned by this endpoint. |
| `500` | Internal server error | An unexpected server-side failure, including a failure while saving the replacement links. The response body is empty. |
