patch
https://{dc-region}.zuperpro.com/api/custom_fields
UPDATE CUSTOM FIELDS
Updates custom fields for any supported module record.
Supported Modules
| Module |
|---|
| JOB |
| ORGANIZATION |
| ESTIMATE |
| PURCHASE_ORDER |
| VENDOR |
| CUSTOMER |
| PROJECT |
| SERVICE_CONTRACT |
| INVOICE |
| PROPERTY |
| PRODUCT |
| ASSET |
Note: Plural forms (
PRODUCTS,ESTIMATES,ASSETS,PURCHASE_ORDERS,SERVICE_CONTRACTS) are also accepted and normalized automatically.
Update Behavior (Partial Update)
This API uses a MERGE strategy, NOT a full replacement.
- ONLY send fields that are NEW or CHANGED
- Existing fields NOT included in the request are PRESERVED
- No data loss occurs if you omit unchanged fields
- Fields are matched by:
label+group_uidcombination
Example
If a record has fields A, B, C and you send only field B with a new value, fields A and C remain unchanged.
Important Notes
- This API does NOT support deletion of custom fields
- To clear a field's value, send it with
value: "" - At least one custom field must be included in the request
group_uidvalues are validated against existing custom field groups
Request Payload
{
"module_name": "JOB",
"module_uid": "uuid-string",
"custom_fields": [
{
"label": "Field Name",
"value": "Field Value",
"group_uid": "uuid-or-null",
"hide_to_fe": false,
"hide_field": false,
"read_only": false
}
]
}Field Descriptions
| Field | Required | Type | Description |
|---|---|---|---|
module_name | ✅ | string | One of the supported modules |
module_uid | ✅ | string | Valid UUID of the record |
custom_fields | ✅ | array | Array with at least 1 field |
Custom Field Object
| Field | Required | Type | Description |
|---|---|---|---|
label | ✅ | string | Field identifier |
value | ✅ | string | New value for the field |
group_uid | ❌ | string | Custom field group UUID (or null) |
hide_to_fe | ❌ | boolean | Hide from frontend |
hide_field | ❌ | boolean | Hide field entirely |
read_only | ❌ | boolean | Make field read-only |
Response
Success returns the module UID and a summary message indicating how many fields were added/updated.
Behavior Summary
| Scenario | Result |
|---|---|
| Send only changed fields | ✅ Other fields preserved |
Send empty array [] | ❌ Validation error (min 1 field required) |
| Omit a field entirely | ✅ Field remains unchanged |
Send field with value: "" | ✅ Field value is cleared (not deleted) |
| Want to delete a field | ❌ Not supported by this API |