Payroll Groups
Edit Payroll Group
Updates an existing payroll group. All fields (name, group_rows, locations) are required in the request body.
PATCH
/
payroll-groups
/
{id}
Edit Payroll Group
curl --request PATCH \
--url https://api.roostedhr.com/api/1_12/payroll-groups/{id} \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"name": "<string>",
"group_rows": [
[
"<string>"
]
],
"locations": [
"<string>"
],
"payroll_item_id": "<string>",
"default_wage": 123,
"invoice_cost": "<string>",
"wage_rules_id": "<string>"
}
'import requests
url = "https://api.roostedhr.com/api/1_12/payroll-groups/{id}"
payload = {
"name": "<string>",
"group_rows": [["<string>"]],
"locations": ["<string>"],
"payroll_item_id": "<string>",
"default_wage": 123,
"invoice_cost": "<string>",
"wage_rules_id": "<string>"
}
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
group_rows: [['<string>']],
locations: ['<string>'],
payroll_item_id: '<string>',
default_wage: 123,
invoice_cost: '<string>',
wage_rules_id: '<string>'
})
};
fetch('https://api.roostedhr.com/api/1_12/payroll-groups/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.roostedhr.com/api/1_12/payroll-groups/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'group_rows' => [
[
'<string>'
]
],
'locations' => [
'<string>'
],
'payroll_item_id' => '<string>',
'default_wage' => 123,
'invoice_cost' => '<string>',
'wage_rules_id' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.roostedhr.com/api/1_12/payroll-groups/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"group_rows\": [\n [\n \"<string>\"\n ]\n ],\n \"locations\": [\n \"<string>\"\n ],\n \"payroll_item_id\": \"<string>\",\n \"default_wage\": 123,\n \"invoice_cost\": \"<string>\",\n \"wage_rules_id\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.roostedhr.com/api/1_12/payroll-groups/{id}")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"group_rows\": [\n [\n \"<string>\"\n ]\n ],\n \"locations\": [\n \"<string>\"\n ],\n \"payroll_item_id\": \"<string>\",\n \"default_wage\": 123,\n \"invoice_cost\": \"<string>\",\n \"wage_rules_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.roostedhr.com/api/1_12/payroll-groups/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["X-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"group_rows\": [\n [\n \"<string>\"\n ]\n ],\n \"locations\": [\n \"<string>\"\n ],\n \"payroll_item_id\": \"<string>\",\n \"default_wage\": 123,\n \"invoice_cost\": \"<string>\",\n \"wage_rules_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"payroll_item_id": "<string>",
"default_wage": 123,
"insert_date": "<string>",
"invoice_cost": 123,
"wage_rules_id": "<string>",
"group_rows": [
"<string>"
],
"locations": [
"<string>"
]
}This is a partial update endpoint — only include the fields you want to change. Omitted fields remain unchanged.
Authorizations
Path Parameters
Payroll Group ID
Body
application/json
Fields to update
Request body for updating an existing payroll group.
Payroll group name
Array of skillset groups. Each group is an array of skillset IDs.
Location IDs to associate with this payroll group
External payroll item identifier
Default wage rate
Invoice cost (accepts string for flexibility)
Associated wage rule identifier
Response
OK
A payroll group used to categorize shifts for payroll and invoicing purposes.
Payroll group identifier
Payroll group name
External payroll item identifier
Default wage rate
Creation date
Invoice cost rate
Associated wage rule identifier
Skillset combination row IDs
Associated location IDs
⌘I
Edit Payroll Group
curl --request PATCH \
--url https://api.roostedhr.com/api/1_12/payroll-groups/{id} \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"name": "<string>",
"group_rows": [
[
"<string>"
]
],
"locations": [
"<string>"
],
"payroll_item_id": "<string>",
"default_wage": 123,
"invoice_cost": "<string>",
"wage_rules_id": "<string>"
}
'import requests
url = "https://api.roostedhr.com/api/1_12/payroll-groups/{id}"
payload = {
"name": "<string>",
"group_rows": [["<string>"]],
"locations": ["<string>"],
"payroll_item_id": "<string>",
"default_wage": 123,
"invoice_cost": "<string>",
"wage_rules_id": "<string>"
}
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
group_rows: [['<string>']],
locations: ['<string>'],
payroll_item_id: '<string>',
default_wage: 123,
invoice_cost: '<string>',
wage_rules_id: '<string>'
})
};
fetch('https://api.roostedhr.com/api/1_12/payroll-groups/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.roostedhr.com/api/1_12/payroll-groups/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'group_rows' => [
[
'<string>'
]
],
'locations' => [
'<string>'
],
'payroll_item_id' => '<string>',
'default_wage' => 123,
'invoice_cost' => '<string>',
'wage_rules_id' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-KEY: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.roostedhr.com/api/1_12/payroll-groups/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"group_rows\": [\n [\n \"<string>\"\n ]\n ],\n \"locations\": [\n \"<string>\"\n ],\n \"payroll_item_id\": \"<string>\",\n \"default_wage\": 123,\n \"invoice_cost\": \"<string>\",\n \"wage_rules_id\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.roostedhr.com/api/1_12/payroll-groups/{id}")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"group_rows\": [\n [\n \"<string>\"\n ]\n ],\n \"locations\": [\n \"<string>\"\n ],\n \"payroll_item_id\": \"<string>\",\n \"default_wage\": 123,\n \"invoice_cost\": \"<string>\",\n \"wage_rules_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.roostedhr.com/api/1_12/payroll-groups/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["X-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"group_rows\": [\n [\n \"<string>\"\n ]\n ],\n \"locations\": [\n \"<string>\"\n ],\n \"payroll_item_id\": \"<string>\",\n \"default_wage\": 123,\n \"invoice_cost\": \"<string>\",\n \"wage_rules_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"payroll_item_id": "<string>",
"default_wage": 123,
"insert_date": "<string>",
"invoice_cost": 123,
"wage_rules_id": "<string>",
"group_rows": [
"<string>"
],
"locations": [
"<string>"
]
}