curl --request POST \
--url https://sandbox.nmbr.co/services/payroll/tags \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"tag_group_id": "<id>",
"label": "Engineering"
}
'import requests
url = "https://sandbox.nmbr.co/services/payroll/tags"
payload = {
"tag_group_id": "<id>",
"label": "Engineering"
}
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({tag_group_id: '<id>', label: 'Engineering'})
};
fetch('https://sandbox.nmbr.co/services/payroll/tags', 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/tags",
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([
'tag_group_id' => '<id>',
'label' => 'Engineering'
]),
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/tags"
payload := strings.NewReader("{\n \"tag_group_id\": \"<id>\",\n \"label\": \"Engineering\"\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/tags")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"tag_group_id\": \"<id>\",\n \"label\": \"Engineering\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.nmbr.co/services/payroll/tags")
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 \"tag_group_id\": \"<id>\",\n \"label\": \"Engineering\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<id>",
"object": "tag",
"data": {
"label": "Engineering",
"label_translations": null,
"label_translated": "Engineering",
"description": null,
"description_translations": null,
"description_translated": null,
"archived_at": null,
"is_deletable": null,
"integrations": {
"xero": {
"id": null
},
"quickbooks": {
"id": null
}
},
"tag_group": {
"id": "<id>",
"object": "tag_group",
"links": {
"self": "/tag_groups/<id>"
}
},
"business_entity": {
"id": "<id>",
"object": "business_entity",
"links": {
"self": "/business_entities/<id>"
}
},
"created_at": "2026-01-01T00:00:00.000000Z",
"updated_at": "2026-01-01T00:00:00.000000Z"
},
"links": {
"self": "/tags/<id>"
}
}Create a tag
curl --request POST \
--url https://sandbox.nmbr.co/services/payroll/tags \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"tag_group_id": "<id>",
"label": "Engineering"
}
'import requests
url = "https://sandbox.nmbr.co/services/payroll/tags"
payload = {
"tag_group_id": "<id>",
"label": "Engineering"
}
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({tag_group_id: '<id>', label: 'Engineering'})
};
fetch('https://sandbox.nmbr.co/services/payroll/tags', 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/tags",
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([
'tag_group_id' => '<id>',
'label' => 'Engineering'
]),
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/tags"
payload := strings.NewReader("{\n \"tag_group_id\": \"<id>\",\n \"label\": \"Engineering\"\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/tags")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"tag_group_id\": \"<id>\",\n \"label\": \"Engineering\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.nmbr.co/services/payroll/tags")
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 \"tag_group_id\": \"<id>\",\n \"label\": \"Engineering\"\n}"
response = http.request(request)
puts response.read_body{
"id": "<id>",
"object": "tag",
"data": {
"label": "Engineering",
"label_translations": null,
"label_translated": "Engineering",
"description": null,
"description_translations": null,
"description_translated": null,
"archived_at": null,
"is_deletable": null,
"integrations": {
"xero": {
"id": null
},
"quickbooks": {
"id": null
}
},
"tag_group": {
"id": "<id>",
"object": "tag_group",
"links": {
"self": "/tag_groups/<id>"
}
},
"business_entity": {
"id": "<id>",
"object": "business_entity",
"links": {
"self": "/business_entities/<id>"
}
},
"created_at": "2026-01-01T00:00:00.000000Z",
"updated_at": "2026-01-01T00:00:00.000000Z"
},
"links": {
"self": "/tags/<id>"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
The tag group this tag belongs to. The business entity is inferred from the tag group.
255Response
Created
The unique identifier of the object in Nmbr.
The type of the object in Nmbr ("tag").
Hide child attributes
Hide child attributes
255The translation of the label property for the request locale. Computed using the values in label and label_translations and the value of the request's Accept-Language header.
The translation of the description property for the request locale. Computed using the values in description and description_translations and the value of the request's Accept-Language header.
When set, the tag is archived and excluded from index listings by default.
A tag may not be deleted while it is assigned to any active allocation.
Identifiers for this tag in external accounting integrations, used to sync tags imported from those systems.
Hide child attributes
Hide child attributes
The date and time the object was created in Nmbr.
The date and time the object was last updated in Nmbr.

