Unify and manage your data

Set Configuration

Learn how to replace a tenant’s Metadata Configuration by submitting a full configuration payload.

Use this API to set or update the tenant business configuration. If a configuration already exists, this operation overrides it.

Before creating the tenant configuration, ensure that the tenant storage configuration is created.

To retrieve or update a specific object type, see Manage configuration by object type.

HTTP method and endpoint

Use the following HTTP method and endpoint path to submit the request to set the tenant configuration.

PUT {TenantURL}/configuration

You can use the standard HTTP If-Unmodified-Since request header to help prevent unintended overwrites during concurrent updates. This header enables stale update validation by comparing the client's last-known configuration state with the latest stored configuration state before the update is accepted.

For more information, see Concurrent update validation behavior.

Request headers

The following request headers must be included.

HeadersRequiredValue
Content-TypeYesapplication/json
If-Unmodified-SinceOptionalHTTP date value that specifies the client's last-known configuration timestamp for stale update validation

Request body

The request body must contain the tenant business configuration in JSON format.

ParameterTypeRequiredDescriptionAccepted values / Default
labelStringYesName of the business model configuration.
descriptionStringNoDescription of the configuration.
schemaVersionStringYesVersion of the configuration schema.
updatedTimeNumberNoTimestamp from the latest configuration read.-
entityTypesArrayYesList of entity type definitions included in the configuration.
entityTypes
URIStringYesUnique identifier for the entity type.
nameStringYesName of the entity type.
labelStringYesDisplay label for the entity type.
descriptionStringNoDescription of the entity type.
attributesArrayYesList of attributes defined for the entity type.
attributes
URIStringYesUnique identifier for the attribute.
nameStringYesName of the attribute.
labelStringYesDisplay label for the attribute.
typeStringYesData type of the attribute (for example, String).

Example request

PUT {TenantURL}/configuration
Content-Type: application/json
If-Unmodified-Since: Mon, 23 Feb 2026 07:05:48 GMT

{
  "label": "Test Business Model",
  "description": "Test Business Model Configuration",
  "schemaVersion": "1",
  "updatedTime": 1700000000000,
  "entityTypes": [
    {
      "URI": "configuration/entityTypes/Individual",
      "label": "Individual",
      "name": "Individual",
      "description": "Represents people",
      "attributes": [
        {
          "URI": "configuration/entityTypes/Individual/attributes/FirstName",
          "name": "FirstName",
          "label": "First Name",
          "type": "String"
        }
      ]
    }
  ]
}

Response body

The response returns the saved tenant business configuration in JSON format. It includes the persisted configuration values and generated id values for configured objects.

FieldTypeDescription
labelStringName of the business model configuration.
descriptionStringDescription of the configuration.
schemaVersionStringVersion of the configuration schema.
updatedTimeNumberTimestamp of the latest successful configuration update.
entityTypesArrayList of entity type definitions in the saved configuration.
entityTypes
URIStringUnique identifier for the entity type.
nameStringName of the entity type.
labelStringDisplay label for the entity type.
descriptionStringDescription of the entity type.
idStringGenerated identifier for the entity type.
attributesArrayList of attributes defined for the entity type.
attributes
URIStringUnique identifier for the attribute.
nameStringName of the attribute.
labelStringDisplay label for the attribute.
typeStringData type of the attribute.
idStringGenerated identifier for the attribute.

Response always includes an id property for elements in collections. These id values help identify differences between schema versions, including added, removed, and modified elements.

Example response

{
  "label": "Test Business Model",
  "description": "Test Business Model Configuration",
  "schemaVersion": "1",
  "updatedTime": 1700000005000,
  "entityTypes": [
    {
      "URI": "configuration/entityTypes/Individual",
      "label": "Individual",
      "name": "Individual",
      "id": "1",
      "description": "Represents people",
      "attributes": [
        {
          "URI": "configuration/entityTypes/Individual/attributes/FirstName",
          "name": "FirstName",
          "label": "First Name",
          "id": "2",
          "type": "String"
        }
      ]
    }
  ]
}

Concurrent update validation behavior

When multiple users or systems update the tenant business configuration at the same time, a stale update can overwrite newer changes. To prevent stale overwrites, the PUT /configuration endpoint supports concurrent update validation through the standard HTTP If-Unmodified-Since request header.

When the header is present, the system compares its value with the latest stored updatedTime for the configuration.

  • If no business model exists, the request is treated as a first-time save and is accepted.
  • If the client does not send the If-Unmodified-Since header, the system skips validation and processes the update as usual. In that case, the request can overwrite more recent configuration changes.
  • If the If-Unmodified-Since header value is greater than or equal to the stored updatedTime, the update is accepted.
  • If the If-Unmodified-Since header value is earlier than the stored updatedTime, the update is rejected with HTTP 412 Precondition Failed.

After each successful update, the system assigns a new updatedTime to reflect the latest configuration state.

Errors

CodeDescription
301 Invalid Invalid rule specification in model for rule {0}.
303 Business model schema cannot be parsed as XSD.
304 Failed to validate business model.
305Failed to press business model JSON during validation.
306Failed to process business model JSON in create configuration request.
412 Precondition failed. Update rejected because the tenant business configuration was modified after the time specified in the If-Unmodified-Since header.