curl --request PUT \
--url https://sandbox.nmbr.co/services/payroll/statutory_withholding_line_items/{statutory_withholding_line_item} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"business_preset_id": "<id>",
"statutory_withholding_type": "federal_income_tax",
"title": "Federal Income Tax",
"title_translations": {
"en": "Federal Income Tax",
"fr": "Impôt fédéral"
},
"remittance_account_id": "<id>"
}
'import requests
url = "https://sandbox.nmbr.co/services/payroll/statutory_withholding_line_items/{statutory_withholding_line_item}"
payload = {
"business_preset_id": "<id>",
"statutory_withholding_type": "federal_income_tax",
"title": "Federal Income Tax",
"title_translations": {
"en": "Federal Income Tax",
"fr": "Impôt fédéral"
},
"remittance_account_id": "<id>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
business_preset_id: '<id>',
statutory_withholding_type: 'federal_income_tax',
title: 'Federal Income Tax',
title_translations: {en: 'Federal Income Tax', fr: 'Impôt fédéral'},
remittance_account_id: '<id>'
})
};
fetch('https://sandbox.nmbr.co/services/payroll/statutory_withholding_line_items/{statutory_withholding_line_item}', 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/statutory_withholding_line_items/{statutory_withholding_line_item}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'business_preset_id' => '<id>',
'statutory_withholding_type' => 'federal_income_tax',
'title' => 'Federal Income Tax',
'title_translations' => [
'en' => 'Federal Income Tax',
'fr' => 'Impôt fédéral'
],
'remittance_account_id' => '<id>'
]),
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/statutory_withholding_line_items/{statutory_withholding_line_item}"
payload := strings.NewReader("{\n \"business_preset_id\": \"<id>\",\n \"statutory_withholding_type\": \"federal_income_tax\",\n \"title\": \"Federal Income Tax\",\n \"title_translations\": {\n \"en\": \"Federal Income Tax\",\n \"fr\": \"Impôt fédéral\"\n },\n \"remittance_account_id\": \"<id>\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://sandbox.nmbr.co/services/payroll/statutory_withholding_line_items/{statutory_withholding_line_item}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"business_preset_id\": \"<id>\",\n \"statutory_withholding_type\": \"federal_income_tax\",\n \"title\": \"Federal Income Tax\",\n \"title_translations\": {\n \"en\": \"Federal Income Tax\",\n \"fr\": \"Impôt fédéral\"\n },\n \"remittance_account_id\": \"<id>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.nmbr.co/services/payroll/statutory_withholding_line_items/{statutory_withholding_line_item}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"business_preset_id\": \"<id>\",\n \"statutory_withholding_type\": \"federal_income_tax\",\n \"title\": \"Federal Income Tax\",\n \"title_translations\": {\n \"en\": \"Federal Income Tax\",\n \"fr\": \"Impôt fédéral\"\n },\n \"remittance_account_id\": \"<id>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<id>",
"object": "statutory_withholding_line_item",
"data": {
"pay_stub": {
"id": "<id>",
"object": "pay_stub",
"links": {
"self": "/pay_stubs/<id>"
}
},
"line_item_type": "statutory_withholding",
"is_system": true,
"is_managed": true,
"amount": 500,
"custom_amount": null,
"managed_amount": 500,
"statutory_withholding_type": {
"id": "<id>",
"object": "statutory_withholding_type",
"data": {
"type": "federal_income_tax",
"label": "Federal Income Tax"
},
"links": {
"self": "/statutory_withholding_types/federal_income_tax"
}
},
"title": "Federal Income Tax",
"title_translations": {
"en": "Federal Income Tax",
"fr": "Impôt fédéral"
},
"title_translated": "Federal Income Tax",
"remittance_account": {
"id": "<id>",
"object": "remittance_account",
"links": {
"self": "/remittance_accounts/<id>"
}
},
"source_adjustment": null,
"business_preset": {
"id": "<id>",
"object": "business_preset",
"links": {
"self": "/business_presets/<id>"
}
},
"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
},
"created_at": "2026-01-01T00:00:00.000000Z",
"updated_at": "2026-01-01T00:00:00.000000Z"
},
"links": {
"self": "/statutory_withholding_line_items/<id>"
}
}Update a statutory withholding line item
Only available on correction and historical payrolls.
curl --request PUT \
--url https://sandbox.nmbr.co/services/payroll/statutory_withholding_line_items/{statutory_withholding_line_item} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"business_preset_id": "<id>",
"statutory_withholding_type": "federal_income_tax",
"title": "Federal Income Tax",
"title_translations": {
"en": "Federal Income Tax",
"fr": "Impôt fédéral"
},
"remittance_account_id": "<id>"
}
'import requests
url = "https://sandbox.nmbr.co/services/payroll/statutory_withholding_line_items/{statutory_withholding_line_item}"
payload = {
"business_preset_id": "<id>",
"statutory_withholding_type": "federal_income_tax",
"title": "Federal Income Tax",
"title_translations": {
"en": "Federal Income Tax",
"fr": "Impôt fédéral"
},
"remittance_account_id": "<id>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
business_preset_id: '<id>',
statutory_withholding_type: 'federal_income_tax',
title: 'Federal Income Tax',
title_translations: {en: 'Federal Income Tax', fr: 'Impôt fédéral'},
remittance_account_id: '<id>'
})
};
fetch('https://sandbox.nmbr.co/services/payroll/statutory_withholding_line_items/{statutory_withholding_line_item}', 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/statutory_withholding_line_items/{statutory_withholding_line_item}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'business_preset_id' => '<id>',
'statutory_withholding_type' => 'federal_income_tax',
'title' => 'Federal Income Tax',
'title_translations' => [
'en' => 'Federal Income Tax',
'fr' => 'Impôt fédéral'
],
'remittance_account_id' => '<id>'
]),
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/statutory_withholding_line_items/{statutory_withholding_line_item}"
payload := strings.NewReader("{\n \"business_preset_id\": \"<id>\",\n \"statutory_withholding_type\": \"federal_income_tax\",\n \"title\": \"Federal Income Tax\",\n \"title_translations\": {\n \"en\": \"Federal Income Tax\",\n \"fr\": \"Impôt fédéral\"\n },\n \"remittance_account_id\": \"<id>\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://sandbox.nmbr.co/services/payroll/statutory_withholding_line_items/{statutory_withholding_line_item}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"business_preset_id\": \"<id>\",\n \"statutory_withholding_type\": \"federal_income_tax\",\n \"title\": \"Federal Income Tax\",\n \"title_translations\": {\n \"en\": \"Federal Income Tax\",\n \"fr\": \"Impôt fédéral\"\n },\n \"remittance_account_id\": \"<id>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.nmbr.co/services/payroll/statutory_withholding_line_items/{statutory_withholding_line_item}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"business_preset_id\": \"<id>\",\n \"statutory_withholding_type\": \"federal_income_tax\",\n \"title\": \"Federal Income Tax\",\n \"title_translations\": {\n \"en\": \"Federal Income Tax\",\n \"fr\": \"Impôt fédéral\"\n },\n \"remittance_account_id\": \"<id>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<id>",
"object": "statutory_withholding_line_item",
"data": {
"pay_stub": {
"id": "<id>",
"object": "pay_stub",
"links": {
"self": "/pay_stubs/<id>"
}
},
"line_item_type": "statutory_withholding",
"is_system": true,
"is_managed": true,
"amount": 500,
"custom_amount": null,
"managed_amount": 500,
"statutory_withholding_type": {
"id": "<id>",
"object": "statutory_withholding_type",
"data": {
"type": "federal_income_tax",
"label": "Federal Income Tax"
},
"links": {
"self": "/statutory_withholding_types/federal_income_tax"
}
},
"title": "Federal Income Tax",
"title_translations": {
"en": "Federal Income Tax",
"fr": "Impôt fédéral"
},
"title_translated": "Federal Income Tax",
"remittance_account": {
"id": "<id>",
"object": "remittance_account",
"links": {
"self": "/remittance_accounts/<id>"
}
},
"source_adjustment": null,
"business_preset": {
"id": "<id>",
"object": "business_preset",
"links": {
"self": "/business_presets/<id>"
}
},
"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
},
"created_at": "2026-01-01T00:00:00.000000Z",
"updated_at": "2026-01-01T00:00:00.000000Z"
},
"links": {
"self": "/statutory_withholding_line_items/<id>"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Body
Editing is prevented when is_editable is false
The type of statutory withholding for this line item.
Editing is prevented when is_editable is false
cpp, cpp_2, ei, federal_income_tax, provincial_income_tax, qpip, qpp, qpp_2, territorial_income_tax An override for managed_amount. When set, amount reflects this value instead of managed_amount.
Editing is prevented when is_editable is false
x <= 999999Editing is prevented when is_editable is false
255Editing is prevented when is_editable is false
Editing is prevented when is_editable is false
Editing is prevented when is_editable is false
Editing is prevented when is_editable is false
Editing is prevented when is_editable is false
255Response
OK
The unique identifier of the object in Nmbr.
The type of the object in Nmbr ("statutory_withholding_line_item").
Hide child attributes
Hide child attributes
Whether this line item was generated automatically by the payroll engine. System line items cannot be deleted.
Always true. Statutory withholding line items are fully managed by the payroll engine and cannot be created, updated, or 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 withholding amount calculated by the payroll engine. Read-only; set custom_amount to override.
The type of statutory withholding 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 ("statutory_withholding_type").
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.
The date and time the object was created in Nmbr.
The date and time the object was last updated in Nmbr.

