curl --request GET \
--url https://sandbox.nmbr.co/services/payroll/employees \
--header 'Authorization: Bearer <token>'import requests
url = "https://sandbox.nmbr.co/services/payroll/employees"
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/employees', 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/employees",
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/employees"
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/employees")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.nmbr.co/services/payroll/employees")
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": "employee",
"data": {
"company": {
"id": "<id>",
"object": "company",
"links": {
"self": "/companies/<id>"
}
},
"employee_number": "001",
"first_name": "Marley",
"last_name": "Prosacco",
"middle_initial": null,
"personal_email": "marley.prosacco@personal.test",
"work_email": "mprosacco@work.test",
"address_line_1": "Angelina Ridge",
"address_line_2": null,
"city": "Toronto",
"administrative_area": "ON",
"province_code": "ON",
"country_code": "CA",
"postal_code": "M1M1M1",
"sin": "196710156",
"sin_last_3": "156",
"date_of_birth": "1985-01-20",
"warnings": {
"object": "list",
"data": [
{
"object": "warning",
"data": {
"namespace": "onboarding",
"type": "bank_account_doesnt_exists"
}
}
]
},
"external_ref": null,
"preferred_locale": null,
"archived_at": null,
"created_at": "2026-01-01T00:00:00.000000Z",
"updated_at": "2026-01-01T00:00:00.000000Z"
},
"links": {
"self": "/employees/<id>"
}
}
],
"links": {
"first": "/employees?page=1",
"last": "/employees?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 15,
"total": 1,
"has_more": false
}
}List employees
curl --request GET \
--url https://sandbox.nmbr.co/services/payroll/employees \
--header 'Authorization: Bearer <token>'import requests
url = "https://sandbox.nmbr.co/services/payroll/employees"
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/employees', 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/employees",
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/employees"
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/employees")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.nmbr.co/services/payroll/employees")
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": "employee",
"data": {
"company": {
"id": "<id>",
"object": "company",
"links": {
"self": "/companies/<id>"
}
},
"employee_number": "001",
"first_name": "Marley",
"last_name": "Prosacco",
"middle_initial": null,
"personal_email": "marley.prosacco@personal.test",
"work_email": "mprosacco@work.test",
"address_line_1": "Angelina Ridge",
"address_line_2": null,
"city": "Toronto",
"administrative_area": "ON",
"province_code": "ON",
"country_code": "CA",
"postal_code": "M1M1M1",
"sin": "196710156",
"sin_last_3": "156",
"date_of_birth": "1985-01-20",
"warnings": {
"object": "list",
"data": [
{
"object": "warning",
"data": {
"namespace": "onboarding",
"type": "bank_account_doesnt_exists"
}
}
]
},
"external_ref": null,
"preferred_locale": null,
"archived_at": null,
"created_at": "2026-01-01T00:00:00.000000Z",
"updated_at": "2026-01-01T00:00:00.000000Z"
},
"links": {
"self": "/employees/<id>"
}
}
],
"links": {
"first": "/employees?page=1",
"last": "/employees?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
Date filters support two formats:
Exact Date Match: Provide a well-formatted date in YYYY-MM-DD format for an exact match. Example: archived_at=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:archived_at[gte]=2024-01-01&archived_at[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).
first_name, last_name company, work_assignments 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 ("employee").
- Default
- With company expanded
- With work_assignments expanded
Hide child attributes
Hide child attributes
An optional identifier for the employee within the partner's system, such as a badge number or HR system ID. Distinct from id and external_ref.
40The employee's first name.
50The employee's last name.
50The employee's middle initial.
1The employee's personal email address, used as the primary address for payroll communications such as Pay Stub emails.
255The employee's work email address. Used for payroll communications if personal_email is not set.
255The first line of the employee's mailing address. Canada Revenue Agency forms (T4, RL-1) truncate this to the length those forms allow.
255The second line of the employee's mailing address. Canada Revenue Agency forms (T4, RL-1) truncate this to the length those forms allow.
255The city of the employee's mailing address.
255The region of the employee's mailing address — the province, state, or county, depending on the country. For Canadian employees this is the Province of Residence (POR), not the Province of Employment (POE) or Province of Work (POW). POE and POW are configured via the Work Assignment's Tax Properties.
255This attribute is deprecated and will be removed.
A deprecated alias of administrative_area that mirrors its value. Use administrative_area instead.
The country code for the employee's mailing address.
CA, GB 2The postal code for the employee's mailing address.
10This attribute is deprecated and will be removed.
The employee's Social Insurance Number (SIN), used for tax reporting.
If you only need the last 3 digits for display purposes, use sin_last_3 instead. If you need the complete SIN, use the /employees/:id/reveal endpoint instead. Note the /reveal endpoint can only reveal one employee at a time and is rate-limited for security reasons.
The last 3 digits of the employee's Social Insurance Number (SIN). null if no SIN has been provided.
The employee's date of birth.
A collection of data validation warnings for this employee. Warnings indicate incomplete or potentially incorrect data and could prevent payroll processing.
Hide child attributes
Hide child attributes
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 locale used for payroll communications sent to this employee, such as Pay Stub emails. If not set, the Business Entity's locale is used.
en, fr The date the employee was archived. Archiving an employee also archives all Work Assignments that are not already archived. Archived employees do not appear in active listings.
The date and time the object was created in Nmbr.
The date and time the object was last updated in Nmbr.

