curl --request PATCH \
--url https://api.zenskar.com/custom_attributes/{definition_id} \
--header 'Content-Type: application/json' \
--header 'organisation: <api-key>' \
--header 'x-api-key: <api-key>' \
--data '
{
"attribute_key_name": "<string>",
"display_name": "<string>",
"business_entity_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"is_tag": true,
"enum_choices": [
"<string>"
],
"default_value": "<unknown>",
"is_required": true,
"is_enabled": true,
"sort_order": 123,
"description": "<string>"
}
'import requests
url = "https://api.zenskar.com/custom_attributes/{definition_id}"
payload = {
"attribute_key_name": "<string>",
"display_name": "<string>",
"business_entity_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"is_tag": True,
"enum_choices": ["<string>"],
"default_value": "<unknown>",
"is_required": True,
"is_enabled": True,
"sort_order": 123,
"description": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"organisation": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {
'x-api-key': '<api-key>',
organisation: '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
attribute_key_name: '<string>',
display_name: '<string>',
business_entity_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
is_tag: true,
enum_choices: ['<string>'],
default_value: '<unknown>',
is_required: true,
is_enabled: true,
sort_order: 123,
description: '<string>'
})
};
fetch('https://api.zenskar.com/custom_attributes/{definition_id}', 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://api.zenskar.com/custom_attributes/{definition_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'attribute_key_name' => '<string>',
'display_name' => '<string>',
'business_entity_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'is_tag' => true,
'enum_choices' => [
'<string>'
],
'default_value' => '<unknown>',
'is_required' => true,
'is_enabled' => true,
'sort_order' => 123,
'description' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"organisation: <api-key>",
"x-api-key: <api-key>"
],
]);
$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://api.zenskar.com/custom_attributes/{definition_id}"
payload := strings.NewReader("{\n \"attribute_key_name\": \"<string>\",\n \"display_name\": \"<string>\",\n \"business_entity_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"is_tag\": true,\n \"enum_choices\": [\n \"<string>\"\n ],\n \"default_value\": \"<unknown>\",\n \"is_required\": true,\n \"is_enabled\": true,\n \"sort_order\": 123,\n \"description\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("organisation", "<api-key>")
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.patch("https://api.zenskar.com/custom_attributes/{definition_id}")
.header("x-api-key", "<api-key>")
.header("organisation", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"attribute_key_name\": \"<string>\",\n \"display_name\": \"<string>\",\n \"business_entity_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"is_tag\": true,\n \"enum_choices\": [\n \"<string>\"\n ],\n \"default_value\": \"<unknown>\",\n \"is_required\": true,\n \"is_enabled\": true,\n \"sort_order\": 123,\n \"description\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zenskar.com/custom_attributes/{definition_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-api-key"] = '<api-key>'
request["organisation"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"attribute_key_name\": \"<string>\",\n \"display_name\": \"<string>\",\n \"business_entity_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"is_tag\": true,\n \"enum_choices\": [\n \"<string>\"\n ],\n \"default_value\": \"<unknown>\",\n \"is_required\": true,\n \"is_enabled\": true,\n \"sort_order\": 123,\n \"description\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organisation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"attribute_key_name": "<string>",
"display_name": "<string>",
"module": "customers",
"data_type": "STRING",
"business_entity_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"is_tag": true,
"enum_choices": [
"<string>"
],
"default_value": "<unknown>",
"is_required": true,
"is_enabled": true,
"sort_order": 123,
"description": "<string>",
"business_entity": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"is_default": true,
"address": {
"line1": "<string>",
"line2": "<string>",
"line3": "<string>",
"city": "<string>",
"state": "<string>",
"zipCode": "<string>",
"country": "<string>",
"validation_status": "<string>"
},
"email": "<string>",
"phone_number": "<string>",
"tax_config": {},
"logo_url": "<string>"
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Update custom attribute definition
Update an existing custom attribute definition. Note: attribute_key_name and data_type are generally not updatable after creation.
curl --request PATCH \
--url https://api.zenskar.com/custom_attributes/{definition_id} \
--header 'Content-Type: application/json' \
--header 'organisation: <api-key>' \
--header 'x-api-key: <api-key>' \
--data '
{
"attribute_key_name": "<string>",
"display_name": "<string>",
"business_entity_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"is_tag": true,
"enum_choices": [
"<string>"
],
"default_value": "<unknown>",
"is_required": true,
"is_enabled": true,
"sort_order": 123,
"description": "<string>"
}
'import requests
url = "https://api.zenskar.com/custom_attributes/{definition_id}"
payload = {
"attribute_key_name": "<string>",
"display_name": "<string>",
"business_entity_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"is_tag": True,
"enum_choices": ["<string>"],
"default_value": "<unknown>",
"is_required": True,
"is_enabled": True,
"sort_order": 123,
"description": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"organisation": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {
'x-api-key': '<api-key>',
organisation: '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
attribute_key_name: '<string>',
display_name: '<string>',
business_entity_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
is_tag: true,
enum_choices: ['<string>'],
default_value: '<unknown>',
is_required: true,
is_enabled: true,
sort_order: 123,
description: '<string>'
})
};
fetch('https://api.zenskar.com/custom_attributes/{definition_id}', 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://api.zenskar.com/custom_attributes/{definition_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'attribute_key_name' => '<string>',
'display_name' => '<string>',
'business_entity_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'is_tag' => true,
'enum_choices' => [
'<string>'
],
'default_value' => '<unknown>',
'is_required' => true,
'is_enabled' => true,
'sort_order' => 123,
'description' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"organisation: <api-key>",
"x-api-key: <api-key>"
],
]);
$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://api.zenskar.com/custom_attributes/{definition_id}"
payload := strings.NewReader("{\n \"attribute_key_name\": \"<string>\",\n \"display_name\": \"<string>\",\n \"business_entity_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"is_tag\": true,\n \"enum_choices\": [\n \"<string>\"\n ],\n \"default_value\": \"<unknown>\",\n \"is_required\": true,\n \"is_enabled\": true,\n \"sort_order\": 123,\n \"description\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("organisation", "<api-key>")
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.patch("https://api.zenskar.com/custom_attributes/{definition_id}")
.header("x-api-key", "<api-key>")
.header("organisation", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"attribute_key_name\": \"<string>\",\n \"display_name\": \"<string>\",\n \"business_entity_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"is_tag\": true,\n \"enum_choices\": [\n \"<string>\"\n ],\n \"default_value\": \"<unknown>\",\n \"is_required\": true,\n \"is_enabled\": true,\n \"sort_order\": 123,\n \"description\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.zenskar.com/custom_attributes/{definition_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-api-key"] = '<api-key>'
request["organisation"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"attribute_key_name\": \"<string>\",\n \"display_name\": \"<string>\",\n \"business_entity_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"is_tag\": true,\n \"enum_choices\": [\n \"<string>\"\n ],\n \"default_value\": \"<unknown>\",\n \"is_required\": true,\n \"is_enabled\": true,\n \"sort_order\": 123,\n \"description\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organisation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"attribute_key_name": "<string>",
"display_name": "<string>",
"module": "customers",
"data_type": "STRING",
"business_entity_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"is_tag": true,
"enum_choices": [
"<string>"
],
"default_value": "<unknown>",
"is_required": true,
"is_enabled": true,
"sort_order": 123,
"description": "<string>",
"business_entity": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"is_default": true,
"address": {
"line1": "<string>",
"line2": "<string>",
"line3": "<string>",
"city": "<string>",
"state": "<string>",
"zipCode": "<string>",
"country": "<string>",
"validation_status": "<string>"
},
"email": "<string>",
"phone_number": "<string>",
"tax_config": {},
"logo_url": "<string>"
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Path Parameters
Body
A unique system identifier for the attribute (e.g., customer_tier, internal_notes).
1A user-friendly label for the attribute shown in the UI.
The module this custom attribute belongs to (e.g., customer, products, contracts).
customers, products, contracts, plans, invoices, payments The type of data the attribute will store.
STRING, INTEGER, FLOAT, BOOLEAN, LIST_STRING, ENUM, JSON, DATE If populated, this definition is an entity-specific addition or override.
If TRUE, this attribute is a Tag. Tags must have data_type = ENUM.
If data_type is ENUM, this stores the list of valid string choices.
An optional default value for the attribute. Must conform to data_type and be one of enum_choices if applicable.
Indicates if a value is mandatory for this attribute.
Whether the attribute definition is currently active.
Optional: for controlling display order in UIs.
Optional: further description or help text for the attribute.
Response
Successful Response
A unique system identifier for the attribute (e.g., customer_tier, internal_notes).
1A user-friendly label for the attribute shown in the UI.
1The module this custom attribute belongs to (e.g., customer, products, contracts).
customers, products, contracts, plans, invoices, payments The type of data the attribute will store.
STRING, INTEGER, FLOAT, BOOLEAN, LIST_STRING, ENUM, JSON, DATE If populated, this definition is an entity-specific addition or override.
If TRUE, this attribute is a Tag. Tags must have data_type = ENUM.
If data_type is ENUM, this stores the list of valid string choices.
An optional default value for the attribute. Must conform to data_type and be one of enum_choices if applicable.
Indicates if a value is mandatory for this attribute.
Whether the attribute definition is currently active.
Optional: for controlling display order in UIs.
Optional: further description or help text for the attribute.
Business Entity Response Schema
Show child attributes
Show child attributes