curl --request POST \
--url https://sandbox.nmbr.co/services/payroll/reimbursements \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"work_assignment_id": "<id>",
"reimbursement_type": "non_taxable_reimbursement",
"amount": "35",
"frequency": "per_payroll",
"effective_from": "2026-01-01",
"tag_assignment": {
"unit": "percentage",
"tag_allocations": [
{
"tags": [
"<id>"
],
"value": 100
}
]
}
}
'import requests
url = "https://sandbox.nmbr.co/services/payroll/reimbursements"
payload = {
"work_assignment_id": "<id>",
"reimbursement_type": "non_taxable_reimbursement",
"amount": "35",
"frequency": "per_payroll",
"effective_from": "2026-01-01",
"tag_assignment": {
"unit": "percentage",
"tag_allocations": [
{
"tags": ["<id>"],
"value": 100
}
]
}
}
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({
work_assignment_id: '<id>',
reimbursement_type: 'non_taxable_reimbursement',
amount: '35',
frequency: 'per_payroll',
effective_from: '2026-01-01',
tag_assignment: {unit: 'percentage', tag_allocations: [{tags: ['<id>'], value: 100}]}
})
};
fetch('https://sandbox.nmbr.co/services/payroll/reimbursements', 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/reimbursements",
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([
'work_assignment_id' => '<id>',
'reimbursement_type' => 'non_taxable_reimbursement',
'amount' => '35',
'frequency' => 'per_payroll',
'effective_from' => '2026-01-01',
'tag_assignment' => [
'unit' => 'percentage',
'tag_allocations' => [
[
'tags' => [
'<id>'
],
'value' => 100
]
]
]
]),
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/reimbursements"
payload := strings.NewReader("{\n \"work_assignment_id\": \"<id>\",\n \"reimbursement_type\": \"non_taxable_reimbursement\",\n \"amount\": \"35\",\n \"frequency\": \"per_payroll\",\n \"effective_from\": \"2026-01-01\",\n \"tag_assignment\": {\n \"unit\": \"percentage\",\n \"tag_allocations\": [\n {\n \"tags\": [\n \"<id>\"\n ],\n \"value\": 100\n }\n ]\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/reimbursements")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"work_assignment_id\": \"<id>\",\n \"reimbursement_type\": \"non_taxable_reimbursement\",\n \"amount\": \"35\",\n \"frequency\": \"per_payroll\",\n \"effective_from\": \"2026-01-01\",\n \"tag_assignment\": {\n \"unit\": \"percentage\",\n \"tag_allocations\": [\n {\n \"tags\": [\n \"<id>\"\n ],\n \"value\": 100\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.nmbr.co/services/payroll/reimbursements")
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 \"work_assignment_id\": \"<id>\",\n \"reimbursement_type\": \"non_taxable_reimbursement\",\n \"amount\": \"35\",\n \"frequency\": \"per_payroll\",\n \"effective_from\": \"2026-01-01\",\n \"tag_assignment\": {\n \"unit\": \"percentage\",\n \"tag_allocations\": [\n {\n \"tags\": [\n \"<id>\"\n ],\n \"value\": 100\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "<id>",
"object": "reimbursement",
"data": {
"work_assignment": {
"id": "<id>",
"object": "work_assignment",
"links": {
"self": "/work_assignments/<id>"
}
},
"reimbursement_type": {
"id": "<id>",
"object": "reimbursement_type",
"data": {
"type": "non_taxable_reimbursement",
"label": "Non-Taxable Reimbursement"
},
"links": {
"self": "/reimbursement_types/non_taxable_reimbursement"
}
},
"title": null,
"title_translations": null,
"title_translated": null,
"frequency": "per_payroll",
"date_basis": null,
"pay_period_cadence": null,
"amount": 35,
"effective_from": "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": "/reimbursements/<id>"
}
}Create a reimbursement
curl --request POST \
--url https://sandbox.nmbr.co/services/payroll/reimbursements \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"work_assignment_id": "<id>",
"reimbursement_type": "non_taxable_reimbursement",
"amount": "35",
"frequency": "per_payroll",
"effective_from": "2026-01-01",
"tag_assignment": {
"unit": "percentage",
"tag_allocations": [
{
"tags": [
"<id>"
],
"value": 100
}
]
}
}
'import requests
url = "https://sandbox.nmbr.co/services/payroll/reimbursements"
payload = {
"work_assignment_id": "<id>",
"reimbursement_type": "non_taxable_reimbursement",
"amount": "35",
"frequency": "per_payroll",
"effective_from": "2026-01-01",
"tag_assignment": {
"unit": "percentage",
"tag_allocations": [
{
"tags": ["<id>"],
"value": 100
}
]
}
}
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({
work_assignment_id: '<id>',
reimbursement_type: 'non_taxable_reimbursement',
amount: '35',
frequency: 'per_payroll',
effective_from: '2026-01-01',
tag_assignment: {unit: 'percentage', tag_allocations: [{tags: ['<id>'], value: 100}]}
})
};
fetch('https://sandbox.nmbr.co/services/payroll/reimbursements', 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/reimbursements",
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([
'work_assignment_id' => '<id>',
'reimbursement_type' => 'non_taxable_reimbursement',
'amount' => '35',
'frequency' => 'per_payroll',
'effective_from' => '2026-01-01',
'tag_assignment' => [
'unit' => 'percentage',
'tag_allocations' => [
[
'tags' => [
'<id>'
],
'value' => 100
]
]
]
]),
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/reimbursements"
payload := strings.NewReader("{\n \"work_assignment_id\": \"<id>\",\n \"reimbursement_type\": \"non_taxable_reimbursement\",\n \"amount\": \"35\",\n \"frequency\": \"per_payroll\",\n \"effective_from\": \"2026-01-01\",\n \"tag_assignment\": {\n \"unit\": \"percentage\",\n \"tag_allocations\": [\n {\n \"tags\": [\n \"<id>\"\n ],\n \"value\": 100\n }\n ]\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/reimbursements")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"work_assignment_id\": \"<id>\",\n \"reimbursement_type\": \"non_taxable_reimbursement\",\n \"amount\": \"35\",\n \"frequency\": \"per_payroll\",\n \"effective_from\": \"2026-01-01\",\n \"tag_assignment\": {\n \"unit\": \"percentage\",\n \"tag_allocations\": [\n {\n \"tags\": [\n \"<id>\"\n ],\n \"value\": 100\n }\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.nmbr.co/services/payroll/reimbursements")
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 \"work_assignment_id\": \"<id>\",\n \"reimbursement_type\": \"non_taxable_reimbursement\",\n \"amount\": \"35\",\n \"frequency\": \"per_payroll\",\n \"effective_from\": \"2026-01-01\",\n \"tag_assignment\": {\n \"unit\": \"percentage\",\n \"tag_allocations\": [\n {\n \"tags\": [\n \"<id>\"\n ],\n \"value\": 100\n }\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "<id>",
"object": "reimbursement",
"data": {
"work_assignment": {
"id": "<id>",
"object": "work_assignment",
"links": {
"self": "/work_assignments/<id>"
}
},
"reimbursement_type": {
"id": "<id>",
"object": "reimbursement_type",
"data": {
"type": "non_taxable_reimbursement",
"label": "Non-Taxable Reimbursement"
},
"links": {
"self": "/reimbursement_types/non_taxable_reimbursement"
}
},
"title": null,
"title_translations": null,
"title_translated": null,
"frequency": "per_payroll",
"date_basis": null,
"pay_period_cadence": null,
"amount": 35,
"effective_from": "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": "/reimbursements/<id>"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
The monetary amount applied each time this reimbursement is included on a Pay Stub.
0 <= x <= 99999The frequency at which this reimbursement is applied to Pay Stubs. When per_month, the amount is distributed evenly across all Payrolls in the calendar month.
once, per_month, per_payroll The date from which this reimbursement is applied to Pay Stubs.
The type of reimbursement, which determines how it is categorized and reported on Pay Stubs.
Must be present when business_preset_id is either empty or not set.
health_spending_account, non_taxable_reimbursement, professional_membership, taxable_reimbursement, transit_pass, wellness_spending_account The date after which this reimbursement is no longer applied. null if the reimbursement applies indefinitely.
255255Hide child attributes
Hide child attributes
Which payroll date determines the calendar month for the allocation. Applies only to per_month recurrences.
by_pay_date, by_period_end_date, by_period_start_date Which pay periods within the month receive the allocation. An array of 1-based positions; -1 is the final period. Applies only to per_month recurrences.
1Response
Created
The unique identifier of the object in Nmbr.
The type of the object in Nmbr ("reimbursement").
Hide child attributes
Hide child attributes
The type of reimbursement, which determines how it is categorized and reported on Pay Stubs.
Hide child attributes
Hide child attributes
The unique identifier of the object in Nmbr.
The type of the object in Nmbr ("reimbursement_type").
Hide child attributes
Hide child attributes
The string identifier for this reimbursement type.
The human-readable display name for this reimbursement 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.
The 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 frequency at which this reimbursement is applied to Pay Stubs. When per_month, the amount is distributed evenly across all Payrolls in the calendar month.
once, per_month, per_payroll Which payroll date determines the calendar month for the allocation. Applies only to per_month recurrences.
by_pay_date, by_period_end_date, by_period_start_date Which pay periods within the month receive the allocation. An array of 1-based positions; -1 is the final period. Applies only to per_month recurrences.
The monetary amount applied each time this reimbursement is included on a Pay Stub.
The date from which this reimbursement is applied to Pay Stubs.
The date after which this reimbursement is no longer applied. null if the reimbursement 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.

