Skip to main content
POST
Create a custom field
slug and type are immutable afterwards. SELECT and MULTI_SELECT fields need at least one option in values; NUMBER fields need a mask. The new field is created ACTIVE.

Path Parameters

realmId
string<uuid>
required

ID of your realm.

Format: UUID

organizationId
string<uuid>
required

ID of your organization.

Format: UUID

Body

application/json
label
string
required

Human-readable name shown wherever the field is rendered.

Required string length: 1 - 50
Example:

"Centro de custo"

type
enum<string>
required

Value type the field accepts. SELECT and MULTI_SELECT need at least one option in values; NUMBER needs a mask. Immutable after creation.

Available options:
TEXT,
NUMBER,
DATE,
BOOLEAN,
SELECT,
MULTI_SELECT,
CUSTOMER,
FILE,
MULTI_FILE
Example:

"SELECT"

slug
string
required

Stable key of the field: the property name under which its value is stored in the customFields map of the entities in location. Lowercase letters, digits and single hyphens, 2–80 characters. Unique per organization and immutable after creation.

Required string length: 2 - 80
Pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
Example:

"centro-de-custo"

location
enum<string>[]
required

Entities the field is attached to. A value is accepted — and, when required is true, demanded — on each listed entity.


Example: ["TRANSACTION","CARD"]

Available options:
TRANSACTION,
CARD,
WALLET,
CUSTOMER,
TRIP,
TRAVEL_PASSENGER,
USER,
VEHICLE
required
boolean
required

Whether a value must be provided on every entity listed in location.

Example:

true

values
object[] | null

Selectable options of a SELECT / MULTI_SELECT field (at least one). An option's value must be unique. Options are append-only after creation — see the update endpoint.

mask
enum<string> | null

Display format of a NUMBER field: NONE (plain number), BRL (Brazilian reais), USD (US dollars) or PERCENT. Required when type is NUMBER.

Available options:
NONE,
BRL,
USD,
PERCENT
Example:

"BRL"

description
string | null

Optional help text shown alongside the field.

Maximum string length: 512
Example:

"Centro de custo responsável pela despesa"

Response

Successful response

A custom-field definition.

id
string
required

Unique identifier of the custom field.

Example:

"9c4f0a2e-7b3d-4e8a-a1f5-2d6c8b0e4a71"

status
enum<string>
required

ACTIVE fields are rendered and validated on the entities listed in location. DEACTIVATED fields are hidden from new entries while their stored values stay readable. Changed only through the activate and deactivate endpoints.

Available options:
ACTIVE,
DEACTIVATED
Example:

"ACTIVE"

realm
string
required

Realm the field belongs to.

Example:

"6f1d2c3b-4a5e-4f60-9b7c-8d9e0f1a2b3c"

organization
string
required

Organization the field belongs to.

Example:

"0b8e7d6c-5a4f-4e3d-9c2b-1a0f9e8d7c6b"

label
string
required

Human-readable name shown wherever the field is rendered.

Example:

"Centro de custo"

slug
string
required

Stable key of the field: the property name under which its value is stored in the customFields map of transactions, cards, wallets, users and the other entities in location. Unique per organization and immutable after creation.

Example:

"centro-de-custo"

type
enum<string>
required

Value type the field accepts. Immutable after creation.

Available options:
TEXT,
NUMBER,
DATE,
BOOLEAN,
SELECT,
MULTI_SELECT,
CUSTOMER,
FILE,
MULTI_FILE
Example:

"SELECT"

values
object[]
required

Selectable options of a SELECT / MULTI_SELECT field. Normally empty for the other types.

location
enum<string>[]
required

Entities the field is attached to. A value is accepted — and, when required is true, demanded — on each listed entity.


Example: ["TRANSACTION","CARD"]

Available options:
TRANSACTION,
CARD,
WALLET,
CUSTOMER,
TRIP,
TRAVEL_PASSENGER,
USER,
VEHICLE
mask
string
required

Display format of a NUMBER field: NONE (plain number), BRL (Brazilian reais), USD (US dollars) or PERCENT. Empty for the other types.

Example:

"BRL"

required
boolean
required

Whether a value must be provided on every entity listed in location.

Example:

true

description
string
required

Optional help text shown alongside the field. Empty when none was given.

Example:

"Centro de custo responsável pela despesa"

createdBy
string
required

ID of the user who created the field.

Example:

"3e2d1c0b-9a8f-4e7d-8c6b-5a4f3e2d1c0b"

updatedBy
string
required

ID of the user who last changed the field.

Example:

"3e2d1c0b-9a8f-4e7d-8c6b-5a4f3e2d1c0b"

createdAt
string

When the field was created (ISO 8601, UTC).

Example:

"2026-09-02T14:21:05.318Z"

updatedAt
string

When the field was last changed (ISO 8601, UTC).

Example:

"2026-09-18T09:07:44.902Z"