Skip to main content
POST
Create Transaction Custom Field

Headers

Authorization
string
required

Bearer [access_token]

Content-Type
string
required

application/json

Body

application/json

Custom field definition.

attributeName
string
required

Display name for the new field. Trimmed before use, and checked for collisions against both existing custom fields and the built-in transaction fields.

Example:

"Mailer Sent"

attributeType
enum<string>
required

Field data type.

Note two differences from the lead custom field API: anniversary_date does not exist on transactions and is rejected, and html is not offered here.

Available options:
text,
number,
date,
percentage,
currency,
single_select,
multi_select
Example:

"date"

params
string

Option list, required for single_select and multi_select and ignored otherwise.

Both shapes are accepted and normalised: a bare JSON array ["Pending","Closed"], or the lead API's wrapper {"option":["Pending","Closed"]}. Sending an empty list for a select type is rejected.

Example:

"[\"Pending\",\"Closed\"]"

formIds
integer<int64>[]

Field groups to place the new field in, from GET /v1.0/transaction/forms.

A field in no group is invisible - it will not appear on the transaction detail page, as a list column, or in filters. Omit this only if you intend to place the field from the CRM UI afterwards.

Every id is validated before the field is created, so a bad id fails the whole request rather than leaving an orphaned field behind. A group already at its 50-field limit is rejected the same way.

Field groups to place the new field in, from GET /v1.0/transaction/forms.

A field in no group is invisible - it will not appear on the transaction detail page, as a list column, or in filters. Omit this only if you intend to place the field from the CRM UI afterwards.

Every id is validated before the field is created, so a bad id fails the whole request rather than leaving an orphaned field behind. A group already at its 50-field limit is rejected the same way.

Example:

Response

The field that was created, id included.

id
integer<int64>

Custom field id.

Example:

1001

name
string

Custom field display name.

Example:

"Closing Agent"

type
enum<string>

Custom field data type. Note the mixed casing: Single-Select and Multi-Select are emitted with hyphens and mixed case, while the other values are the upper-case enum names.

Available options:
DATE,
TEXT,
NUMBER,
PERCENTAGE,
Single-Select,
Multi-Select,
CURRENCY,
HTML
Example:

"Single-Select"

params
string

For Single-Select and Multi-Select types, a JSON string encoding the option list, e.g. "[{"label":"Option A","value":"1"},{"label":"Option B","value":"2"}]". Empty or null for non-select types.

Example:

"[{\"label\":\"Option A\",\"value\":\"1\"},{\"label\":\"Option B\",\"value\":\"2\"}]"