Skip to main content

Actions

The ballerinax/microsoft.dynamics365.finance.users package exposes the following clients:

ClientPurpose
ClientProvides CRUD access to Microsoft Dynamics 365 Finance user, security, and access-control entities via the Users OData API.

Client

Provides CRUD access to Microsoft Dynamics 365 Finance user, security, and access-control entities via the Users OData API.

Configuration

FieldTypeDefaultDescription
authOAuth2ClientCredentialsGrantConfigRequiredOAuth2 client credentials grant configuration — tokenUrl, clientId, clientSecret, and optional scopes.
httpVersionhttp:HttpVersionhttp:HTTP_2_0HTTP protocol version to use for outbound requests.
http1Settingshttp:ClientHttp1Settings{}HTTP/1.x client settings including keep-alive, chunking, and proxy configuration.
secureSockethttp:ClientSecureSocket()SSL/TLS configuration for secure connections.
proxyhttp:ProxyConfig()Proxy server configuration.

Initializing the client

import ballerinax/microsoft.dynamics365.finance.users;

configurable string tokenUrl = ?;
configurable string clientId = ?;
configurable string clientSecret = ?;
configurable string serviceUrl = ?;

users:Client usersClient = check new (
{
auth: {
tokenUrl,
clientId,
clientSecret
}
},
serviceUrl
);

Operations

Channel Users

listChannelUsers

Lists channel users, optionally filtered with OData query parameters.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListChannelUsersQueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: users:ChannelUsersCollection|error

Sample code:

users:ChannelUsersCollection result = check usersClient->listChannelUsers(
queries = {filter: "dataAreaId eq 'USMF'", top: 20}
);
createChannelUsers

Creates a channel user.

Parameters:

NameTypeRequiredDescription
payloadusers:ChannelUserYesThe channel user to create.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: users:ChannelUser|error

Sample code:

users:ChannelUser created = check usersClient->createChannelUsers({
dataAreaId: "USMF",
operatingUnitNumber: "001",
user: "alice.nguyen"
});
getChannelUsers

Reads a specific channel user by its composite key.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
operatingUnitNumberstringYesThe operating unit number key field.
userstringYesThe user key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetChannelUsersQueriesNoOData query parameters: $expand, $select.

Returns: users:ChannelUser|error

Sample code:

users:ChannelUser channelUser = check usersClient->getChannelUsers("USMF", "001", "alice.nguyen");
deleteChannelUsers

Deletes a specific channel user.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
operatingUnitNumberstringYesThe operating unit number key field.
userstringYesThe user key field.
headersDeleteChannelUsersHeadersNoOptional ifMatch ETag mapped to the If-Match header.

Returns: error?

Sample code:

check usersClient->deleteChannelUsers("USMF", "001", "alice.nguyen", {ifMatch: eTag});
updateChannelUsers

Updates a specific channel user.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
operatingUnitNumberstringYesThe operating unit number key field.
userstringYesThe user key field.
payloadusers:ChannelUserYesFields to update.
headersUpdateChannelUsersHeadersNoOptional ifMatch ETag mapped to the If-Match header.

Returns: users:ChannelUser|error

Sample code:

users:ChannelUser updated = check usersClient->updateChannelUsers(
"USMF", "001", "alice.nguyen",
{operatingUnitNumber: "002"},
{ifMatch: eTag}
);

External Roles

listExternalRoles

Lists external role mappings, optionally filtered with OData query parameters.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListExternalRolesQueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: users:ExternalRolesCollection|error

Sample code:

users:ExternalRolesCollection result = check usersClient->listExternalRoles(
queries = {filter: "Type eq 'Customer'"}
);
createExternalRoles

Creates an external role mapping for a customer, vendor, or other external party.

Parameters:

NameTypeRequiredDescription
payloadusers:ExternalRoleYesThe external role to create.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: users:ExternalRole|error

Sample code:

users:ExternalRole created = check usersClient->createExternalRoles({
role: "CUST-EXT-001",
'type: "Customer"
});
getExternalRoles

Reads a specific external role mapping by its composite key.

Parameters:

NameTypeRequiredDescription
rolestringYesThe role key field.
'typestringYesThe entity type identifier — one of Customer, Vendor, BusinessRelation, ProspectiveVendor, Worker.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetExternalRolesQueriesNoOData query parameters: $expand, $select.

Returns: users:ExternalRole|error

Sample code:

users:ExternalRole role = check usersClient->getExternalRoles("CUST-EXT-001", "Customer");
deleteExternalRoles

Deletes a specific external role mapping.

Parameters:

NameTypeRequiredDescription
rolestringYesThe role key field.
'typestringYesThe entity type identifier.
headersDeleteExternalRolesHeadersNoOptional ifMatch ETag mapped to the If-Match header.

Returns: error?

Sample code:

check usersClient->deleteExternalRoles("CUST-EXT-001", "Customer", {ifMatch: eTag});
updateExternalRoles

Updates a specific external role mapping.

Parameters:

NameTypeRequiredDescription
rolestringYesThe role key field.
'typestringYesThe entity type identifier.
payloadusers:ExternalRoleYesFields to update.
headersUpdateExternalRolesHeadersNoOptional ifMatch ETag mapped to the If-Match header.

Returns: users:ExternalRole|error

note

ExternalRole has only two fields — role and 'type — and both together form the entity's key. OData entities reject updates that change key fields, so updateExternalRoles cannot be used to remap a role from one type to another (for example, from "Customer" to "Vendor"). To change the mapping, delete the existing external role and create a new one with the desired role/'type combination instead.

Sample code:

// updateExternalRoles cannot change the role/type mapping itself (both are key fields).
// To remap "CUST-EXT-001" from "Customer" to "Vendor", delete and recreate the record:
check usersClient->deleteExternalRoles("CUST-EXT-001", "Customer", {ifMatch: eTag});

users:ExternalRole created = check usersClient->createExternalRoles({
role: "CUST-EXT-001",
'type: "Vendor"
});

Groups

listGroups

Lists deferrals groups, optionally filtered with OData query parameters.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListGroupsQueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: users:GroupsCollection|error

Sample code:

users:GroupsCollection result = check usersClient->listGroups(
queries = {filter: "dataAreaId eq 'USMF'"}
);
createGroups

Creates a deferrals group.

Parameters:

NameTypeRequiredDescription
payloadusers:GroupYesThe group to create.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: users:Group|error

Sample code:

users:Group created = check usersClient->createGroups({
dataAreaId: "USMF",
deferralsGroup: "DEF-STD",
name: "Standard deferrals",
postingProfile: "DEF"
});
getGroups

Reads a specific deferrals group by its composite key.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
deferralsGroupstringYesThe deferrals group key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetGroupsQueriesNoOData query parameters: $expand, $select.

Returns: users:Group|error

Sample code:

users:Group group = check usersClient->getGroups("USMF", "DEF-STD");
deleteGroups

Deletes a specific deferrals group.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
deferralsGroupstringYesThe deferrals group key field.
headersDeleteGroupsHeadersNoOptional ifMatch ETag mapped to the If-Match header.

Returns: error?

Sample code:

check usersClient->deleteGroups("USMF", "DEF-STD", {ifMatch: eTag});
updateGroups

Updates a specific deferrals group.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
deferralsGroupstringYesThe deferrals group key field.
payloadusers:GroupYesFields to update.
headersUpdateGroupsHeadersNoOptional ifMatch ETag mapped to the If-Match header.

Returns: users:Group|error

Sample code:

users:Group updated = check usersClient->updateGroups(
"USMF", "DEF-STD",
{name: "Updated standard deferrals group"},
{ifMatch: eTag}
);

Security Roles

listSecurityRoles

Lists security roles, optionally filtered with OData query parameters.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListSecurityRolesQueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: users:SecurityRolesCollection|error

Sample code:

users:SecurityRolesCollection result = check usersClient->listSecurityRoles(
queries = {filter: "UserLicenseType eq 'Functional'"}
);
createSecurityRoles

Creates a security role.

Parameters:

NameTypeRequiredDescription
payloadusers:SecurityRoleYesThe security role to create.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: users:SecurityRole|error

Sample code:

users:SecurityRole created = check usersClient->createSecurityRoles({
securityRoleIdentifier: "SR-AP-CLERK",
securityRoleName: "Accounts payable clerk",
description: "Manages vendor invoices",
userLicenseType: "Functional",
accessToSensitiveData: false
});
getSecurityRoles

Reads a specific security role by its identifier.

Parameters:

NameTypeRequiredDescription
securityRoleIdentifierstringYesThe security role identifier key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetSecurityRolesQueriesNoOData query parameters: $expand, $select.

Returns: users:SecurityRole|error

Sample code:

users:SecurityRole role = check usersClient->getSecurityRoles("SR-AP-CLERK");
deleteSecurityRoles

Deletes a specific security role.

Parameters:

NameTypeRequiredDescription
securityRoleIdentifierstringYesThe security role identifier key field.
headersDeleteSecurityRolesHeadersNoOptional ifMatch ETag mapped to the If-Match header.

Returns: error?

Sample code:

check usersClient->deleteSecurityRoles("SR-AP-CLERK", {ifMatch: eTag});
updateSecurityRoles

Updates a specific security role.

Parameters:

NameTypeRequiredDescription
securityRoleIdentifierstringYesThe security role identifier key field.
payloadusers:SecurityRoleYesFields to update.
headersUpdateSecurityRolesHeadersNoOptional ifMatch ETag mapped to the If-Match header.

Returns: users:SecurityRole|error

Sample code:

users:SecurityRole updated = check usersClient->updateSecurityRoles(
"SR-AP-CLERK",
{accessToSensitiveData: true},
{ifMatch: eTag}
);

Source Systems

listSourceSystems

Lists source systems, optionally filtered with OData query parameters.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListSourceSystemsQueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: users:SourceSystemsCollection|error

Sample code:

users:SourceSystemsCollection result = check usersClient->listSourceSystems();
createSourceSystems

Creates a source system.

Parameters:

NameTypeRequiredDescription
payloadusers:SourceSystemYesThe source system to create.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: users:SourceSystem|error

Sample code:

users:SourceSystem created = check usersClient->createSourceSystems({
name: "CRM-EXT-01",
description: "External CRM integration source"
});
getSourceSystems

Reads a specific source system by name.

Parameters:

NameTypeRequiredDescription
namestringYesThe name key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetSourceSystemsQueriesNoOData query parameters: $expand, $select.

Returns: users:SourceSystem|error

Sample code:

users:SourceSystem sourceSystem = check usersClient->getSourceSystems("CRM-EXT-01");
deleteSourceSystems

Deletes a specific source system.

Parameters:

NameTypeRequiredDescription
namestringYesThe name key field.
headersDeleteSourceSystemsHeadersNoOptional ifMatch ETag mapped to the If-Match header.

Returns: error?

Sample code:

check usersClient->deleteSourceSystems("CRM-EXT-01", {ifMatch: eTag});
updateSourceSystems

Updates a specific source system.

Parameters:

NameTypeRequiredDescription
namestringYesThe name key field.
payloadusers:SourceSystemYesFields to update.
headersUpdateSourceSystemsHeadersNoOptional ifMatch ETag mapped to the If-Match header.

Returns: users:SourceSystem|error

Sample code:

users:SourceSystem updated = check usersClient->updateSourceSystems(
"CRM-EXT-01",
{description: "Updated external CRM integration source"},
{ifMatch: eTag}
);

Source Types

listSourceTypes

Lists source types, optionally filtered with OData query parameters.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListSourceTypesQueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: users:SourceTypesCollection|error

Sample code:

users:SourceTypesCollection result = check usersClient->listSourceTypes(
queries = {filter: "Direction eq 'In'"}
);
createSourceTypes

Creates a source type.

Parameters:

NameTypeRequiredDescription
payloadusers:SourceTypeYesThe source type to create.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: users:SourceType|error

Sample code:

users:SourceType created = check usersClient->createSourceTypes({
dataAreaId: "USMF",
sourceTypeId: "INV-IN",
description: "Inbound invoice source",
direction: "In"
});
getSourceTypes

Reads a specific source type by its composite key.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
sourceTypeIdstringYesThe source type id key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetSourceTypesQueriesNoOData query parameters: $expand, $select.

Returns: users:SourceType|error

Sample code:

users:SourceType sourceType = check usersClient->getSourceTypes("USMF", "INV-IN");
deleteSourceTypes

Deletes a specific source type.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
sourceTypeIdstringYesThe source type id key field.
headersDeleteSourceTypesHeadersNoOptional ifMatch ETag mapped to the If-Match header.

Returns: error?

Sample code:

check usersClient->deleteSourceTypes("USMF", "INV-IN", {ifMatch: eTag});
updateSourceTypes

Updates a specific source type.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
sourceTypeIdstringYesThe source type id key field.
payloadusers:SourceTypeYesFields to update.
headersUpdateSourceTypesHeadersNoOptional ifMatch ETag mapped to the If-Match header.

Returns: users:SourceType|error

Sample code:

users:SourceType updated = check usersClient->updateSourceTypes(
"USMF", "INV-IN",
{description: "Updated inbound invoice source"},
{ifMatch: eTag}
);

Sys AAD Clients

listSysAADClients

Lists Azure AD client registrations, optionally filtered with OData query parameters.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListSysAADClientsQueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: users:SysAADClientsCollection|error

Sample code:

users:SysAADClientsCollection result = check usersClient->listSysAADClients(
queries = {filter: "UserId eq 'svc-integration-user'"}
);
createSysAADClients

Creates an Azure AD client registration linked to a Dynamics 365 user.

Parameters:

NameTypeRequiredDescription
payloadusers:SysAADClientYesThe client registration to create.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: users:SysAADClient|error

Sample code:

users:SysAADClient created = check usersClient->createSysAADClients({
userId: "svc-integration-user",
aADClientId: "3f2b1c4a-1234-4a5b-9c6d-abcdef123456",
name: "Integration service principal"
});
getSysAADClients

Reads a specific Azure AD client registration by its client ID.

Parameters:

NameTypeRequiredDescription
aADClientIdstringYesThe Azure AD client ID key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetSysAADClientsQueriesNoOData query parameters: $expand, $select.

Returns: users:SysAADClient|error

Sample code:

users:SysAADClient client = check usersClient->getSysAADClients("3f2b1c4a-1234-4a5b-9c6d-abcdef123456");
deleteSysAADClients

Deletes a specific Azure AD client registration.

Parameters:

NameTypeRequiredDescription
aADClientIdstringYesThe Azure AD client ID key field.
headersDeleteSysAADClientsHeadersNoOptional ifMatch ETag mapped to the If-Match header.

Returns: error?

Sample code:

check usersClient->deleteSysAADClients("3f2b1c4a-1234-4a5b-9c6d-abcdef123456", {ifMatch: eTag});
updateSysAADClients

Updates a specific Azure AD client registration.

Parameters:

NameTypeRequiredDescription
aADClientIdstringYesThe Azure AD client ID key field.
payloadusers:SysAADClientYesFields to update.
headersUpdateSysAADClientsHeadersNoOptional ifMatch ETag mapped to the If-Match header.

Returns: users:SysAADClient|error

Sample code:

users:SysAADClient updated = check usersClient->updateSysAADClients(
"3f2b1c4a-1234-4a5b-9c6d-abcdef123456",
{name: "Updated integration service principal"},
{ifMatch: eTag}
);

Sys Mon Datas

listSysMonDatas

Lists system monitoring data entries, optionally filtered with OData query parameters.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListSysMonDatasQueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: users:SysMonDatasCollection|error

Sample code:

users:SysMonDatasCollection result = check usersClient->listSysMonDatas();
createSysMonDatas

Creates a system monitoring data entry.

Parameters:

NameTypeRequiredDescription
payloadusers:SysMonDataYesThe monitoring data entry to create.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: users:SysMonData|error

Sample code:

users:SysMonData created = check usersClient->createSysMonDatas({
description: "Nightly batch monitoring rule"
});
getSysMonDatas

Reads a specific system monitoring data entry by its description.

Parameters:

NameTypeRequiredDescription
descriptionstringYesThe description key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetSysMonDatasQueriesNoOData query parameters: $expand, $select.

Returns: users:SysMonData|error

Sample code:

users:SysMonData monitoringData = check usersClient->getSysMonDatas("Nightly batch monitoring rule");
deleteSysMonDatas

Deletes a specific system monitoring data entry.

Parameters:

NameTypeRequiredDescription
descriptionstringYesThe description key field.
headersDeleteSysMonDatasHeadersNoOptional ifMatch ETag mapped to the If-Match header.

Returns: error?

Sample code:

check usersClient->deleteSysMonDatas("Nightly batch monitoring rule", {ifMatch: eTag});
updateSysMonDatas

Updates a specific system monitoring data entry.

Parameters:

NameTypeRequiredDescription
descriptionstringYesThe description key field.
payloadusers:SysMonDataYesFields to update.
headersUpdateSysMonDatasHeadersNoOptional ifMatch ETag mapped to the If-Match header.

Returns: users:SysMonData|error

Sample code:

users:SysMonData updated = check usersClient->updateSysMonDatas(
"Nightly batch monitoring rule",
{description: "Nightly batch monitoring rule - updated"},
{ifMatch: eTag}
);

System Users

listSystemUsers

Lists system users, optionally filtered with OData query parameters.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListSystemUsersQueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: users:SystemUsersCollection|error

Sample code:

users:SystemUsersCollection result = check usersClient->listSystemUsers(
queries = {filter: "Enabled eq true", top: 25, 'select: "UserID,UserName,Email,Enabled"}
);
createSystemUsers

Creates a system user account.

Parameters:

NameTypeRequiredDescription
payloadusers:SystemUserYesThe system user to create.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: users:SystemUser|error

Sample code:

users:SystemUser created = check usersClient->createSystemUsers({
userID: "jsmith",
userName: "J. Smith",
personName: "John Smith",
email: "[email protected]",
company: "USMF",
enabled: true,
accountType: "ADUser",
language: "en-us",
preferredTimeZone: "GMTMINUS0800PACIFICTIME"
});
getSystemUsers

Reads a specific system user by their user ID.

Parameters:

NameTypeRequiredDescription
userIDstringYesThe user id key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetSystemUsersQueriesNoOData query parameters: $expand, $select.

Returns: users:SystemUser|error

Sample code:

users:SystemUser systemUser = check usersClient->getSystemUsers("jsmith");
deleteSystemUsers

Deletes a specific system user.

Parameters:

NameTypeRequiredDescription
userIDstringYesThe user id key field.
headersDeleteSystemUsersHeadersNoOptional ifMatch ETag mapped to the If-Match header.

Returns: error?

Sample code:

check usersClient->deleteSystemUsers("jsmith", {ifMatch: eTag});
updateSystemUsers

Updates a specific system user.

Parameters:

NameTypeRequiredDescription
userIDstringYesThe user id key field.
payloadusers:SystemUserYesFields to update.
headersUpdateSystemUsersHeadersNoOptional ifMatch ETag mapped to the If-Match header.

Returns: users:SystemUser|error

Sample code:

users:SystemUser updated = check usersClient->updateSystemUsers(
"jsmith",
{enabled: false},
{ifMatch: eTag}
);

User Groups

listUserGroups

Lists user groups, optionally filtered with OData query parameters.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListUserGroupsQueriesNoOData query parameters: $skip, $top, $filter, $orderby, $expand, cross-company, $count, $select.

Returns: users:UserGroupsCollection|error

Sample code:

users:UserGroupsCollection result = check usersClient->listUserGroups();
createUserGroups

Creates a user group.

Parameters:

NameTypeRequiredDescription
payloadusers:UserGroupYesThe user group to create.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: users:UserGroup|error

Sample code:

users:UserGroup created = check usersClient->createUserGroups({
groupId: "AP-CLERKS",
name: "Accounts payable clerks"
});
getUserGroups

Reads a specific user group by its group ID.

Parameters:

NameTypeRequiredDescription
groupIdstringYesThe group id key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetUserGroupsQueriesNoOData query parameters: $expand, $select.

Returns: users:UserGroup|error

Sample code:

users:UserGroup userGroup = check usersClient->getUserGroups("AP-CLERKS");
deleteUserGroups

Deletes a specific user group.

Parameters:

NameTypeRequiredDescription
groupIdstringYesThe group id key field.
headersDeleteUserGroupsHeadersNoOptional ifMatch ETag mapped to the If-Match header.

Returns: error?

Sample code:

check usersClient->deleteUserGroups("AP-CLERKS", {ifMatch: eTag});
updateUserGroups

Updates a specific user group.

Parameters:

NameTypeRequiredDescription
groupIdstringYesThe group id key field.
payloadusers:UserGroupYesFields to update.
headersUpdateUserGroupsHeadersNoOptional ifMatch ETag mapped to the If-Match header.

Returns: users:UserGroup|error

Sample code:

users:UserGroup updated = check usersClient->updateUserGroups(
"AP-CLERKS",
{name: "Accounts payable clerks (updated)"},
{ifMatch: eTag}
);