Enterprise Solutions

User Defined Fields

Enterprise SOAP API > 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>

Core Director Specific Differences to User Defined Fields

These are some difference to User Defined Field behaviors that are specific to the Core Director provider.

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

A: 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>

Q: Core Director: Would these fields be supported by the CustInq/AcctInq services as well?

A: 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?
Have a how-to question? Seeing a weird error? Get help on StackOverflow.
Register for the Digital Toolkit Meetup where we answer technical Q&A from the audience.
Last updated Thu Jun 29 2023