curl --request GET \
--url https://sandbox.nmbr.co/services/payroll/pay_stubs \
--header 'Authorization: Bearer <token>'import requests
url = "https://sandbox.nmbr.co/services/payroll/pay_stubs"
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_stubs', 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_stubs",
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_stubs"
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_stubs")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.nmbr.co/services/payroll/pay_stubs")
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_stub",
"data": {
"payroll": {
"id": "<id>",
"object": "payroll",
"links": {
"self": "/payrolls/<id>"
}
},
"work_assignment": {
"id": "<id>",
"object": "work_assignment",
"links": {
"self": "/work_assignments/<id>"
}
},
"payment_method": "direct_deposit",
"has_taxes_calculated": true,
"is_pending_tax_rates": false,
"employee_summary": {
"gross": 0,
"subtractions": 0,
"reimbursements": 0,
"net": 0,
"gross_ytd": 0,
"subtractions_ytd": 0,
"reimbursements_ytd": 0,
"net_ytd": 0
},
"contractor_summary": {
"gross": null,
"reimbursements": null,
"net": null,
"gross_ytd": 0,
"reimbursements_ytd": 0,
"net_ytd": 0
},
"company_summary": {
"taxes_and_contributions": 0,
"benefits": 0,
"total": 0,
"taxes_and_contributions_ytd": 0,
"benefits_ytd": 0,
"total_ytd": 0
},
"vacation_pay_balance": 0,
"liability": 0,
"cash_requirement": 0,
"note": null,
"line_item_summary": {
"earnings": {
"period": 0,
"period_managed": 0,
"period_unmanaged": 0,
"ytd": 0
},
"statutory_withholdings": {
"period": 0,
"ytd": 0
},
"reimbursements": {
"period": 0,
"ytd": 0
},
"allowances": {
"period": 0,
"ytd": 0
},
"benefits": {
"period": 0,
"ytd": 0
},
"employee_benefits": {
"period": 0,
"ytd": 0
},
"employer_benefits": {
"period": 0,
"ytd": 0
},
"deductions": {
"period": 0,
"ytd": 0
}
},
"is_stale": false,
"stale_since": null,
"warnings": {
"object": "list",
"data": []
},
"external_ref": null,
"apply_standard_tax_reductions": false,
"created_at": "2026-01-01T00:00:00.000000Z",
"updated_at": "2026-01-01T00:00:00.000000Z"
},
"links": {
"self": "/pay_stubs/<id>"
}
}
],
"links": {
"first": "/pay_stubs?payroll_id=<id>&page=1",
"last": "/pay_stubs?payroll_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 stubs
Pay Stubs are sorted by the employees last_name, and contractors business_name, by default.
curl --request GET \
--url https://sandbox.nmbr.co/services/payroll/pay_stubs \
--header 'Authorization: Bearer <token>'import requests
url = "https://sandbox.nmbr.co/services/payroll/pay_stubs"
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_stubs', 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_stubs",
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_stubs"
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_stubs")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.nmbr.co/services/payroll/pay_stubs")
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_stub",
"data": {
"payroll": {
"id": "<id>",
"object": "payroll",
"links": {
"self": "/payrolls/<id>"
}
},
"work_assignment": {
"id": "<id>",
"object": "work_assignment",
"links": {
"self": "/work_assignments/<id>"
}
},
"payment_method": "direct_deposit",
"has_taxes_calculated": true,
"is_pending_tax_rates": false,
"employee_summary": {
"gross": 0,
"subtractions": 0,
"reimbursements": 0,
"net": 0,
"gross_ytd": 0,
"subtractions_ytd": 0,
"reimbursements_ytd": 0,
"net_ytd": 0
},
"contractor_summary": {
"gross": null,
"reimbursements": null,
"net": null,
"gross_ytd": 0,
"reimbursements_ytd": 0,
"net_ytd": 0
},
"company_summary": {
"taxes_and_contributions": 0,
"benefits": 0,
"total": 0,
"taxes_and_contributions_ytd": 0,
"benefits_ytd": 0,
"total_ytd": 0
},
"vacation_pay_balance": 0,
"liability": 0,
"cash_requirement": 0,
"note": null,
"line_item_summary": {
"earnings": {
"period": 0,
"period_managed": 0,
"period_unmanaged": 0,
"ytd": 0
},
"statutory_withholdings": {
"period": 0,
"ytd": 0
},
"reimbursements": {
"period": 0,
"ytd": 0
},
"allowances": {
"period": 0,
"ytd": 0
},
"benefits": {
"period": 0,
"ytd": 0
},
"employee_benefits": {
"period": 0,
"ytd": 0
},
"employer_benefits": {
"period": 0,
"ytd": 0
},
"deductions": {
"period": 0,
"ytd": 0
}
},
"is_stale": false,
"stale_since": null,
"warnings": {
"object": "list",
"data": []
},
"external_ref": null,
"apply_standard_tax_reductions": false,
"created_at": "2026-01-01T00:00:00.000000Z",
"updated_at": "2026-01-01T00:00:00.000000Z"
},
"links": {
"self": "/pay_stubs/<id>"
}
}
],
"links": {
"first": "/pay_stubs?payroll_id=<id>&page=1",
"last": "/pay_stubs?payroll_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
Only return pay stubs under the specified business entity.
Only return pay stubs on the specified pay schedule.
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).
These sort fields are deprecated and will be removed. Use the replacement instead:
payee.default, replaced bywork_assignment.payee.defaultpayee.first_name, replaced bywork_assignment.payee.first_namepayee.last_name, replaced bywork_assignment.payee.last_name
payee.default, payee.first_name, payee.last_name, payroll.pay_date, work_assignment.payee.default, work_assignment.payee.first_name, work_assignment.payee.last_name Filter paystubs to either include only (only), or exclude (exclude), the upcoming pay stubs.
An upcoming pay stub is defined as: - Any pay stub that belongs to the first Regular payroll in the pay schedule with a payroll status of either draft or approved. - Additionally, all pay stubs from draft or approved Off Cycle payrolls within the pay schedule are considered upcoming pay stubs.
exclude, only contractor, employee approved, draft, failed, paid, partially_paid, processing correction, historical, off_cycle, regular Date filters support two formats:
Exact Date Match: Provide a well-formatted date in YYYY-MM-DD format for an exact match. Example: payrolls.period_start=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:payrolls.period_start[gte]=2024-01-01&payrolls.period_start[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: payrolls.period_end=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:payrolls.period_end[gte]=2024-01-01&payrolls.period_end[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: payrolls.pay_date=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:payrolls.pay_date[gte]=2024-01-01&payrolls.pay_date[lt]=2024-12-31
allowance_line_items, deduction_line_items, earning_line_items, employee_benefit_line_items, employer_benefit_line_items, employer_statutory_withholding_line_items, payroll, reimbursement_line_items, statutory_withholding_line_items, 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_stub").
- Default
- With payroll expanded
- With work_assignment expanded
- With earning_line_items expanded
- With statutory_withholding_line_items expanded
- With employer_statutory_withholding_line_items expanded
- With allowance_line_items expanded
- With reimbursement_line_items expanded
- With employee_benefit_line_items expanded
- With employer_benefit_line_items expanded
- With deduction_line_items expanded
Hide child attributes
Hide child attributes
The payment method for this pay stub.
direct_deposit, manual, pad, wire Whether tax amounts have been calculated for this pay stub. When false, amounts in the employee_summary and company_summary may be incomplete.
This attribute is deprecated and will be removed.
A summary of pay for the Employee associated with this pay stub. Both employee_summary and contractor_summary are always present. The summary that does not apply is empty rather than omitted, and its amounts may be null before summaries are calculated. For calculated summaries, the side with a non-null net is the populated summary. *_ytd fields contain year-to-date totals inclusive of this pay period.
Hide child attributes
Hide child attributes
The sum of all earnings and allowances.
The total of all deductions, taxes, and benefit contributions.
The total of non-taxable reimbursements.
The Employee net pay; when negative, a warning is included.
A summary of pay for the Contractor associated with this pay stub. Always present. For calculated summaries, a non-null contractor_summary.net means the contractor summary is populated. *_ytd fields contain year-to-date totals inclusive of this pay period.
Hide child attributes
Hide child attributes
The sum of all earnings.
The total of non-taxable reimbursements.
The Contractor net pay.
A summary of the company's obligations for this pay stub. *_ytd fields contain year-to-date totals inclusive of this pay period.
Hide child attributes
Hide child attributes
The employer share of statutory remittances (CPP and EI).
The total of employer benefit contributions.
The company's total obligations.
The Employee's Vacation Pay balance as of the end of this pay period. null for Contractor pay stubs.
The total amount owed by the company for this pay stub, including Employee or Contractor net pay, employer tax contributions, and employer benefit contributions.
The total amount that will be debited from the company's account for this pay stub when the Payroll is approved.
An optional note on the pay stub, visible to the partner.
Totals grouped by line item category for this pay stub. Each category includes a period total for the current pay period and a ytd total for the calendar year to date. Categories: earnings, statutory_withholdings, reimbursements, allowances, employee_benefits, employer_benefits, deductions.
Hide child attributes
Hide child attributes
Hide child attributes
Hide child attributes
Whether the pay stub's tax calculations are out of date. When true, stale_since indicates when the pay stub became stale.
The timestamp at which the pay stub's tax calculations became stale and need to be recalculated. null if the pay stub is up to date.
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.
255When true, the standard tax reductions are applied to this pay stub's withholdings even in cases where they would otherwise be skipped to avoid applying them twice across related runs in the same period. In Canada these reductions are the employee's federal and provincial personal tax credits (their TD1 claim amounts) and the CPP/QPP basic exemption. Defaults to false, and has no effect where those reductions already apply.
The date and time the object was created in Nmbr.
The date and time the object was last updated in Nmbr.

