Skip to main content

Actions

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

ClientPurpose
ClientProvides CRUD access to Microsoft Dynamics 365 Finance Human Resources entities via the OData REST API.

Client

Provides CRUD access to Microsoft Dynamics 365 Finance Human Resources entities via the OData REST API.

Configuration

FieldTypeDefaultDescription
authOAuth2ClientCredentialsGrantConfigRequiredOAuth2 client credentials grant configuration (tokenUrl, clientId, clientSecret, scopes) used to authenticate with Microsoft Entra ID.
httpVersionstring"2.0"HTTP protocol version to use for outbound requests.
http1SettingsClientHttp1Settings{}HTTP/1.x client settings including keep-alive, chunking, and proxy configuration.
secureSockethttp:ClientSecureSocket()SSL/TLS configuration for secure connections.
proxyProxyConfig()Proxy server configuration.

Initializing the client

import ballerinax/microsoft.dynamics365.finance.hr;

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

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

Operations

Absence Codes

listAbsenceCodes

Lists absence codes.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListAbsenceCodesQueriesNoOData query parameters, set via the record fields skip ($skip), top ($top), filter ($filter), orderby ($orderby), expand ($expand), crossCompany (cross-company), count ($count), and 'select ($select).

Returns: AbsenceCodesCollection|error

Sample code:

hr:AbsenceCodesCollection result = check hrClient->listAbsenceCodes(
queries = {
filter: "dataAreaId eq 'USMF'",
top: 20
}
);
createAbsenceCodes

Creates an absence code.

Parameters:

NameTypeRequiredDescription
payloadAbsenceCodeYesThe absence code to create.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: AbsenceCode|error

Sample code:

hr:AbsenceCode created = check hrClient->createAbsenceCodes({
dataAreaId: "USMF",
absenceCode: "SICK",
description: "Sick leave",
absenceGroup: "SICK",
method: "Hours"
});
getAbsenceCodes

Gets an absence code by key.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
absenceCodestringYesThe absence code key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetAbsenceCodesQueriesNoOData query parameters, set via the record fields expand ($expand) and 'select ($select).

Returns: AbsenceCode|error

Sample code:

hr:AbsenceCode absenceCode = check hrClient->getAbsenceCodes("USMF", "SICK");
deleteAbsenceCodes

Deletes an absence code.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
absenceCodestringYesThe absence code key field.
headersDeleteAbsenceCodesHeadersNoOptional ifMatch ETag, sent as the If-Match header.

Returns: error?

Sample code:

check hrClient->deleteAbsenceCodes("USMF", "SICK", {ifMatch: eTag});
updateAbsenceCodes

Updates an absence code.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
absenceCodestringYesThe absence code key field.
payloadAbsenceCodeYesThe fields to update.
headersUpdateAbsenceCodesHeadersNoOptional ifMatch ETag, sent as the If-Match header.

Returns: AbsenceCode|error

Sample code:

hr:AbsenceCode updated = check hrClient->updateAbsenceCodes(
"USMF",
"SICK",
{description: "Sick leave (paid)"},
{ifMatch: eTag}
);

Absence Reasons

listAbsenceReasons

Lists absence reasons.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListAbsenceReasonsQueriesNoOData query parameters, set via the record fields skip ($skip), top ($top), filter ($filter), orderby ($orderby), expand ($expand), crossCompany (cross-company), count ($count), and 'select ($select).

Returns: AbsenceReasonsCollection|error

Sample code:

hr:AbsenceReasonsCollection result = check hrClient->listAbsenceReasons(
queries = {filter: "AbsenceCode eq 'SICK'"}
);
createAbsenceReasons

Creates an absence reason.

Parameters:

NameTypeRequiredDescription
payloadAbsenceReasonYesThe absence reason to create.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: AbsenceReason|error

Sample code:

hr:AbsenceReason created = check hrClient->createAbsenceReasons({
dataAreaId: "USMF",
absenceCode: "SICK",
reasonCodeId: "FLU"
});
getAbsenceReasons

Gets an absence reason by key.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
absenceCodestringYesThe absence code key field.
reasonCodeIdstringYesThe reason code id key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetAbsenceReasonsQueriesNoOData query parameters, set via the record fields expand ($expand) and 'select ($select).

Returns: AbsenceReason|error

Sample code:

hr:AbsenceReason reason = check hrClient->getAbsenceReasons("USMF", "SICK", "FLU");
deleteAbsenceReasons

Deletes an absence reason.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
absenceCodestringYesThe absence code key field.
reasonCodeIdstringYesThe reason code id key field.
headersDeleteAbsenceReasonsHeadersNoOptional ifMatch ETag, sent as the If-Match header.

Returns: error?

Sample code:

check hrClient->deleteAbsenceReasons("USMF", "SICK", "FLU", {ifMatch: eTag});
updateAbsenceReasons

Updates an absence reason.

Parameters:

NameTypeRequiredDescription
dataAreaIdstringYesThe company data area identifier.
absenceCodestringYesThe absence code key field.
reasonCodeIdstringYesThe reason code id key field.
payloadAbsenceReasonYesThe fields to update.
headersUpdateAbsenceReasonsHeadersNoOptional ifMatch ETag, sent as the If-Match header.

Returns: AbsenceReason|error

Sample code:

hr:AbsenceReason updated = check hrClient->updateAbsenceReasons(
"USMF",
"SICK",
"FLU",
{reasonCodeId: "FLU"},
{ifMatch: eTag}
);

City Holidays

listCityHolidays

Lists city holidays.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListCityHolidaysQueriesNoOData query parameters, set via the record fields skip ($skip), top ($top), filter ($filter), orderby ($orderby), expand ($expand), crossCompany (cross-company), count ($count), and 'select ($select).

Returns: CityHolidaysCollection|error

Sample code:

hr:CityHolidaysCollection result = check hrClient->listCityHolidays(
queries = {filter: "CityName eq 'Seattle'"}
);
createCityHolidays

Creates a city holiday.

Parameters:

NameTypeRequiredDescription
payloadCityHolidayYesThe city holiday to create.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: CityHoliday|error

Sample code:

hr:CityHoliday created = check hrClient->createCityHolidays({
countryRegionId: "USA",
stateId: "WA",
cityName: "Seattle",
holidayDate: "2026-11-26",
description: "Thanksgiving Day (Local)"
});
getCityHolidays

Gets a city holiday by key.

Parameters:

NameTypeRequiredDescription
countryRegionIdstringYesThe country region id key field.
stateIdstringYesThe state id key field.
cityNamestringYesThe city name key field.
holidayDatestringYesThe holiday date key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetCityHolidaysQueriesNoOData query parameters, set via the record fields expand ($expand) and 'select ($select).

Returns: CityHoliday|error

Sample code:

hr:CityHoliday holiday = check hrClient->getCityHolidays("USA", "WA", "Seattle", "2026-11-26");
deleteCityHolidays

Deletes a city holiday.

Parameters:

NameTypeRequiredDescription
countryRegionIdstringYesThe country region id key field.
stateIdstringYesThe state id key field.
cityNamestringYesThe city name key field.
holidayDatestringYesThe holiday date key field.
headersDeleteCityHolidaysHeadersNoOptional ifMatch ETag, sent as the If-Match header.

Returns: error?

Sample code:

check hrClient->deleteCityHolidays("USA", "WA", "Seattle", "2026-11-26", {ifMatch: eTag});
updateCityHolidays

Updates a city holiday.

Parameters:

NameTypeRequiredDescription
countryRegionIdstringYesThe country region id key field.
stateIdstringYesThe state id key field.
cityNamestringYesThe city name key field.
holidayDatestringYesThe holiday date key field.
payloadCityHolidayYesThe fields to update.
headersUpdateCityHolidaysHeadersNoOptional ifMatch ETag, sent as the If-Match header.

Returns: CityHoliday|error

Sample code:

hr:CityHoliday updated = check hrClient->updateCityHolidays(
"USA",
"WA",
"Seattle",
"2026-11-26",
{description: "Thanksgiving Day (City Observed)"},
{ifMatch: eTag}
);

Employments

listEmployments

Lists employments.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListEmploymentsQueriesNoOData query parameters, set via the record fields skip ($skip), top ($top), filter ($filter), orderby ($orderby), expand ($expand), crossCompany (cross-company), count ($count), and 'select ($select).

Returns: EmploymentsCollection|error

Sample code:

hr:EmploymentsCollection result = check hrClient->listEmployments(
queries = {filter: "LegalEntityId eq 'USMF'"}
);
createEmployments

Creates an employment.

Parameters:

NameTypeRequiredDescription
payloadEmploymentYesThe employment to create.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: Employment|error

Sample code:

hr:Employment created = check hrClient->createEmployments({
personnelNumber: "000159",
legalEntityId: "USMF",
employmentStartDate: "2024-01-15",
employmentEndDate: "9999-12-31",
workerType: "Employee"
});
getEmployments

Gets an employment by key.

Parameters:

NameTypeRequiredDescription
personnelNumberstringYesThe personnel number key field.
legalEntityIdstringYesThe legal entity id key field.
employmentStartDatestringYesThe employment start date key field.
employmentEndDatestringYesThe employment end date key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetEmploymentsQueriesNoOData query parameters, set via the record fields expand ($expand) and 'select ($select).

Returns: Employment|error

Sample code:

hr:Employment employment = check hrClient->getEmployments(
"000159",
"USMF",
"2024-01-15",
"9999-12-31"
);
deleteEmployments

Deletes an employment.

Parameters:

NameTypeRequiredDescription
personnelNumberstringYesThe personnel number key field.
legalEntityIdstringYesThe legal entity id key field.
employmentStartDatestringYesThe employment start date key field.
employmentEndDatestringYesThe employment end date key field.
headersDeleteEmploymentsHeadersNoOptional ifMatch ETag, sent as the If-Match header.

Returns: error?

Sample code:

check hrClient->deleteEmployments(
"000159",
"USMF",
"2024-01-15",
"9999-12-31",
{ifMatch: eTag}
);
updateEmployments

Updates an employment.

Parameters:

NameTypeRequiredDescription
personnelNumberstringYesThe personnel number key field.
legalEntityIdstringYesThe legal entity id key field.
employmentStartDatestringYesThe employment start date key field.
employmentEndDatestringYesThe employment end date key field.
payloadEmploymentYesThe fields to update.
headersUpdateEmploymentsHeadersNoOptional ifMatch ETag, sent as the If-Match header.

Returns: Employment|error

Sample code:

hr:Employment updated = check hrClient->updateEmployments(
"000159",
"USMF",
"2024-01-15",
"9999-12-31",
{calendarId: "USMF_STD"},
{ifMatch: eTag}
);

ESS Workers

listEssWorkers

Lists employee self-service (ESS) worker profiles.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListEssWorkersQueriesNoOData query parameters, set via the record fields skip ($skip), top ($top), filter ($filter), orderby ($orderby), expand ($expand), crossCompany (cross-company), count ($count), and 'select ($select).

Returns: EssWorkersCollection|error

Sample code:

hr:EssWorkersCollection result = check hrClient->listEssWorkers(
queries = {filter: "LastName eq 'Ferreira'"}
);
createEssWorkers

Creates an ESS worker profile.

Parameters:

NameTypeRequiredDescription
payloadEssWorkerYesThe ESS worker profile to create.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: EssWorker|error

Sample code:

hr:EssWorker created = check hrClient->createEssWorkers({
personnelNumber: "000159",
partyNumber: "000159",
firstName: "Alicia",
lastName: "Ferreira",
name: "Alicia Ferreira"
});
getEssWorkers

Gets an ESS worker profile by key.

Parameters:

NameTypeRequiredDescription
personnelNumberstringYesThe personnel number key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetEssWorkersQueriesNoOData query parameters, set via the record fields expand ($expand) and 'select ($select).

Returns: EssWorker|error

Sample code:

hr:EssWorker worker = check hrClient->getEssWorkers("000159");
deleteEssWorkers

Deletes an ESS worker profile.

Parameters:

NameTypeRequiredDescription
personnelNumberstringYesThe personnel number key field.
headersDeleteEssWorkersHeadersNoOptional ifMatch ETag, sent as the If-Match header.

Returns: error?

Sample code:

check hrClient->deleteEssWorkers("000159", {ifMatch: eTag});
updateEssWorkers

Updates an ESS worker profile.

Parameters:

NameTypeRequiredDescription
personnelNumberstringYesThe personnel number key field.
payloadEssWorkerYesThe fields to update.
headersUpdateEssWorkersHeadersNoOptional ifMatch ETag, sent as the If-Match header.

Returns: EssWorker|error

Sample code:

hr:EssWorker updated = check hrClient->updateEssWorkers(
"000159",
{knownAs: "Ali"},
{ifMatch: eTag}
);

Injury Types

listInjuryTypes

Lists injury types.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListInjuryTypesQueriesNoOData query parameters, set via the record fields skip ($skip), top ($top), filter ($filter), orderby ($orderby), expand ($expand), crossCompany (cross-company), count ($count), and 'select ($select).

Returns: InjuryTypesCollection|error

Sample code:

hr:InjuryTypesCollection result = check hrClient->listInjuryTypes();
createInjuryTypes

Creates an injury type.

Parameters:

NameTypeRequiredDescription
payloadInjuryTypeYesThe injury type to create.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: InjuryType|error

Sample code:

hr:InjuryType created = check hrClient->createInjuryTypes({
injuryTypeId: "STRAIN",
description: "Muscle strain"
});
getInjuryTypes

Gets an injury type by key.

Parameters:

NameTypeRequiredDescription
injuryTypeIdstringYesThe injury type id key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetInjuryTypesQueriesNoOData query parameters, set via the record fields expand ($expand) and 'select ($select).

Returns: InjuryType|error

Sample code:

hr:InjuryType injuryType = check hrClient->getInjuryTypes("STRAIN");
deleteInjuryTypes

Deletes an injury type.

Parameters:

NameTypeRequiredDescription
injuryTypeIdstringYesThe injury type id key field.
headersDeleteInjuryTypesHeadersNoOptional ifMatch ETag, sent as the If-Match header.

Returns: error?

Sample code:

check hrClient->deleteInjuryTypes("STRAIN", {ifMatch: eTag});
updateInjuryTypes

Updates an injury type.

Parameters:

NameTypeRequiredDescription
injuryTypeIdstringYesThe injury type id key field.
payloadInjuryTypeYesThe fields to update.
headersUpdateInjuryTypesHeadersNoOptional ifMatch ETag, sent as the If-Match header.

Returns: InjuryType|error

Sample code:

hr:InjuryType updated = check hrClient->updateInjuryTypes(
"STRAIN",
{description: "Muscle strain (repetitive)"},
{ifMatch: eTag}
);

People

listPeople

Lists people.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListPeopleQueriesNoOData query parameters, set via the record fields skip ($skip), top ($top), filter ($filter), orderby ($orderby), expand ($expand), crossCompany (cross-company), count ($count), and 'select ($select).

Returns: PeopleCollection|error

Sample code:

hr:PeopleCollection result = check hrClient->listPeople(
queries = {filter: "LastName eq 'Ferreira'"}
);
createPeople

Creates a person.

Parameters:

NameTypeRequiredDescription
payloadPersonYesThe person to create.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: Person|error

Sample code:

hr:Person created = check hrClient->createPeople({
partyNumber: "000159",
firstName: "Alicia",
lastName: "Ferreira",
name: "Alicia Ferreira",
gender: "Female"
});
getPeople

Gets a person by key.

Parameters:

NameTypeRequiredDescription
partyNumberstringYesThe party number key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetPeopleQueriesNoOData query parameters, set via the record fields expand ($expand) and 'select ($select).

Returns: Person|error

Sample code:

hr:Person person = check hrClient->getPeople("000159");
deletePeople

Deletes a person.

Parameters:

NameTypeRequiredDescription
partyNumberstringYesThe party number key field.
headersDeletePeopleHeadersNoOptional ifMatch ETag, sent as the If-Match header.

Returns: error?

Sample code:

check hrClient->deletePeople("000159", {ifMatch: eTag});
updatePeople

Updates a person.

Parameters:

NameTypeRequiredDescription
partyNumberstringYesThe party number key field.
payloadPersonYesThe fields to update.
headersUpdatePeopleHeadersNoOptional ifMatch ETag, sent as the If-Match header.

Returns: Person|error

Sample code:

hr:Person updated = check hrClient->updatePeople(
"000159",
{knownAs: "Ali", primaryContactEmail: "[email protected]"},
{ifMatch: eTag}
);

Person Images

listPersonImages

Lists person images.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListPersonImagesQueriesNoOData query parameters, set via the record fields skip ($skip), top ($top), filter ($filter), orderby ($orderby), expand ($expand), crossCompany (cross-company), count ($count), and 'select ($select).

Returns: PersonImagesCollection|error

Sample code:

hr:PersonImagesCollection result = check hrClient->listPersonImages();
createPersonImages

Creates a person image.

Parameters:

NameTypeRequiredDescription
payloadPersonImageYesThe party number and image content (fileContent bytes and fileName) to create.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: PersonImage|error

Sample code:

hr:PersonImage created = check hrClient->createPersonImages({
partyNumber: "000159",
image: {
fileContent: photoBytes,
fileName: "alicia-ferreira.jpg"
}
});
getPersonImages

Gets a person image by key.

Parameters:

NameTypeRequiredDescription
partyNumberstringYesThe party number key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetPersonImagesQueriesNoOData query parameters, set via the record fields expand ($expand) and 'select ($select).

Returns: PersonImage|error

Sample code:

hr:PersonImage image = check hrClient->getPersonImages("000159");
deletePersonImages

Deletes a person image.

Parameters:

NameTypeRequiredDescription
partyNumberstringYesThe party number key field.
headersDeletePersonImagesHeadersNoOptional ifMatch ETag, sent as the If-Match header.

Returns: error?

Sample code:

check hrClient->deletePersonImages("000159", {ifMatch: eTag});
updatePersonImages

Updates a person image.

Parameters:

NameTypeRequiredDescription
partyNumberstringYesThe party number key field.
payloadPersonImageYesThe fields to update.
headersUpdatePersonImagesHeadersNoOptional ifMatch ETag, sent as the If-Match header.

Returns: PersonImage|error

Sample code:

hr:PersonImage updated = check hrClient->updatePersonImages(
"000159",
{image: {fileContent: newPhotoBytes, fileName: "alicia-ferreira-2026.jpg"}},
{ifMatch: eTag}
);

Person Users

listPersonUsers

Lists person-to-user links.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListPersonUsersQueriesNoOData query parameters, set via the record fields skip ($skip), top ($top), filter ($filter), orderby ($orderby), expand ($expand), crossCompany (cross-company), count ($count), and 'select ($select).

Returns: PersonUsersCollection|error

Sample code:

hr:PersonUsersCollection result = check hrClient->listPersonUsers(
queries = {filter: "PartyNumber eq '000159'"}
);
createPersonUsers

Creates a person-to-user link.

Parameters:

NameTypeRequiredDescription
payloadPersonUserYesThe person-to-user link to create.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: PersonUser|error

Sample code:

hr:PersonUser created = check hrClient->createPersonUsers({
userId: "aferreira",
partyNumber: "000159",
validFrom: "2024-01-15",
personName: "Alicia Ferreira",
userEmail: "[email protected]"
});
getPersonUsers

Gets a person-to-user link by key.

Parameters:

NameTypeRequiredDescription
userIdstringYesThe user id key field.
partyNumberstringYesThe party number key field.
validFromstringYesThe valid from key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetPersonUsersQueriesNoOData query parameters, set via the record fields expand ($expand) and 'select ($select).

Returns: PersonUser|error

Sample code:

hr:PersonUser personUser = check hrClient->getPersonUsers("aferreira", "000159", "2024-01-15");
deletePersonUsers

Deletes a person-to-user link.

Parameters:

NameTypeRequiredDescription
userIdstringYesThe user id key field.
partyNumberstringYesThe party number key field.
validFromstringYesThe valid from key field.
headersDeletePersonUsersHeadersNoOptional ifMatch ETag, sent as the If-Match header.

Returns: error?

Sample code:

check hrClient->deletePersonUsers("aferreira", "000159", "2024-01-15", {ifMatch: eTag});
updatePersonUsers

Updates a person-to-user link.

Parameters:

NameTypeRequiredDescription
userIdstringYesThe user id key field.
partyNumberstringYesThe party number key field.
validFromstringYesThe valid from key field.
payloadPersonUserYesThe fields to update.
headersUpdatePersonUsersHeadersNoOptional ifMatch ETag, sent as the If-Match header.

Returns: PersonUser|error

Sample code:

hr:PersonUser updated = check hrClient->updatePersonUsers(
"aferreira",
"000159",
"2024-01-15",
{userEmail: "[email protected]"},
{ifMatch: eTag}
);

State Holidays

listStateHolidays

Lists state holidays.

Parameters:

NameTypeRequiredDescription
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesListStateHolidaysQueriesNoOData query parameters, set via the record fields skip ($skip), top ($top), filter ($filter), orderby ($orderby), expand ($expand), crossCompany (cross-company), count ($count), and 'select ($select).

Returns: StateHolidaysCollection|error

Sample code:

hr:StateHolidaysCollection result = check hrClient->listStateHolidays(
queries = {filter: "StateId eq 'WA'"}
);
createStateHolidays

Creates a state holiday.

Parameters:

NameTypeRequiredDescription
payloadStateHolidayYesThe state holiday to create.
headersmap<string|string[]>NoAdditional HTTP request headers.

Returns: StateHoliday|error

Sample code:

hr:StateHoliday created = check hrClient->createStateHolidays({
countryRegionId: "USA",
stateId: "WA",
holidayDate: "2026-11-11",
description: "Veterans Day"
});
getStateHolidays

Gets a state holiday by key.

Parameters:

NameTypeRequiredDescription
holidayDatestringYesThe holiday date key field.
countryRegionIdstringYesThe country region id key field.
stateIdstringYesThe state id key field.
headersmap<string|string[]>NoAdditional HTTP request headers.
queriesGetStateHolidaysQueriesNoOData query parameters, set via the record fields expand ($expand) and 'select ($select).

Returns: StateHoliday|error

Sample code:

hr:StateHoliday holiday = check hrClient->getStateHolidays("2026-11-11", "USA", "WA");
deleteStateHolidays

Deletes a state holiday.

Parameters:

NameTypeRequiredDescription
holidayDatestringYesThe holiday date key field.
countryRegionIdstringYesThe country region id key field.
stateIdstringYesThe state id key field.
headersDeleteStateHolidaysHeadersNoOptional ifMatch ETag, sent as the If-Match header.

Returns: error?

Sample code:

check hrClient->deleteStateHolidays("2026-11-11", "USA", "WA", {ifMatch: eTag});
updateStateHolidays

Updates a state holiday.

Parameters:

NameTypeRequiredDescription
holidayDatestringYesThe holiday date key field.
countryRegionIdstringYesThe country region id key field.
stateIdstringYesThe state id key field.
payloadStateHolidayYesThe fields to update.
headersUpdateStateHolidaysHeadersNoOptional ifMatch ETag, sent as the If-Match header.

Returns: StateHoliday|error

Sample code:

hr:StateHoliday updated = check hrClient->updateStateHolidays(
"2026-11-11",
"USA",
"WA",
{description: "Veterans Day (State Observed)"},
{ifMatch: eTag}
);