curl --request POST \
--url https://sandbox.nmbr.co/services/payroll/deduction_line_items/bulk/delete/scope \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"payroll_id": "<id>",
"pay_stubs": {
"include": "all"
}
}
'import requests
url = "https://sandbox.nmbr.co/services/payroll/deduction_line_items/bulk/delete/scope"
payload = {
"payroll_id": "<id>",
"pay_stubs": { "include": "all" }
}
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({payroll_id: '<id>', pay_stubs: {include: 'all'}})
};
fetch('https://sandbox.nmbr.co/services/payroll/deduction_line_items/bulk/delete/scope', 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/deduction_line_items/bulk/delete/scope",
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([
'payroll_id' => '<id>',
'pay_stubs' => [
'include' => 'all'
]
]),
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/deduction_line_items/bulk/delete/scope"
payload := strings.NewReader("{\n \"payroll_id\": \"<id>\",\n \"pay_stubs\": {\n \"include\": \"all\"\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/deduction_line_items/bulk/delete/scope")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"payroll_id\": \"<id>\",\n \"pay_stubs\": {\n \"include\": \"all\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.nmbr.co/services/payroll/deduction_line_items/bulk/delete/scope")
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 \"payroll_id\": \"<id>\",\n \"pay_stubs\": {\n \"include\": \"all\"\n }\n}"
response = http.request(request)
puts response.read_body{
"object": "list",
"data": [
{
"id": "<id>",
"object": "deduction_line_item",
"data": {
"pay_stub": {
"id": "<id>",
"object": "pay_stub",
"links": {
"self": "/pay_stubs/<id>"
}
},
"line_item_type": "deduction",
"is_managed": false,
"amount": 35,
"custom_amount": null,
"managed_amount": 35,
"deduction_type": {
"id": "<id>",
"object": "deduction_type",
"data": {
"type": "income_tax",
"label": "Income tax debt",
"locale": "en"
},
"links": {
"self": "/deduction_types/income_tax"
}
},
"recurrence": null,
"title": null,
"title_translations": null,
"title_translated": null,
"remittance_account": null,
"business_preset": null,
"source_adjustment": null,
"expense_accounting_code": null,
"managed_expense_accounting_code": null,
"custom_expense_accounting_code": null,
"liability_accounting_code": null,
"managed_liability_accounting_code": null,
"custom_liability_accounting_code": null,
"component_settings": {
"attributes_locked": false
},
"external_ref": null,
"created_at": "2026-01-01T00:00:00.000000Z",
"updated_at": "2026-01-01T00:00:00.000000Z"
},
"links": {
"self": "/deduction_line_items/<id>"
}
}
],
"links": {
"first": "http://localhost/deduction_line_items/bulk/delete/scope?page=1",
"last": "http://localhost/deduction_line_items/bulk/delete/scope?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 15,
"total": 1,
"has_more": false
}
}Show bulk delete scope for deduction line items
curl --request POST \
--url https://sandbox.nmbr.co/services/payroll/deduction_line_items/bulk/delete/scope \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"payroll_id": "<id>",
"pay_stubs": {
"include": "all"
}
}
'import requests
url = "https://sandbox.nmbr.co/services/payroll/deduction_line_items/bulk/delete/scope"
payload = {
"payroll_id": "<id>",
"pay_stubs": { "include": "all" }
}
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({payroll_id: '<id>', pay_stubs: {include: 'all'}})
};
fetch('https://sandbox.nmbr.co/services/payroll/deduction_line_items/bulk/delete/scope', 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/deduction_line_items/bulk/delete/scope",
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([
'payroll_id' => '<id>',
'pay_stubs' => [
'include' => 'all'
]
]),
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/deduction_line_items/bulk/delete/scope"
payload := strings.NewReader("{\n \"payroll_id\": \"<id>\",\n \"pay_stubs\": {\n \"include\": \"all\"\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/deduction_line_items/bulk/delete/scope")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"payroll_id\": \"<id>\",\n \"pay_stubs\": {\n \"include\": \"all\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.nmbr.co/services/payroll/deduction_line_items/bulk/delete/scope")
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 \"payroll_id\": \"<id>\",\n \"pay_stubs\": {\n \"include\": \"all\"\n }\n}"
response = http.request(request)
puts response.read_body{
"object": "list",
"data": [
{
"id": "<id>",
"object": "deduction_line_item",
"data": {
"pay_stub": {
"id": "<id>",
"object": "pay_stub",
"links": {
"self": "/pay_stubs/<id>"
}
},
"line_item_type": "deduction",
"is_managed": false,
"amount": 35,
"custom_amount": null,
"managed_amount": 35,
"deduction_type": {
"id": "<id>",
"object": "deduction_type",
"data": {
"type": "income_tax",
"label": "Income tax debt",
"locale": "en"
},
"links": {
"self": "/deduction_types/income_tax"
}
},
"recurrence": null,
"title": null,
"title_translations": null,
"title_translated": null,
"remittance_account": null,
"business_preset": null,
"source_adjustment": null,
"expense_accounting_code": null,
"managed_expense_accounting_code": null,
"custom_expense_accounting_code": null,
"liability_accounting_code": null,
"managed_liability_accounting_code": null,
"custom_liability_accounting_code": null,
"component_settings": {
"attributes_locked": false
},
"external_ref": null,
"created_at": "2026-01-01T00:00:00.000000Z",
"updated_at": "2026-01-01T00:00:00.000000Z"
},
"links": {
"self": "/deduction_line_items/<id>"
}
}
],
"links": {
"first": "http://localhost/deduction_line_items/bulk/delete/scope?page=1",
"last": "http://localhost/deduction_line_items/bulk/delete/scope?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.
Body
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 ("deduction_line_item").
Hide child attributes
Hide child attributes
Whether this line item was generated by a Deduction recurrence and calculated automatically. When true, only custom_amount can be modified and the line item cannot be deleted.
The effective amount for this line item. Returns custom_amount if set, otherwise managed_amount. Read-only.
An override for managed_amount. When set, amount reflects this value instead of managed_amount.
The amount calculated by the system or set by the linked Deduction recurrence. Read-only; set custom_amount to override.
The type of deduction for this line item.
Hide child attributes
Hide child attributes
The unique identifier of the object in Nmbr.
The type of the object in Nmbr ("deduction_type").
Hide child attributes
Hide child attributes
The string identifier for this deduction type.
The human-readable display name for this deduction type.
Hide child attributes
Hide child attributes
The payroll calculation this entry describes.
eht, income_tax, insurable, pensionable, vacationable, wcb Human-readable name for the payroll calculation.
How this type affects the calculation, broken down by jurisdiction. Jurisdictions where it does not apply are omitted.
Hide child attributes
Hide child attributes
The jurisdiction this applies to (e.g. ca_federal, ca_on, ca_qc).
How this type affects the payroll calculation in this jurisdiction.
accrues_vacation_pay, reduces_base, tax_credit, withholding Plain-language explanation of how this type affects the calculation in this jurisdiction.
The program that applies in this jurisdiction, for calculations that use different programs by jurisdiction (e.g. CPP federally, QPP in Quebec; EI federally, QPIP in Quebec).
Hide child attributes
Hide child attributes
The form code (e.g. t4).
Human-readable form name.
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.
The effective expense accounting code. Returns the user-set value if present, otherwise the system-derived value. Writes to this field set the user override.
The expense accounting code derived by the system from accounting code rules and presets. Read-only.
User-set expense accounting code that overrides the system-derived value.
The effective liability accounting code. Returns the user-set value if present, otherwise the system-derived value. Writes to this field set the user override.
The liability accounting code derived by the system from accounting code rules and presets. Read-only.
User-set liability accounting code that overrides the system-derived value.
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.

