Developer Programs

Learn

Docs
jXchange REST-Legacy Migration announced. Deadline for migration is July 31, 2026.

User Defined Fields

Tutorials > Defined Fields - Institution and User > User Defined Fields

User Defined Fields are specific data elements within the core that allow a bank, also known as user, to define for their specific use cases. There are 35 User Defined Fields available on the core for each application type, which includes loan accounts, deposit accounts, etc. and at the customer level.

APIs That Access User Defined Fields

The following services can be used to retrieve, add, and modify user defined fields:

Determining Available User Defined Fields

For example, a consumer is interested in accessing the IN15N1 field for the loan application type. To add or modify this User Defined Field, the consumer will need to know the exact Field Description of the field as defined on the core. If the Field Description is unknown, the consumer can make a call to the ParmValSrch service passing in the value <ParmName> = UserDefCode to get a list of all User Defined Codes setup on the bank core.

Below is an example of a ParmValSrch response performed against our DMZ test environment. If a consumer searches for IN15N1 withing the response they will find several UserDefCode records that match the field name IN15N1. One for Time Deposit accounts (CD), one for Deposit accounts (DD), one for Non-JHA accounts (JH), also known as track accounts, one for Loan accounts (LN), and one for Safe Deposit accounts (SD). Each of these has a ParmValCode associated with it, shown above in parenthesis. Since the consumer is interested in loans, it makes sense to map to the (LN) one: (shown)

Example ParmValSrch Response
<ParmName>UserDefCode</ParmName>
<ParmValSrchRecArray>
  <ParmValSrchRec>
    <ParmValCode>LN</ParmValCode>
    <ParmValDesc>Loans</ParmValDesc>
    <ParmValInfoArray>
      <ParmValInfo>
        <ParmValDetail>IN15N1</ParmValDetail>
        <ParmValTxt>Field Name</ParmValTxt>
        <Ver_1>
        </Ver_1>
      </ParmValInfo>
      <ParmValInfo>
        <ParmValDetail>number</ParmValDetail>
        <ParmValTxt>Field Type</ParmValTxt>
        <Ver_1>
        </Ver_1>
      </ParmValInfo>
      <ParmValInfo>
        <ParmValDetail>15</ParmValDetail>
        <ParmValTxt>Field Length</ParmValTxt>
        <Ver_1>
        </Ver_1>
      </ParmValInfo>
      <ParmValInfo>
        <ParmValDetail>26</ParmValDetail>
        <ParmValTxt>Field Order</ParmValTxt>
        <Ver_1>
        </Ver_1>
      </ParmValInfo>
      <ParmValInfo>
        <ParmValDetail>Amount Impaired</ParmValDetail>
        <ParmValTxt>Field Description</ParmValTxt>
        <Ver_1>
        </Ver_1>
      </ParmValInfo>
      <ParmValInfo>
        <ParmValDetail>N</ParmValDetail>
        <ParmValTxt>Field New Acct Entry</ParmValTxt>
        <Ver_1>
        </Ver_1>
      </ParmValInfo>
      <ParmValInfo>
        <ParmValDetail>1</ParmValDetail>
        <ParmValTxt>Field Number of Decimals</ParmValTxt>
        <Ver_1>
        </Ver_1>
      </ParmValInfo>
      <ParmValInfo>
        <ParmValDetail>Y</ParmValDetail>
        <ParmValTxt>Field Edit Code</ParmValTxt>
        <Ver_1>
        </Ver_1>
      </ParmValInfo>
      <ParmValInfo>
        <ParmValTxt>Field Default Value</ParmValTxt>
        <Ver_1>
        </Ver_1>
      </ParmValInfo>
    </ParmValInfoArray>
    <Ver_1>
    </Ver_1>
  </ParmValSrchRec>
</ParmValSrchRecArray>

Updating A User Defined Field

When a consumer calls AcctAdd/AcctMod/CustAdd/CustMod to update a User Defined Field, they would specify the User Defined Field value for IN15N1 passing in the EXACT Field Description for UserDefTxt and the desired value for UserDefCode.

The below example shows the User Defined Field with the Field Description of Model Home being updated to a value of Y.

Example UserDefArray Usage
 <!-- UserDefInfoArray goes here  -->
          <UserDefInfoArray>
            <UserDefInfo>
              <UserDefTxt>Model Home</UserDefTxt>
              <UserDefCode>Y</UserDefCode>
            </UserDefInfo>
          </UserDefInfoArray>

FAQ

General

I’m trying to update a UserDef field on a non-JHA account type that I believe the UserDef field is a date type, but I’m getting the error: “The value entered is longer than the field length.” What could be causing this?

For non-JHA standard account types, there are fields that function similarly to user-defined fields but are not exactly the same. These fields use the same update method (UserDefCode and UserDefTxt) and are only visible through the AcctInq API response—they are not consumer-facing. The list of available fields can only be provided by the bank.

Regarding the error: Date-type fields for these non-JHA user-defined-like fields only accept dates without special characters. For example, instead of 01/01/25, you should enter 010125.


SilverLake

A client has requested that we update the CFMAST field CFSIC8 (Special Information Code 8) in both the Customer Add and Customer Update services. However, we are unable to locate this field in the jXchange documentation for SilverLake mapping. Is it possible to update this field or assign a value to it when creating a CIF record via a jXchange service?

Yes, Special Information Codes (commonly referred to as SIC Codes) can be updated in a similar manner to user-defined fields. The key difference lies in where you obtain the description required for the request. To update these fields:

  • Pass the ParmValDesc in the UserDefTxt element to specify the description.
  • Provide the desired value for the field in the UserDefCode element.

This approach ensures the correct association between the SIC Code and its corresponding value during the Customer Add or Update process.


CIF 20/20

TBD


Core Director

Are there any restrictions to the User Defined fields in terms of field length, etc?

Yes, the bank creates the User Defined Fields with specific data type and length. The specifics on these bank defined fields can be accessed via the SvcDictSrch API. For example on the SvcDictSrch request for depost accounts User Defined Fields that the bank has defined, the following would be sent on the request:

Example SvcDictSrch Request
<SvcDictName>AcctAdd</SvcDictName>
  <SvcDictType>RQ</SvcDictType>
  <ElemName />
  <SvcDictFilterArray>
    <SvcDictFilterInfo>
      <SvcDictFilterCode>AcctType</SvcDictFilterCode>
      <SvcDictFilterVal>10</SvcDictFilterVal>
      <Ver_1 />
    </SvcDictFilterInfo>
    <SvcDictFilterInfo>
      <SvcDictFilterCode>BankDefined</SvcDictFilterCode>
      <SvcDictFilterVal>Y</SvcDictFilterVal>
      <Ver_1 />
    </SvcDictFilterInfo>
  </SvcDictFilterArray>

This will result in the SvcDictSrch response including the specifics on the bank defined fields included data type and length, for example:

Example SvcDictSrch Response
<SvcDictInfoRec>
  <ElemName>817</ElemName>
  <ElemReq>false</ElemReq>
  <ElemDft>0</ElemDft>
  <ElemLowRngVal>0</ElemLowRngVal>
  <ElemHighRngVal>999.999</ElemHighRngVal>
  <x_SvcPrvdFldInfo>
    <SvcPrvdFldDesc>817. Market Price:</SvcPrvdFldDesc>
    <SvcPrvdFldType>Dec</SvcPrvdFldType>
    <SvcPrvdFldLen>6</SvcPrvdFldLen>
    <SvcPrvdFldDecPosit>3</SvcPrvdFldDecPosit>
  </x_SvcPrvdFldInfo>
  <SvcPrvdInfo xsi:nil="true" />
  <Ver_1 />
</SvcDictInfoRec>
<SvcDictInfoRec>
  <ElemName>818</ElemName>
  <ElemReq>false</ElemReq>
  <ElemDft>0</ElemDft>
  <ElemLowRngVal>0</ElemLowRngVal>
  <ElemHighRngVal>999999999</ElemHighRngVal>
  <x_SvcPrvdFldInfo>
    <SvcPrvdFldDesc>818. Market Value:</SvcPrvdFldDesc>
    <SvcPrvdFldType>Int</SvcPrvdFldType>
    <SvcPrvdFldLen>9</SvcPrvdFldLen>
  </x_SvcPrvdFldInfo>
  <SvcPrvdInfo xsi:nil="true" />
  <Ver_1 />
</SvcDictInfoRec>

Would these fields be supported by the CustInq/AcctInq services as well?

There are parameters on the Core Director host that can be enabled on the individual field(s) that will allow the fields to be returned in the UserDefInfoArray. This is not restricted to just bank defined fields, but can be enabled for any field on the Customer Record to be returned via CustInq or any Account Record to be returned via AcctInq.


Have a Question?

Did this page help you?

Last updated Thu Jan 15 2026