# Field/Record Types

## Field Types

Field types defined how a field's data is stored. Field types are used in the default record type and user created custom records.

{% hint style="info" %}
Use the proper formatting for the field type. By default, the SDK will not valid check most fields. Best practices would to properly format the data for the field. Other products, offered by Keeper, will retrieve data from record based on the field type.
{% endhint %}

### accountNumber

A string value. There is no validation of the value.

### address

A dictionary value containing:

* `street1` - Street address 1
* `street2` - Street address 2
* `city` - City
* `state` - State
* `zip` - Postal code
* country - [ISO3166 Alpha-2 country code](https://www.iban.com/country-codes)

None of the keys are required.

Example:

```
{"street1": "100 Main Street", "city": "Town", "state": "RI", "zip": "55555",
    "country": "US"}
```

### bankAccount

A dictionary value containing:

* `accountType` - Checking | Savings | Other
* `otherType` - Description of the other account type
* `routingNumber` - The bank routing number
* `accountNumber` - The account number

None of the keys are required.

Example:

```
{"accountType": "Checking", "routingNumber": "123456", "accountNumber": "55555555"}
```

### birthDate

A epoch milliseconds value. Depending on method of creation, ie using a helper modules, an ISO8601 value may be used. The ISO8601 value will be converted to an epoch millisecond value.

### cardRef

An array of payment card record uids.

Examples:

```
["OlLZ6JLjnyMOS3CiIPHBjw", "XJ2VISBJ3JAeCwU_YGAXYg"]
```

### date

A epoch milliseconds value. Depending on method of creation, ie using a helper modules, an ISO8601 value may be used. The ISO8601 value will be converted to an epoch millisecond value.

### email

A string value, normally for a user's email address. There is no validation of the value.

### expirationDate

A epoch milliseconds value. Depending on method of creation, ie using a helper modules, an ISO8601 value may be used. The ISO8601 value will be converted to an epoch millisecond value.

### fileRef

An array of file UIDs. When a file is attached to a record, that files UID will appear in this array.

### host

A dictionary value containing:

* `hostName` - Hostname or IP
* `port` - Remote port

None of the keys are required.

Example:

```
{"hostName": "localhost", "port": "22"}
```

A dictionary value containing:

* `publicKey` - Public key
* `privateKey` - Private key

None of the keys are required.

Example:

```
{"publicKey": "PUBLIC KEY", "privateKey": "PRIVATE KEY"}
```

### licenseNumber

A string value. There is no validation of the value.

### login

A string value, normally the user's login. There is no validation of the value. Many Keeper related services will look for a field of this type for the login value.

### multiline

A string value, normally for text that has line feed. There is no validation of the value.

### name

A dictionary value containing:

* `first` - Person's first name
* `middle` - Person's middle name
* `last` - Person's last name

None of the keys are required.

Example:

```
{"first": "John", "middle": "Unknown", "last": "Smith"}
```

### note

A string value that allow for multiline. The value is masked. There is no validation of the value.

### otp

One time password URL for TOTP.

### oneTimeCode

One time code URL for TOTP.

### password

A string value. There is no validation of the value. Many Keeper related services will look for a field of this type for the password value.

### paymentCard

A dictionary value containing:

* `cardNumber` - A payment card number
* `cardExpirationDate` -  MM/YYYY expiration.
* `cardSecurityCode` - The security code

Example:

```
{"cardNumber": "5555 5555 5555 5555", "cardExpirationDate": "01/2023",
    "cardSecurityCode": "123"}
```

### phone

An array of phone dictionaries. Each phone dictionary contains the following key/values:

* `region` - The country code number
* `number` - Normal phone number
* `ext` - Extension
* `type` - Mobile | Home | Work

None of the keys are required.

Example:

```
[
    {"region": "+1", "number": "555-555-5555", "ext": "1234", "type": "Work"},
    {"number": "555-555-6666", "type": "Mobile"}
]
```

### pinCode

A string value. There is no validation of the value.

### secret

A string value. This type of field is normally masked. There is no validation of the value.

### securityQuestion

A dictionary value containing:

* `question` - The security question
* `answer` - The answer to the security question

Example:

```
{"question": "What Number?", "answer": "42"}
```

### text

A string value. There is no validation of the value.

### url

A string value, normally a web URL. There is no validation of the value.

## Default Record Types

The following are the default record types provided by Keeper and the fields within the record type. Record types contain a collection of field types for the standard fields. Custom fields are not defined by a record type.

{% hint style="info" %}
All the default record types  include the `fileRef` field. This field contains files UID and photos UID attached to a record. Check the documentation for the SDK being used on how to download a file.\
\
Currently file attachment via the SDK is limited.
{% endhint %}

### address (Address)

![](/files/RGRKN4K7mTZjnuNwhXCD)

| Field Type | UI Fields                                                                                                     |
| ---------- | ------------------------------------------------------------------------------------------------------------- |
| address    | <p>Street Address Line 1<br>Street Address Line 2<br>City<br>State/Province<br>Zip/Postal Code<br>Country</p> |

### bankAccount (Bank Account)

![](/files/eq2FzID0Rk5g7KMaNPAl)

| Field Type                             | UI Fields                                                             |
| -------------------------------------- | --------------------------------------------------------------------- |
| bankAccount                            | <p>Account Type<br>Other Type<br>Account Number<br>Routing Number</p> |
| name                                   | <p>First Name<br>Middle Name<br>Last Name</p>                         |
| login                                  | Login                                                                 |
| password                               | Password                                                              |
| url                                    | Website Address                                                       |
| cardRef (value is bankCard record uid) | Payment Card                                                          |

### bankCard (Payment Card)

![](/files/f6zsxvPydp4cPpxwPWeW)

| Field Type                               | UI Fields                                                                  |
| ---------------------------------------- | -------------------------------------------------------------------------- |
| paymentCard                              | <p>Card Number<br>Expiration Month<br>Expiration Year<br>Security Code</p> |
| text                                     | Cardholder Name                                                            |
| pinCode                                  | Pin Code                                                                   |
| addressRef (value is address record uid) | Address (see address record type for UI)                                   |

### birthCertificate (Birth Certificate)

![](/files/5Qj5elYkxFBV1RNIk1Wr)

* name - First Name, Middle Name, Last Name
* birthDate - Date of Birth

| Field Type | UI Fields                                     |
| ---------- | --------------------------------------------- |
| name       | <p>First Name<br>Middle Name<br>Last Name</p> |
| birthDate  | Date of Birth                                 |

### contact (Contact)

![](/files/bjkvKN7OXg2jl5CHlsT6)

| Field Type                               | UI Fields                                      |
| ---------------------------------------- | ---------------------------------------------- |
| name                                     | <p>First Name<br>Middle Name<br>Last Name</p>  |
| text                                     | Company                                        |
| email                                    | Email                                          |
| phone                                    | <p>Country<br>Phone Number<br>Ext.<br>Type</p> |
| addressRef (value is address record uid) | Address (see address record type for UI)       |

### databaseCredentials (Database)

![](/files/4hhDXFhXSIDkJBtvSKL9)

| Field Type | UI Fields                             |
| ---------- | ------------------------------------- |
| text       | Type                                  |
| host       | <p>Hostname or IP Address<br>Port</p> |
| login      | Login                                 |
| password   | Password                              |

### driverLicense (Driver's License)

![](/files/JocVVNHzXKeWWPhEgCav)

| Field Type                               | UI Fields                                     |
| ---------------------------------------- | --------------------------------------------- |
| accountNumber                            | Driver's License Number                       |
| name                                     | <p>First Name<br>Middle Name<br>Last Name</p> |
| birthDate                                | Date of Birth                                 |
| addressRef (value is address record uid) | Address (see address record type for UI)      |
| expirationDate                           | Expiration Date                               |

### encryptedNotes (Secure Note)

![](/files/bGEVVV4m5cWFSuKULw96)

| Field Type | UI Fields    |
| ---------- | ------------ |
| note       | Secured Note |
| date       | Date         |

### file (File Attachment)

This record is created when a file is attached to another record. The record UID will  be attached to the record via the `fieldRef` field type.

Currently attaching files to records across all SDK is not finished. Content to be added.

### healthInsurance (Health Insurance)

![](/files/0XGbXQknqvTVXCyK8qoQ)

|               |                                               |
| ------------- | --------------------------------------------- |
| accountNumber | Account Number                                |
| name          | <p>First Name<br>Middle Name<br>Last Name</p> |
| login         | Login                                         |
| password      | Password                                      |
| url           | Website Address                               |

### login (Login)

![](/files/kPGTTGs8SUNtatL8e3s0)

| Field Type | UI Fields       |
| ---------- | --------------- |
| login      | Login           |
| password   | Password        |
| url        | Website Address |

### membership (Membership)

![](/files/HE30HCmwpwpTnkS6wSwt)

| Field Type    | UI Fields                                     |
| ------------- | --------------------------------------------- |
| accountNumber | Account Number                                |
| name          | <p>First Name<br>Middle Name<br>Last Name</p> |
| password      | Password                                      |

### passport (Passport)

![](/files/03vNEgLzAt0p0bbZbLXr)

| Field Type                               | UI Fields                                     |
| ---------------------------------------- | --------------------------------------------- |
| accountNumber                            | Passport Number                               |
| name                                     | <p>First Name<br>Middle Name<br>Last Name</p> |
| birthDate                                | Date of Birth                                 |
| addressRef (value is address record uid) | Address (see address record type for UI       |
| expirationDate                           | Expiration Date                               |
| date                                     | Date Issued                                   |
| password                                 | Password                                      |

### photo (Photo)

This record is created when a photo is attached to another record. The record UID will  be attached to the record via the `fieldRef` field type.

Currently attaching photos to records across all SDK is not finished. Content to be added.

### serverCredentials (Server)

![](/files/25tSbSerJNWGNp88Wxyx)

| Field Type | UI Fields                             |
| ---------- | ------------------------------------- |
| host       | <p>Hostname or IP Address<br>Port</p> |
| login      | Login                                 |
| password   | Password                              |

### softwareLicense (Software License)

![](/files/fP5iNDdBLFdpuC3yd4hz)

| Field Type     | UI Fields            |
| -------------- | -------------------- |
| licenseNumber  | Software License Key |
| expirationDate | Expiration Date      |
| date           | Date Active          |

### ssnCard (Identity Card)

![](/files/J1SgXeGuKEvtRmxF9APD)

| Field Type    | UI Fields                                     |
| ------------- | --------------------------------------------- |
| accountNumber | Identity Number                               |
| name          | <p>First Name<br>Middle Name<br>Last Name</p> |
|               |                                               |

### sshKeys (SSH Key)

![](/files/BcpLfhiV7EGz20k4a05L)

| Field Type | UI Fields                             |
| ---------- | ------------------------------------- |
| login      | Login                                 |
| keyPair    | <p>Public Key<br>Private Key</p>      |
| password   | Passphrase                            |
| host       | <p>Hostname or IP Address<br>Port</p> |

## Custom Record Types

Custom record types can be used with the Secrets Manager.

Keeper Commander can be used to get the schema for the custom record type.

```
My Vault> rti --format json -lr "My Custom" --output my_record_type.json
[
  {
    "recordTypeId": 18,
    "content": "{\"$id\":\"My Custom\",\"categories\":[\"login\"],
        \"description\":\"SSH key template\",\"fields\":
           [{\"$ref\":\"login\"},
            {\"$ref\":\"keyPair\"},
            {\"$ref\":\"password\",\"label\":\"passphrase\"},
            {\"$ref\":\"host\"},
            {\"$ref\":\"fileRef\"}]}"
  }
]
```

Based on the SDK being used, the JSON may be imported allowing the custom  record to be used with any helper tools.&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.keeper.io/en/keeperpam/secrets-manager/about/field-record-types.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
