ESC
Type to search…
v2026
This documentation is still being improved and may not fully reflect how the application works. Join the forum to ask questions and share feedback →
Docs Settings Custom Fields

Custom Fields

Add your own fields to master data records and transaction forms — without changing the core schema. Custom fields store any extra information your business needs: HS codes, contract references, equipment serial numbers, or region classifications.

Overview

Concept Description
Definition A field blueprint — name, data type, where it appears, and its behaviour
Placement Which entity forms the field appears on (e.g. Party, Item, Sales Invoice)
Value The actual data entered per record — stored securely inside each entity

Custom field values survive definition changes and deletions. Deleting a definition removes the field from forms but does not erase stored values.

Managing Definitions

Go to Administration → Custom Fields.

The page groups existing fields by entity type. Use the filter dropdown at the top to narrow the list to a specific entity.

Create a Field

  1. Click New Custom Field.
  2. Fill in the dialog:
Field Description
Name Label shown on the form
Data Type The type of input rendered (see below)
Size How wide the field appears in the form grid
Placements Which entity forms this field appears on — one field can cover multiple entities
Display Order Numeric sort position within its placement; lower numbers appear first
Description Optional help text shown below the input
List Options One option per line — only for the List (dropdown) type
  1. Configure behaviour checkboxes (see below).
  2. Click Save.

Edit or Delete

Click the pencil icon to edit, or the trash icon to delete. Deleting a definition removes the field from all forms but leaves stored values untouched in the database.

Reorder Fields

Use the ↑ / ↓ arrows on each card to change display order, or set Display Order directly in the edit dialog. Fields with lower numbers appear first on the form.

Data Types

Type Input rendered Stored as
Single Line Text field (one line) String
Paragraph Text area (multi-line) String
Number Numeric field Decimal
Date Date picker Date
Yes / No Checkbox Boolean
List Dropdown (fixed options you define) String

Field Size

Controls how wide the field appears in the form grid.

Size Mobile Tablet Desktop
Small Full width 4 / 12 columns 3 / 12 columns
Medium (default) Full width 6 / 12 columns 4 / 12 columns
Large Full width Full width 8 / 12 columns

Placements

A single field definition can appear on multiple entity types simultaneously. Available placements:

Master Data — Party, Item, Chart of Accounts, Location, Salesman, Tax Category, Tax Rate, WHT Config, Unit, Item Category, Price Level, Project, Currency, Bill of Materials

Transaction Headers — Sales Invoice, Credit Note, Purchase Invoice, Debit Note, Sales Order, Purchase Order, Delivery Note, Receipt Note, Payment, Receipt, Journal Entry, Contra Entry, Inventory Adjustment, Inventory Transfer, Manufacturing, Stock Opname

Transaction Lines — Sales Invoice Line, Credit Note Line, Purchase Invoice Line, Debit Note Line, Sales Order Line, Purchase Order Line, Delivery Note Line, Receipt Note Line, Inventory Adjustment Line, Manufacturing Line, Stock Opname Line

Behaviour Options

Option Description
Required The form cannot be saved without a value in this field. Mutually exclusive with Locked.
Show on printed documents The field and its value appear on PDFs and printed previews (if the template supports it).
Exclude from copying / cloning When a transaction is duplicated, this field's value is not copied to the clone. Useful for fields like "PO Number" that must be unique per document.
Locked for manual editing Users cannot type into this field. Value can only be set via the Default Value (below) or the API. Mutually exclusive with Required.
Default Value Only shown when Locked is on. The value pre-filled into the field for every new record. Type-appropriate — date picker for Date fields, dropdown for List fields, etc.
Auto-copy to line when item is added Only available when a field is placed on both Item and a matching line type (e.g. Item + Sales Invoice Line). When a user adds an item to a transaction line, the item's custom field value is automatically copied to the matching line field. Useful for HS codes, quality grades, or product classifications.
Active Inactive fields are hidden from all forms. Stored values are preserved.

Field Values in Forms

Custom fields appear in a Custom Fields card at the bottom of master data and document header forms. On line item dialogs, they appear inline alongside standard line fields.

Fields respect the Locked flag — a locked field renders as disabled (greyed out) and cannot be edited directly. If a Default Value is configured, the field is pre-filled automatically when a new record is created.

Fields on Printed Documents

When Show on printed documents is enabled, the field name and value are available in custom document templates via the document.custom_fields variable:

{% for cf in document.custom_fields %}
  <tr>
    <td>{{ cf.name }}</td>
    <td>{{ cf.value }}</td>
  </tr>
{% endfor %}

For single fields by name:

{{ document.custom_fields["HS Code"] }}

Only fields with Show on printed documents enabled and a non-empty value are included.

Advanced: Field ID (GUID)

When creating a new field, expand Advanced to supply a specific GUID as the field ID. This is useful when you have pre-populated custom field data via the API or an import script using a known GUID, and you want to register the definition that matches that data.

Leave blank to let Basis generate a GUID automatically.