Visit Main Site
Join Partner Program
Login
     
Introduction
Labour Module SDK Documentation
Installation
Python
PHP
GitHub
Composer
Documentation
Account
Item
Item Fulfillment
Item Receipts
Order
Usage
Express
Invoice
Payment
Credit Note
Refund
Purchase Order
Purchase Invoice
Purchase Payment
Purchase Credit Notes
Purchase Refund
Gift Certificate
Return Merchandise Authorizations
RVA
Settings
Integration
Portal
Communications
Reports
Proforma
Custom Development
Custom Component
Custom Attribute
Custom Object
Custom Database
» Custom Attribute Module SDK Documentation

Getting Custom Attributes

Function: custom_attributes()

Purpose

This function is used to retrieve all configured custom attributes in the system. Custom attributes define additional metadata fields that can be attached to various resources such as accounts, contacts, items, invoices, orders, and custom objects. This API allows SDK users to fetch a complete list of configured custom attributes including their type, status, options (for dropdown types), usage rules, and pagination details. It is typically used when building forms, validation rules, UI rendering logic, or workflow automation that depends on available custom attribute definitions.

Parameters

ParameterTypeDescription
limitintegerOptional parameter used to control how many records are returned per request.
offsetintegerOptional parameter used for pagination to skip a number of records.

Use Case

This function is used to load all custom attribute definitions to dynamically build form fields, validate user inputs, or verify that the correct configuration exists before creating or updating records. For example, when constructing a dynamic UI for a custom object, the application must know which attributes are required, what input types they use (text, number, dropdown), whether uniqueness rules apply, and what dropdown options exist. The SDK function for this endpoint allows retrieving all such attributes in a single call, enabling systems to adapt without hardcoding configurations.

Python
def custom_attributes():
    SDKConfig.PRINT_REQUEST_DATA = True
    SDKConfig.PRINT_RAW_RESPONSE = False

    token_file_path = "PATH_TO_SHARED_TOKEN_FILE.json"
    file_token_mgr = FileTokenManager(token_file_path)

    exsited_sdk: ExsitedSDK = ExsitedSDK().init_sdk(
        request_token_dto=CommonData.get_request_token_dto(),
        file_token_mgr=file_token_mgr
    )

    try:
        response = exsited_sdk.custom_attributes.custom_attributes(limit=PLACEHOLDER_LIMIT, offset=PLACEHOLDER_OFFSET)
        print(response)
    except ABException as ab:
        print(ab)
        print(ab.get_errors())
        print(ab.raw_response)

Response

The response contains a list of custom attributes with their configurations, including attribute identifiers, names, display names, types, validation rules, dropdown options, encryption flags, and usage details defining which resources the custom attribute applies to. Pagination information is also returned to allow clients to fetch additional pages when large numbers of custom attributes exist.

Python
{
    "custom_attributes": [
        {
            "uuid": "CUSTOM_ATTRIBUTE_UUID_1",
            "status": "STATUS_VALUE",
            "name": "ATTRIBUTE_NAME_1",
            "display_name": "DISPLAY_NAME_1",
            "type": "ATTRIBUTE_TYPE",
            "min_value": "",
            "max_value": "",
            "max_length": "",
            "use_in": [
                {
                    "resource": "RESOURCE_NAME_1",
                    "required": "false",
                    "unique": "false",
                    "associated_account_groups": [],
                    "associated_user_groups": [],
                    "associated_item_groups": [],
                    "enabled": "true"
                }
            ],
            "options": [
                {
                    "name": "OPTION_NAME_1",
                    "display_order": PLACEHOLDER_ORDER
                }
            ],
            "encrypt_data": "false"
        },
        {
            "uuid": "CUSTOM_ATTRIBUTE_UUID_2",
            "status": "STATUS_VALUE",
            "name": "ATTRIBUTE_NAME_2",
            "display_name": "DISPLAY_NAME_2",
            "type": "ATTRIBUTE_TYPE",
            "min_value": "",
            "max_value": "",
            "max_length": "",
            "use_in": [
                {
                    "resource": "RESOURCE_NAME_2",
                    "required": "false",
                    "unique": "false",
                    "associated_account_groups": [],
                    "associated_user_groups": [],
                    "associated_item_groups": [],
                    "enabled": "true"
                }
            ],
            "options": [],
            "encrypt_data": "false"
        }
    ],
    "pagination": {
        "records": PLACEHOLDER_RECORDS_TOTAL,
        "limit": PLACEHOLDER_LIMIT,
        "offset": PLACEHOLDER_OFFSET,
        "previous_page": "PREVIOUS_PAGE_URL_PLACEHOLDER",
        "next_page": "NEXT_PAGE_URL_PLACEHOLDER"
    }
}

Getting a Custom Attribute by UUID

Function: get_custom_attribute()

Purpose

This API retrieves the complete details of a specific custom attribute identified by its UUID. The response includes the custom attribute's uuid, status, name, displayName, description, type, unit, uom, minValue, maxValue, maxLength, maxSize, version, encryptData, useIn (with resource, required, unique, enabled, associatedAccountGroups, associatedItemGroups, associatedUserGroups), options (with displayOrder, name), and audit fields (createdBy, createdOn, lastUpdatedBy, lastUpdatedOn). This is essential for viewing or editing a single custom attribute's full configuration, verifying its type and validation rules, or loading attribute details into a management interface for review or modification.

Parameters

Parameter nameTypeDescription
ca_uuidStringThe unique UUID of the custom attribute to retrieve.

Use Case

In system configuration workflows, administrators frequently need to view the full details of a specific custom attribute. A configuration manager may need to verify an attribute's type and validation constraints before associating it with a new account group, a developer may need to inspect the attribute's options list to ensure dropdown values match business requirements, or an auditor may need to review the attribute's useIn settings to confirm it is correctly enabled for the intended resources. When integrating with external systems or building dynamic forms, the complete attribute definition including its type, min/max values, options, and resource associations is needed to accurately render input controls and enforce validation rules. This endpoint provides the full attribute record in a single call, eliminating the need to filter through the entire custom attributes list to find a specific attribute's configuration.

Python
PHP
def test_get_custom_attribute():
    SDKConfig.PRINT_REQUEST_DATA = False
    SDKConfig.PRINT_RAW_RESPONSE = False

    token_file_path = "shared_token.json"
    file_token_mgr = FileTokenManager(token_file_path)

    exsited_sdk: ExsitedSDK = ExsitedSDK().init_sdk(
        request_token_dto=CommonData.get_request_token_dto(),
        file_token_mgr=file_token_mgr
    )

    try:
        response = exsited_sdk.custom_attributes.get_custom_attribute(
            ca_uuid="3f43aac8-33cf-4bbe-aeba-f05e9b56d804"
        )
        print(response)
    except ABException as ab:
        print(ab)
        print(ab.get_errors())
        print(ab.raw_response)
public function testDetails()
{
    $customAttributeUUID = '{custom_attribute_uuid}';
    try {
        $response = $this->customAttributeService->details($customAttributeUUID);
        echo '<pre>' . json_encode($response, JSON_PRETTY_PRINT) . '</pre>';
    } catch (Exception $e) {
        echo 'Error: ' . $e->getMessage();
    }
}

Response

On success, the function returns a CustomAttributesResponseDTO object containing the full details of the requested custom attribute. The customAttribute object includes its uuid, status, name, displayName, description, type, unit, uom, minValue, maxValue, maxLength, maxSize, version, encryptData, useIn (with resource, required, unique, enabled, associatedAccountGroups, associatedItemGroups, associatedUserGroups), options (with displayOrder, name), and audit fields (createdBy, createdOn, lastUpdatedBy, lastUpdatedOn). This makes it easy to display the attribute's complete configuration, verify its validation rules and resource associations, and retrieve the attribute's current state for form rendering or management purposes.

Python
PHP
CustomAttributesResponseDTO(
    customAttribute=CustomAttributeDTO(
        uuid='ATTRIBUTE_UUID',
        status='ATTRIBUTE_STATUS',
        name='ATTRIBUTE_NAME',
        displayName='ATTRIBUTE_DISPLAY_NAME',
        description='ATTRIBUTE_DESCRIPTION',
        type='ATTRIBUTE_TYPE',
        unit='ATTRIBUTE_UNIT',
        uom='ATTRIBUTE_UOM',
        minValue='MIN_VALUE',
        maxValue='MAX_VALUE',
        maxLength='MAX_LENGTH',
        maxSize='MAX_SIZE',
        version='ATTRIBUTE_VERSION',
        encryptData='ENCRYPT_DATA',
        useIn=[
            CustomAttributesUseInDTO(
                resource='RESOURCE',
                required='REQUIRED',
                unique='UNIQUE',
                enabled='ENABLED',
                associatedAccountGroups=[],
                associatedItemGroups=[],
                associatedUserGroups=[]
            )
        ],
        options=[
            CustomAttributesOptionDTO(
                displayOrder=DISPLAY_ORDER,
                name='OPTION_NAME'
            )
        ],
        createdBy='CREATED_BY',
        createdOn='CREATED_ON',
        lastUpdatedBy='LAST_UPDATED_BY',
        lastUpdatedOn='LAST_UPDATED_ON'
    )
)
{
  "custom_attribute": {
    "uuid": "CUSTOM_ATTRIBUTE_UUID",
    "status": "STATUS",
    "name": "ATTRIBUTE_NAME",
    "display_name": "DISPLAY_NAME",
    "type": "TYPE",
    "min_value": "MIN_VALUE",
    "max_value": "MAX_VALUE",
    "max_length": "MAX_LENGTH",
    "use_in": [],
    "options": [],
    "encrypt_data": "BOOLEAN"
  }
}

Looking to build next big project?

With our robust set of tools and resources, you can create custom solutions that integrate seamlessly with our system and take your business to the next level.

Join Our Partner Program
APIs
SDK
Help Center
Community
Contact Us

©2026 Exsited. All rights reserved.

Terms and Conditions | Privacy Policy

Follow Us: