curl --request POST \
--url https://sandbox.nmbr.co/services/payroll/overtime_rates \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"pay_rate_id": "<id>",
"rate_multiplier": "1.5",
"tag_assignment": {
"unit": "percentage",
"tag_allocations": [
{
"tags": [
"<id>"
],
"value": 100
}
]
}
}
'import requests
url = "https://sandbox.nmbr.co/services/payroll/overtime_rates"
payload = {
"pay_rate_id": "<id>",
"rate_multiplier": "1.5",
"tag_assignment": {
"unit": "percentage",
"tag_allocations": [
{
"tags": ["<id>"],
"value": 100
}
]
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
pay_rate_id: '<id>',
rate_multiplier: '1.5',
tag_assignment: {unit: 'percentage', tag_allocations: [{tags: ['<id>'], value: 100}]}
})
};
fetch('https://sandbox.nmbr.co/services/payroll/overtime_rates', 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://sandbox.nmbr.co/services/payroll/overtime_rates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'pay_rate_id' => '<id>',
'rate_multiplier' => '1.5',
'tag_assignment' => [
'unit' => 'percentage',
'tag_allocations' => [
[
'tags' => [
'<id>'
],
'value' => 100
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://sandbox.nmbr.co/services/payroll/overtime_rates"
payload := strings.NewReader("{\n \"pay_rate_id\": \"<id>\",\n \"rate_multiplier\": \"1.5\",\n \"tag_assignment\": {\n \"unit\": \"percentage\",\n \"tag_allocations\": [\n {\n \"tags\": [\n \"<id>\"\n ],\n \"value\": 100\n }\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.post("https://sandbox.nmbr.co/services/payroll/overtime_rates")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"pay_rate_id\": \"<id>\",\n \"rate_multiplier\": \"1.5\",\n \"tag_assignment\": {\n \"unit\": \"percentage\",\n \"tag_allocations\": [\n {\n \"tags\": [\n \"<id>\"\n ],\n \"value\": 100\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.nmbr.co/services/payroll/overtime_rates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"pay_rate_id\": \"<id>\",\n \"rate_multiplier\": \"1.5\",\n \"tag_assignment\": {\n \"unit\": \"percentage\",\n \"tag_allocations\": [\n {\n \"tags\": [\n \"<id>\"\n ],\n \"value\": 100\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "<id>",
"object": "overtime_rate",
"data": {
"pay_rate": {
"id": "<id>",
"object": "pay_rate",
"links": {
"self": "/pay_rates/<id>"
}
},
"title": "1.5x",
"title_translated": "1.5x",
"rate_multiplier": 1.5,
"hourly_rate": 22.5,
"hourly_rate_override": null,
"business_preset": null,
"expense_accounting_code": null,
"liability_accounting_code": null,
"archived_at": null,
"is_editable": true,
"is_deletable": true,
"external_ref": null,
"created_at": "2026-01-01T00:00:00.000000Z",
"updated_at": "2026-01-01T00:00:00.000000Z"
},
"links": {
"self": "/overtime_rates/<id>"
}
}Create an overtime rate
curl --request POST \
--url https://sandbox.nmbr.co/services/payroll/overtime_rates \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"pay_rate_id": "<id>",
"rate_multiplier": "1.5",
"tag_assignment": {
"unit": "percentage",
"tag_allocations": [
{
"tags": [
"<id>"
],
"value": 100
}
]
}
}
'import requests
url = "https://sandbox.nmbr.co/services/payroll/overtime_rates"
payload = {
"pay_rate_id": "<id>",
"rate_multiplier": "1.5",
"tag_assignment": {
"unit": "percentage",
"tag_allocations": [
{
"tags": ["<id>"],
"value": 100
}
]
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
pay_rate_id: '<id>',
rate_multiplier: '1.5',
tag_assignment: {unit: 'percentage', tag_allocations: [{tags: ['<id>'], value: 100}]}
})
};
fetch('https://sandbox.nmbr.co/services/payroll/overtime_rates', 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://sandbox.nmbr.co/services/payroll/overtime_rates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'pay_rate_id' => '<id>',
'rate_multiplier' => '1.5',
'tag_assignment' => [
'unit' => 'percentage',
'tag_allocations' => [
[
'tags' => [
'<id>'
],
'value' => 100
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://sandbox.nmbr.co/services/payroll/overtime_rates"
payload := strings.NewReader("{\n \"pay_rate_id\": \"<id>\",\n \"rate_multiplier\": \"1.5\",\n \"tag_assignment\": {\n \"unit\": \"percentage\",\n \"tag_allocations\": [\n {\n \"tags\": [\n \"<id>\"\n ],\n \"value\": 100\n }\n ]\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.post("https://sandbox.nmbr.co/services/payroll/overtime_rates")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"pay_rate_id\": \"<id>\",\n \"rate_multiplier\": \"1.5\",\n \"tag_assignment\": {\n \"unit\": \"percentage\",\n \"tag_allocations\": [\n {\n \"tags\": [\n \"<id>\"\n ],\n \"value\": 100\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.nmbr.co/services/payroll/overtime_rates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"pay_rate_id\": \"<id>\",\n \"rate_multiplier\": \"1.5\",\n \"tag_assignment\": {\n \"unit\": \"percentage\",\n \"tag_allocations\": [\n {\n \"tags\": [\n \"<id>\"\n ],\n \"value\": 100\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "<id>",
"object": "overtime_rate",
"data": {
"pay_rate": {
"id": "<id>",
"object": "pay_rate",
"links": {
"self": "/pay_rates/<id>"
}
},
"title": "1.5x",
"title_translated": "1.5x",
"rate_multiplier": 1.5,
"hourly_rate": 22.5,
"hourly_rate_override": null,
"business_preset": null,
"expense_accounting_code": null,
"liability_accounting_code": null,
"archived_at": null,
"is_editable": true,
"is_deletable": true,
"external_ref": null,
"created_at": "2026-01-01T00:00:00.000000Z",
"updated_at": "2026-01-01T00:00:00.000000Z"
},
"links": {
"self": "/overtime_rates/<id>"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
The multiplier for this overtime, e.g 1.5 or 2.
0 <= x <= 100If set, this amount is used for the hourly rate, not the calculated amount from the rate_multiplier.
0 <= x <= 99999255Hide child attributes
Hide child attributes
Response
Created
The unique identifier of the object in Nmbr.
The type of the object in Nmbr ("overtime_rate").
Hide child attributes
Hide child attributes
The translation of the title property for the request locale. Computed using the values in title and title_translations and the value of the request's Accept-Language header.
The date and time the object was archived in Nmbr.
After a PayRate is on a non-draft payroll, its Type and Rate may not be updated.
After a PayRate is on a non-draft payroll, it may not be deleted.
A reference to the object in an external system, e.g. the primary key of the object in your application's database. Nmbr doesn't use, validate, parse, or require this value to be unique - it simply stores it for your reference.
255The date and time the object was created in Nmbr.
The date and time the object was last updated in Nmbr.

