# Ideal CSV Structure

This section contains detailed specifications for preparing CSV files for import. We explain the required file structure for five modules: **Owner** (owners.csv), **Property** (objects.csv), **Unit** (units.csv), **Tenant** (tenants.csv), and **Bank Account** (bank\_accounts.csv). Each module corresponds to a different type of data that can be imported into the EverReal system.

Each module has its own CSV file with a specific set of columns and values that must be followed for a successful import. If all guidelines are correctly followed, mappers are not required.

{% hint style="warning" %}
**Important:** All core modules (owner, property, unit, tenant) must be included in every import. Missing any of these files will result in import failure. The `bank_accounts.csv` file is optional. For formatting guidelines, please see our [helper section](https://api-docs.everreal.co/helpers)
{% endhint %}

{% hint style="info" %}
If you would like to use a CSV template, there is one attached at the end of the page. For the most up-to-date version, please contact our support team at **<support@everreal.co>**
{% endhint %}

### Recommended Owner File Structure

The owner module contains information about the owners of the properties and following are the field requirements.

{% hint style="info" %}
`owner_id` must be unique and serves as the external identifier.
{% endhint %}

<table><thead><tr><th width="154">Everreal Field</th><th width="151">CSV Field</th><th width="101">Data Type</th><th width="93">Required</th><th width="74">Default</th><th>Description</th></tr></thead><tbody><tr><td>ownerId</td><td>owner_id</td><td>String</td><td>Yes</td><td>-</td><td>external owner_id reference</td></tr><tr><td>firstName</td><td>first_name</td><td>String</td><td>Yes</td><td>-</td><td>owner's first name</td></tr><tr><td>lastName</td><td>last_name</td><td>String</td><td>Yes</td><td>-</td><td>owner's last name</td></tr><tr><td>email</td><td>email</td><td>Email</td><td>No</td><td>-</td><td>owner's email</td></tr><tr><td>companyName</td><td>company_name</td><td>String</td><td>No</td><td>-</td><td>owner's company name</td></tr><tr><td>street</td><td>street</td><td>String</td><td>No</td><td>-</td><td>owner's street name</td></tr><tr><td>streetNumber</td><td>street_number</td><td>String</td><td>No</td><td>-</td><td>owner's street number</td></tr><tr><td>zipCode</td><td>zip_code</td><td>String</td><td>No</td><td>-</td><td>owner's zipcode</td></tr><tr><td>city</td><td>city</td><td>String</td><td>No</td><td>-</td><td>owner's city</td></tr><tr><td>country</td><td>country</td><td>String</td><td>No</td><td>-</td><td>owner's country</td></tr></tbody></table>

### Recommended Property File Structure

The property module contains information about the properties themselves, such as the address and type. The following are the field requirements.

{% hint style="info" %}
`property_id` must be unique and serves as the external identifier.
{% endhint %}

<table><thead><tr><th>Everreal Field</th><th>CSV Field</th><th width="90">Data Type</th><th width="93">Required</th><th width="123">Default</th><th>Description</th></tr></thead><tbody><tr><td>propertyId</td><td>property_id</td><td>String</td><td>Yes</td><td>-</td><td>external property_id reference</td></tr><tr><td>ownerId</td><td>owner_id</td><td>String</td><td>No</td><td>-</td><td>external owner_id reference</td></tr><tr><td>name</td><td>property_name</td><td>String</td><td>Yes</td><td></td><td>property name</td></tr><tr><td>type</td><td>property_type</td><td>String</td><td>Yes</td><td>BUILDING</td><td>property type</td></tr><tr><td>category</td><td>property_category</td><td>String</td><td>Yes</td><td>RESIDENTIAL_AND_COMMERCIAL</td><td>property category</td></tr><tr><td>street</td><td>street</td><td>String</td><td>Yes</td><td></td><td>property street name</td></tr><tr><td>streetNumber</td><td>street_number</td><td>String</td><td>Yes</td><td></td><td>property street number</td></tr><tr><td>zipCode</td><td>zip_code</td><td>String</td><td>Yes</td><td></td><td>property zipcode</td></tr><tr><td>city</td><td>city</td><td>String</td><td>Yes</td><td></td><td>property city</td></tr><tr><td>country</td><td>country</td><td>String</td><td>Yes</td><td></td><td>property country</td></tr><tr><td>noOfFloors</td><td>number_of_floors</td><td>Decimal</td><td>No</td><td>0</td><td>number of floors for the property</td></tr><tr><td>yearBuilt</td><td>year_built</td><td>Number</td><td>No</td><td></td><td>year of build for the property</td></tr><tr><td>ownershipType</td><td>ownership_type</td><td>String</td><td>Yes</td><td>INDIVIDUAL</td><td>propery ownership type</td></tr></tbody></table>

### Recommended Unit File Structure

The unit module contains information about the individual units within a property, such as number, size and rent. Following are the field requirements.

{% hint style="info" %}
`unit_id` must be unique and serves as the external identifier.
{% endhint %}

<table><thead><tr><th width="137">Everreal Field</th><th width="137">CSV Field</th><th width="98">Data Type</th><th width="100">Required</th><th>Default Value</th><th>Description</th></tr></thead><tbody><tr><td>unitId</td><td>unit_id</td><td>String</td><td>Yes</td><td>-</td><td>external unit_id reference</td></tr><tr><td>propertyId</td><td>property_id</td><td>String</td><td>Yes</td><td>-</td><td>external property_id reference</td></tr><tr><td>ownerId</td><td>owner_id</td><td>String</td><td>Yes</td><td>-</td><td>external owner_id reference</td></tr><tr><td>name</td><td>unit_name</td><td>String</td><td>Yes</td><td></td><td>unit name</td></tr><tr><td>category</td><td>category</td><td>String</td><td>Yes</td><td>RESIDENTIAL</td><td>unit category</td></tr><tr><td>type</td><td>type</td><td>String</td><td>Yes</td><td>APARTMENT</td><td>unit type</td></tr><tr><td>subType</td><td>sub_type</td><td>String</td><td>Yes</td><td>NO_INFORMATION</td><td>unit subtype</td></tr><tr><td>surfaceCommercial</td><td>surface_commercial</td><td>Decimal</td><td>No</td><td>0</td><td>surface  if unit type is commercial </td></tr><tr><td>livingSurfaceResidential</td><td>living_surface_residential</td><td>Decimal</td><td>No</td><td>0</td><td>surface  if unit type is residential </td></tr><tr><td>rooms</td><td>rooms</td><td>Decimal</td><td>Yes</td><td>0</td><td>no of rooms</td></tr><tr><td>bathrooms</td><td>bathrooms</td><td>Number</td><td>Yes</td><td>0</td><td>no of bathrooms</td></tr><tr><td>bedrooms</td><td>bedrooms</td><td>Decimal</td><td>Yes</td><td>0</td><td>no of bedrooms</td></tr><tr><td>hasMainStorage</td><td>has_main_storage</td><td>Boolean</td><td>Yes</td><td>FALSE</td><td>does it has main storage</td></tr><tr><td>floorNo</td><td>floor_number</td><td>Decimal</td><td>Yes</td><td>0</td><td>floor number of unit</td></tr><tr><td>currentRent</td><td>current_rent</td><td>Decimal</td><td>No</td><td></td><td>current rent of unit</td></tr><tr><td>hasParking</td><td>has_parking</td><td>Boolean</td><td>Yes</td><td>FALSE</td><td>parking available for this unit</td></tr><tr><td>energyEfficiencyClass</td><td>energy_efficiency_class</td><td>String</td><td>No</td><td></td><td>energy efficiency<br>class on energy certificate(Possible values can be found under <a href="https://api-docs.everreal.co/endpoints/units/units-mutation#enum-table-maps">enum mapping </a>for ENERGY_EFFICIENCY_CLASS)</td></tr><tr><td>buildingEnergyRatingType</td><td>building_energy_rating_type</td><td>String</td><td>No</td><td></td><td>building energy rating type on energy certificate(Possible values can be found under <a href="https://api-docs.everreal.co/endpoints/units/units-mutation#enum-table-maps">enum mapping </a>for BUILDING_ENERGY_RATING_TYPE)</td></tr><tr><td>energyCertificateCreationDate</td><td>energy_certificate_creation_date</td><td>String</td><td>No</td><td></td><td>energy certificate creation date(Possible values can be found under <a href="https://api-docs.everreal.co/endpoints/units/units-mutation#enum-table-maps">enum mapping </a>for ENERGY_CERTIFICATE_CREATION_DATE)</td></tr><tr><td>energyPerformanceCertificateAvailability</td><td>energy_performance_certificate_availability</td><td>String</td><td>No</td><td></td><td>is energy performance certificate available(Possible values can be found under <a href="https://api-docs.everreal.co/endpoints/units/units-mutation#enum-table-maps">enum mapping </a>for ENERGY_SOURCE_TYPE)</td></tr><tr><td>mainEnergySource</td><td>main_energy_source</td><td>String</td><td>No</td><td></td><td>main energy source according to energy certificate(possible values can be found in <a href="https://api-docs.everreal.co/endpoints/units/units-mutation">unit mutation</a> under ENERGY_SOURCE_TYPE)</td></tr><tr><td>heatingType</td><td>heating_type</td><td>String</td><td>No</td><td></td><td>heating type according to energy certificate(possible values can be found in <a href="https://api-docs.everreal.co/endpoints/units/units-mutation">unit mutation</a> under HEATING_TYPE)</td></tr><tr><td>condition</td><td>condition</td><td>String</td><td>No</td><td></td><td>condition of unit(possible values can be found in <a href="https://api-docs.everreal.co/endpoints/units/units-mutation#enum-table-maps">enum mapping </a>under AMENITIES_CONDITION)</td></tr><tr><td>qualityOfAmenities</td><td>quality_of_amenities</td><td>String</td><td>No</td><td></td><td>quality of amenities in unit(possible values can be found in <a href="https://api-docs.everreal.co/endpoints/units/units-mutation">unit mutation</a> under QUALITY_OF_AMENITIES)</td></tr><tr><td>amenitiesIncluded</td><td>amenities_included</td><td>String</td><td>No</td><td></td><td>amenities included in unit (comma separated and possible values can be found in <a href="https://api-docs.everreal.co/endpoints/units/units-mutation">unit mutation</a> under AMENITIES_INCLUDED)</td></tr></tbody></table>

### Recommended Tenant File Structure

The tenants module contains information about the tenants who occupy the units, such as name, lease term. Following are the field requirements.

{% hint style="info" %}
`tenant_id` must be unique and serves as the external identifier.
{% endhint %}

<table><thead><tr><th width="151">Everreal Field</th><th width="130">CSV Field</th><th width="113">Data Type</th><th width="93">Required</th><th width="130">Default</th><th>Description</th></tr></thead><tbody><tr><td>tenantId</td><td>tenant_id</td><td>String</td><td>Yes</td><td>-</td><td>external tenant_id reference</td></tr><tr><td>unitId</td><td>unit_id</td><td>String</td><td>Yes</td><td>-</td><td>external unit_id reference</td></tr><tr><td>firstName</td><td>first_name</td><td>String</td><td>Yes</td><td>-</td><td>tenant's first name</td></tr><tr><td>lastName</td><td>last_name</td><td>String</td><td>Yes</td><td>-</td><td>tenant's last name</td></tr><tr><td>email</td><td>email</td><td>Email</td><td>No</td><td>-</td><td>tenant's email</td></tr><tr><td>basicRent</td><td>basic_rent</td><td>Decimal</td><td>No</td><td>-</td><td>contract's basic rent</td></tr><tr><td>utilityCosts</td><td>utility_costs</td><td>Decimal</td><td>No</td><td>-</td><td>contract's utility costs</td></tr><tr><td>heatingCosts</td><td>heating_costs</td><td>Decimal</td><td>No</td><td>-</td><td>contract's heating cost</td></tr><tr><td>totalRent</td><td>total_rent</td><td>Decimal</td><td>Yes</td><td>-</td><td>contract's total rent</td></tr><tr><td>deposit</td><td>deposit</td><td>Decimal</td><td>Yes</td><td>-</td><td>contract's deposit</td></tr><tr><td>contractStartDate</td><td>contract_start_date</td><td>String</td><td>Yes</td><td>-</td><td>contract start date</td></tr><tr><td>contractEndDate</td><td>contract_end_date</td><td>String</td><td>No</td><td>-</td><td>contract end date</td></tr></tbody></table>

### Recommended Bank Account File Structure

The bank accounts module contains information about the bank accounts associated with owners, properties, or units. This file is **optional** and only required if you want to import bank account details into EverReal.

Each bank account must be linked to at least one of the following IDs: `owner_id`, `property_id`, or `unit_id`. You can provide multiple IDs to associate an account with more than one entity.

<table><thead><tr><th width="151.3828125">EverReal Field	</th><th width="129.953125">CSV Field	</th><th width="113.46875">Data Type	</th><th width="93.19140625">Required</th><th width="130">Default</th><th>Descriptions</th></tr></thead><tbody><tr><td>accountId</td><td>account_id</td><td>String</td><td>Yes</td><td></td><td>Unique identifier for the bank account</td></tr><tr><td>accountName</td><td>account_name</td><td>String</td><td>No</td><td></td><td>Name of the account</td></tr><tr><td>accountIban</td><td>account_iban</td><td>String</td><td>Yes</td><td></td><td>IBAN number of the account</td></tr><tr><td>accountBic</td><td>account_bic</td><td>String</td><td>Yes</td><td></td><td>BIC code of the account</td></tr><tr><td>accountBankName</td><td>account_bank_name</td><td>String</td><td>No</td><td></td><td>Name of the bank</td></tr><tr><td>accountType</td><td>account_type</td><td>String</td><td>No</td><td></td><td></td></tr><tr><td>accountHolder</td><td>account_holder</td><td>String</td><td>No</td><td></td><td>Name of the account holder</td></tr><tr><td>accountReferenceNumber</td><td>account_reference_number</td><td>String</td><td>No</td><td></td><td>Reference number associated with the account</td></tr><tr><td>ownerId</td><td>owner_id</td><td>String</td><td>No*</td><td></td><td>External <code>owner_id</code> reference</td></tr><tr><td>propertyId</td><td>property_id</td><td>String</td><td>No*</td><td></td><td>External <code>property_id</code> reference</td></tr><tr><td>unitId</td><td>unit_id</td><td>String</td><td>No*</td><td></td><td>External <code>unit_id</code> reference</td></tr></tbody></table>

{% hint style="info" %}
\* At least **one** of `owner_id`, `property_id`, or `unit_id` must be provided per row to establish a valid link.
{% endhint %}

### Sample Dataset for imports

This section contains sample files that can be used as a reference or can be used to import data to EverReal. The sample files are in a zip file that contains four CSV files:&#x20;

* `owners.csv` (Owner data)
* `objects.csv` (Property data)
* `units.csv` (Unit data)
* `tenants.csv` (Tenant data)
* `bank_accounts.csv` (Bank Account data, optional)

Each CSV file has a header row that specifies the column names. The data in each file is related to the data in the other files by using unique identifiers. For example, the `tenants.csv` has a column called unit\_id that is used to link the tenants to the unit.&#x20;

{% hint style="info" %}
Please ensure that file names and CSV headers remain unchanged when modifying the data. Otherwise, the import will fail. You can use these sample files as a template to create your own data and import it to EverReal.
{% endhint %}

{% hint style="warning" %}
Note: All CSV files must be saved in UTF-8 encoding.
{% endhint %}

{% file src="<https://1594188794-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MgL3i0-8YP9K1HyrHy8%2Fuploads%2FU5XiTqGFyKTy5BgAaD8s%2FImportSample.zip?alt=media&token=e318cf5b-4b33-488d-b05e-8c1a307c9a1a>" %}
