Unify and manage your data

Update a customer client

Learn about updating the client associated with the customer as specified in the request body.

Use Update a customer client to update the client associated with the customer as specified in the request body. All client parameters must be defined in the body of the request, else they are overwritten with empty values. The only exception is the client secret, where if no client secret is sent, the current client secret will remain. However, any other missing attributes are considered to be empty.

You need either of the following role and permission to use this API:
  • ROLE_ADMIN_CUSTOMER
  • Auth.Customer.Clients UPDATE

To reset a client secret, you must be assigned the ROLE_ADMIN_CUSTOMER role. If you are not assigned this role, but are assigned any other role along with the Auth.Customer.Clients UPDATE permission, the role that you are assigned must have the permission to access all your tenants. We have added this additional security control to ensure users who have access to only one tenant, cannot access other tenants using clients. This rule does not apply if you need to modify any other attribute of the client.

Important: Clients tokens are revoked if the list of roles, or, the secret is modified during the update.

HTTP method and endpoint

Use the following HTTP method and endpoint to submit the request:

PUT https://auth.reltio.com/oauth/customers/{customerId}/clients/{clientId}

Use the GET client API to retrieve the current client configuration. Edit the returned JSON, and then submit the complete document with this PUT API. The PUT request replaces the stored client configuration with the request body, so omitted values might not be retained.

The following table describes the endpoint path parameters.

ParameterTypeRequiredDescription
customerIdStringYesIdentifier of the customer associated with the client.
clientIdStringYesIdentifier of the client to update.

Query parameters

The following table describes the query parameters and their values.

ParameterTypeRequiredDescription Accepted values / Default
skipTokenRevocationBooleanNoPrevents active client tokens from being revoked when the update changes the client's roles. Use this parameter only for controlled migrations.Accepted values: true, false. Default: not confirmed in the provided source.

Request headers

Include the following headers in the request.

HeaderValueRequired
AuthorizationBearer <access_token>Yes
Content-Typeapplication/jsonYes

Request body

The following table describes the request body parameters.

ParameterTypeRequiredDescriptionAccepted values / Example
clientIdStringYesIdentifier of the client.{clientId}
scopeArrayNoScopes assigned to the client.[]
authoritiesArrayNoAuthorities assigned to the client.[]
resourceIdsArrayYesResource identifiers associated with the client.[]
authorizedGrantTypesArrayYesOAuth grant types assigned to the client.client_credentials
clientDescriptionStringYesDescription of the client.Test client 005 - API only
clientNameStringYesName of the client.Migration Test Client 005
clientEmailString or nullYesEmail address associated with the client.null
redirectUriArrayYesRedirect URIs configured for the client.[]
accessTokenValidityNumber or nullYesAccess token validity value configured for the client.null
refreshTokenValidityNumber or nullYesRefresh token validity value configured for the client.null
defaultRolesAssignmentEnabledBooleanNo

Controls whether ROLE_API is assigned by default when tokens are issued. If omitted or set to true, ROLE_API may be assigned for all customer tenants. Set it to false to use only the roles defined in clientPermissions.roles.

true ,false
clientAuthenticationMethodsArrayYesAuthentication methods supported by the client.client_secret_post, client_secret_basic
enabledBooleanYesIndicates whether the client is enabled.true
clientPermissions.rolesObjectYes

Maps each registered role name to an array of tenant scopes assigned to that role. Role names can be standard or custom. ROLE_API and ROLE_USER are examples only and are not required.

Contains roles, permissions, and permissionsByService.
permissionsObjectYesPermissions assigned to the client.{}
permissionsByServiceObjectYesPermissions assigned to the client and grouped by service.{}
clientSecretStringNoSpecifies a new secret for the client. Omit this parameter unless you intend to rotate the secret. If omitted, the existing client secret remains unchanged.

Accepted value: a valid client secret.

Default: retains the existing secret when omitted.

jwtVersionEumNoSpecifies the JWT version associated with the client. If this parameter is present in the current client configuration, include it in the PUT request to preserve its value.Accepted value: "V1", Default value: null
consumerStringNoSpecifies the consumer value associated with the client. If this parameter is present in the current client configuration, include it in the PUT request to preserve its value.Any string. The value isn't validated against an allowlist, and no length restriction is enforced.

Example request

The following example updates a customer client:

PUT https://auth.reltio.com/oauth/customers/{customerId}/clients/{clientId}

{
    "clientId": "{{clientId}}",
    "scope": [],
    "authorities": [],
    "resourceIds": [],
  "authorizedGrantTypes": [
    "client_credentials"
  ],
  "clientDescription": "Description of the client",
  "clientName": "Name of the client",
  "clientEmail": null,
  "redirectUri": [],
  "accessTokenValidity": null,
  "refreshTokenValidity": null,
  "defaultRolesAssignmentEnabled": false,
  "clientAuthenticationMethods": [
    "client_secret_post",
    "client_secret_basic"
  ],
  "enabled": true,
  "clientPermissions": {
    "roles": {
      "ROLE_API": [],
      "ROLE_USER": []
    },
    "permissions": {},
    "permissionsByService": {}
  }
}

Example response

The following example shows the updated client definition:

{
     "clientId": "{{clientId}}"",
    "scope": [],
    "authorities": [],
    "resourceIds": [],
  "authorizedGrantTypes": [
    "client_credentials"
  ],
  "clientDescription": "Description of the client.",
  "clientName": "Name of the client",
  "clientEmail": null,
  "redirectUri": [],
  "accessTokenValidity": null,
  "refreshTokenValidity": null,
  "defaultRolesAssignmentEnabled": false,
  "clientAuthenticationMethods": [
    "client_secret_post",
    "client_secret_basic"
  ],
  "enabled": true,
  "clientPermissions": {
    "roles": {
      "ROLE_API": [],
      "ROLE_USER": []
    },
    "permissions": {},
    "permissionsByService": {}
  },
  "createdBy": "xyz@reltio.com",
  "updatedBy": "xyz@reltio.com",
  "createdDate": 1785230002716,
  "updatedDate": 1785230046420
}

Response body

The following table describes the fields returned in the response body.

FieldTypeDescription
clientIdStringIdentifier of the updated client.
scopeArrayScopes assigned to the client.
authoritiesArrayAuthorities assigned to the client.
resourceIdsArrayResource identifiers associated with the client.
authorizedGrantTypesArrayOAuth grant types configured for the client.
clientDescriptionStringDescription of the client.
clientNameStringName of the client.
clientEmailString or nullEmail address associated with the client.
redirectUriArrayRedirect URIs configured for the client.
accessTokenValidityNumber or nullAccess token validity value configured for the client.
refreshTokenValidityNumber or nullRefresh token validity value configured for the client.
defaultRolesAssignmentEnabledBooleanIndicates whether default role assignment is enabled for the client.
clientAuthenticationMethodsArrayAuthentication methods configured for the client.
enabledBooleanIndicates whether the client is enabled.
clientPermissionsObjectContains the roles and permissions assigned to the client.
rolesObjectMaps each registered role name to an array of tenant scopes assigned to that role. Role names can include standard or custom roles.ROLE_API and ROLE_USER are examples of valid role names.
ROLE_APIArrayAssignments associated with the ROLE_API role.
ROLE_USERArrayAssignments associated with the ROLE_USER role.
permissionsObjectPermissions assigned to the client.
permissionsByServiceObjectPermissions assigned to the client, grouped by service.
createdByStringUser who created the client.
updatedByStringUser who last updated the client.
createdDateNumberDate and time when the client was created, represented as an epoch timestamp in milliseconds.
updatedDateNumberDate and time when the client was last updated, represented as an epoch timestamp in milliseconds.