curl --request GET \
--url https://sandbox.nmbr.co/services/payroll/pay_rates \
--header 'Authorization: Bearer <token>'import requests
url = "https://sandbox.nmbr.co/services/payroll/pay_rates"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sandbox.nmbr.co/services/payroll/pay_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/pay_rates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://sandbox.nmbr.co/services/payroll/pay_rates"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sandbox.nmbr.co/services/payroll/pay_rates")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.nmbr.co/services/payroll/pay_rates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"object": "list",
"data": [
{
"id": "<id>",
"object": "pay_rate",
"data": {
"work_assignment": {
"id": "<id>",
"object": "work_assignment",
"links": {
"self": "/work_assignments/<id>"
}
},
"title": "Marketing Manager",
"title_translations": null,
"title_translated": "Marketing Manager",
"type": "hourly",
"rate": 15,
"expected_hours_per_week": 40,
"is_editable": true,
"is_deletable": true,
"effective_from": "2026-01-01",
"earliest_valid_effective_to": "2026-01-01",
"effective_to": null,
"business_preset": null,
"expense_accounting_code": null,
"liability_accounting_code": null,
"external_ref": null,
"created_at": "2026-01-01T00:00:00.000000Z",
"updated_at": "2026-01-01T00:00:00.000000Z"
},
"links": {
"self": "/pay_rates/<id>"
}
}
],
"links": {
"first": "/pay_rates?work_assignment_id=<id>&page=1",
"last": "/pay_rates?work_assignment_id=<id>&page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 15,
"total": 1,
"has_more": false
}
}List pay rates
curl --request GET \
--url https://sandbox.nmbr.co/services/payroll/pay_rates \
--header 'Authorization: Bearer <token>'import requests
url = "https://sandbox.nmbr.co/services/payroll/pay_rates"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://sandbox.nmbr.co/services/payroll/pay_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/pay_rates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://sandbox.nmbr.co/services/payroll/pay_rates"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://sandbox.nmbr.co/services/payroll/pay_rates")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.nmbr.co/services/payroll/pay_rates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"object": "list",
"data": [
{
"id": "<id>",
"object": "pay_rate",
"data": {
"work_assignment": {
"id": "<id>",
"object": "work_assignment",
"links": {
"self": "/work_assignments/<id>"
}
},
"title": "Marketing Manager",
"title_translations": null,
"title_translated": "Marketing Manager",
"type": "hourly",
"rate": 15,
"expected_hours_per_week": 40,
"is_editable": true,
"is_deletable": true,
"effective_from": "2026-01-01",
"earliest_valid_effective_to": "2026-01-01",
"effective_to": null,
"business_preset": null,
"expense_accounting_code": null,
"liability_accounting_code": null,
"external_ref": null,
"created_at": "2026-01-01T00:00:00.000000Z",
"updated_at": "2026-01-01T00:00:00.000000Z"
},
"links": {
"self": "/pay_rates/<id>"
}
}
],
"links": {
"first": "/pay_rates?work_assignment_id=<id>&page=1",
"last": "/pay_rates?work_assignment_id=<id>&page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 15,
"total": 1,
"has_more": false
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Query Parameters
hourly, salary hourly, salary Date filters support two formats:
Exact Date Match: Provide a well-formatted date in YYYY-MM-DD format for an exact match. Example: effective_from=2024-01-01
Use an array-like syntax to specify a range with one or more comparison operators:
gt(greater than)gte(greater than or equal to)lte(less than or equal to)lt(less than) Example:effective_from[gte]=2024-01-01&effective_from[lt]=2024-12-31
Date filters support two formats:
Exact Date Match: Provide a well-formatted date in YYYY-MM-DD format for an exact match. Example: effective_to=2024-01-01
Use an array-like syntax to specify a range with one or more comparison operators:
gt(greater than)gte(greater than or equal to)lte(less than or equal to)lt(less than) Example:effective_to[gte]=2024-01-01&effective_to[lt]=2024-12-31
Sort order is specified using the format
sort=field[:direction][,field[:direction],...] where field is the name of the field to sort by
and direction is the optional sort direction (asc or desc).
businessEntity.name, effective_from, effective_to, work_assignment.payee.default, work_assignment.payee.first_name, work_assignment.payee.last_name business_preset, expense_accounting_code, liability_accounting_code, overtime_rates, tag_assignment, work_assignment Response
OK
The type of the object in Nmbr ("list").
Hide child attributes
Hide child attributes
The unique identifier of the object in Nmbr.
The type of the object in Nmbr ("pay_rate").
- Default
- With work_assignment expanded
- With overtime_rates expanded
- With business_preset expanded
- With expense_accounting_code expanded
- With liability_accounting_code expanded
- With tag_assignment expanded
Hide child attributes
Hide child attributes
255The 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.
Whether this is a salary or hourly pay rate. Determines how rate is interpreted.
hourly, salary The annual salary when type is salary, or the hourly wage when type is hourly.
The expected number of working hours per week. Must be greater than 0 for salary pay rates. Used to calculate the equivalent hourly rate from salaries for overtime.
Whether the pay rate's type, rate, and effective_from can be modified. Once the pay rate has been used on a non-draft Payroll, these fields are locked.
Whether the pay rate can be deleted. A pay rate may not be deleted once it has been used on a non-draft Payroll.
The date from which this pay rate is applied to Pay Stubs.
The earliest date that effective_to may be set to, based on the most recent non-draft Payroll period in which this pay rate was active.
The date after which this pay rate is no longer applied and can no longer be used to create Earning Line Items. null if the pay rate applies indefinitely.
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.

