> ## Documentation Index
> Fetch the complete documentation index at: https://docs.camo.ag/llms.txt
> Use this file to discover all available pages before exploring further.

# Mortgages (CSV)

> For customers with this module, we support a bulk mortgage import via CSV. The import expects a row per mortgage parcel.

> [!NOTE]
>
> Requires CamoAg Enterprise subscription and Mortgage module add-on to access this feature.

#### **Requirements: Read First**

**Step 1**

Column names must appear exactly as written below (lowercase, with underscores). Columns you don't use can be left blank or removed.

**Step 2**

Every row must include the four **required** values: **county\_geoid**, **recording\_date**, **assessor\_parcel\_number**, and at least one recorded document number (**recorded\_document\_number**, **recorded\_document\_book\_number**, or **recorded\_document\_page\_number**).

**Step 3**

One row per parcel. A mortgage that covers several parcels is written as several rows with the same county, recording date, and document number(s). They're combined into a single mortgage during the import.

**Step 4**

Dates use **YYYY-MM-DD** format (for example, 2024-03-15).

#### **Mortgage Import Template**

> [card] [Download the mortgage import template](https://docs.camo.ag/assets/camoag-mortgage-import-template.csv)
>
> A CSV with the header row for every supported column. Fill in the columns you have and leave the rest blank.

#### **How rows become mortgages**

CamoAg identifies each mortgage by its **county**, **recording year**, and **recorded document number(s)**. Rows that share those values are grouped into one mortgage:

* **Mortgage** fields are read from the first row in the group.
* **Parcel** fields are read from every row, so each row adds a parcel to the mortgage.
* **Borrower** and **Lender** fields are read from every row, and duplicate names are merged.

Re-importing a row with the same county, recording year, and document number(s) updates the existing mortgage rather than creating a duplicate.

#### **Value formats**

| Type | Format | Examples |
| - | - | - |
| String | Any text | First State Bank |
| Number | Digits with an optional decimal point, no `$` or commas | 250000, 4.25 |
| Integer | Whole number | 360 |
| Date | YYYY-MM-DD | 2024-03-15 |
| Boolean | true / false (also accepts yes / no, y / n, 1 / 0) | true |
| Choice | One of the listed values, lowercase, exactly as written | fixed, conventional, months |

The file may be comma (`,`) or pipe (`|`) delimited.

***

## Required fields

> [!WARNING]
>
> Rows missing any of these values are rejected. The other rows in the file still import.

* **county\_geoid** (String) - The 5-digit county FIPS code (2-digit state code + 3-digit county code). Keep any leading zero.
  * Examples: 17037 (DeKalb County, IL), 01001 (Autauga County, AL)
* **recording\_date** (Date) - Date the mortgage was recorded with the county
  * Examples: 2024-03-15
* **assessor\_parcel\_number** (String) - The parcel number (APN / PIN) the mortgage is recorded against. Used to match the mortgage to a parcel on the map.
  * Examples: 123-44-55-66-777, 0912345001
* **recorded\_document\_number** (String) **OR** **recorded\_document\_book\_number** (String) **OR** **recorded\_document\_page\_number** (String) - At least one is required; provide all that appear on the recorded document.
  * Examples: document number 2024R-01202; book 345, page 3

***

## Mortgage fields

These describe the loan itself. For a multi-parcel mortgage, they only need to be filled in on the first row.

#### ***Required***

* **county\_geoid**, **recording\_date**, and a recorded document number (see [Required fields](#required-fields))

#### ***Optional: common***

* **amount** (Number) - Loan amount
  * Examples: 250000
* **date** (Date) - Date the mortgage was signed
  * Examples: 2024-03-01
* **due\_date** (Date) - Maturity date of the loan
  * Examples: 2054-03-01
* **interest\_rate** (Number) - Interest rate, as a percent
  * Examples: 4.25
* **term** (Integer) - Length of the loan, in the unit given by **camo\_term\_code**
  * Examples: 360
* **camo\_term\_code** (Choice) - Unit for **term**. One of: `days`, `months`, `year`
* **camo\_loan\_type\_code** (Choice) - Loan type. See [Loan type values](#loan-type-values) below
  * Examples: conventional, farmers\_home\_administration, usda
* **camo\_interest\_rate\_type\_code** (Choice) - Interest rate type. One of: `fixed`, `adjustable`, `variable_rate`, `balloon`, `unknown`
* **active** (Boolean) - Whether the mortgage is still active. Defaults to **true**
* **should\_delete** (Boolean) - Set to **true** to remove a previously imported mortgage that matches this row's county, recording year, and document number(s). Defaults to **false**

> [accordion] Recording and document details
>
> * **document\_type\_code** (String) - Recorded document type code from your source
> * **type\_code** (String) - Mortgage type code from your source
> * **purpose\_code** (String) - Loan purpose code from your source
> * **primary\_category\_code** (String) - Primary category code from your source
> * **sequence\_number** (Integer) - Position of this mortgage when several are recorded against the same property (for example, 1 for a first mortgage, 2 for a second)
> * **subordinate\_type\_code** (String) - Subordinate loan type code
> * **multi\_or\_split\_parcel\_code** (String) - Code indicating the mortgage covers multiple or split parcels
> * **borrower\_etal\_code** (String) - Code indicating additional borrowers beyond those listed
> * **subject\_transaction\_document\_number** (String) - Document number of the related sale (deed) transaction
> * **subject\_transaction\_document\_book\_number** (String) - Book number of the related sale transaction
> * **subject\_transaction\_document\_page\_number** (String) - Page number of the related sale transaction
> * **subject\_transaction\_recording\_date** (Date) - Recording date of the related sale transaction
> * **transfer\_info\_purchase\_downpayment** (Integer) - Down payment on the related purchase
> * **transfer\_info\_purchase\_loan\_to\_value** (Number) - Loan-to-value ratio on the related purchase
> * **assumption\_amount** (Number) - Amount assumed, for an assumed loan
> * **prepayment\_expiration\_date** (Date) - Date the prepayment penalty expires
> * **prepayment\_penalty\_expiration\_period** (Integer) - Length of the prepayment penalty period
> * **reverse\_mortgage\_indicator** (String) - Reverse mortgage flag from your source

> [accordion] Loan indicators (Boolean)
>
> Each is **true** or **false**.
>
> * **conforming\_loan\_indicator**
> * **non\_conforming\_loan\_indicator**
> * **conventional\_loan\_indicator**
> * **construction\_loan\_indicator**
> * **equity\_loan\_indicator**
> * **fha\_loan\_indicator**
> * **fixed\_rate\_loan\_indicator**
> * **variable\_rate\_loan\_indicator**
> * **refinance\_loan\_indicator**
> * **small\_business\_administration\_loan\_indicator**
> * **veterans\_administration\_loan\_indicator**
> * **private\_party\_lender\_indicator**
> * **seller\_carry\_back\_indicator**
> * **other\_subordinate\_loan\_indicator**
> * **mobile\_home\_indicator**

> [accordion] Rider indicators (Boolean)
>
> Each is **true** or **false**.
>
> * **condominium\_rider\_indicator**
> * **multifamily\_rider\_indicator**
> * **planned\_unit\_development\_rider\_indicator**
> * **second\_home\_rider\_indicator**
> * **variable\_rider\_indicator**
> * **govt\_sponsored\_enterprise\_eligible\_mortgage\_rider\_indicator**

> [accordion] Adjustable-rate (ARM) details
>
> * **camo\_arm\_index\_type** (Choice) - Index the rate adjusts against. See [ARM index values](#arm-index-values) below
> * **intial\_interest\_rate\_type\_code** (Choice) - Interest rate type at origination. Same values as **camo\_interest\_rate\_type\_code**. Note the column spelling: `intial`
> * **interest\_index** (Number) - Index rate
> * **interest\_margin** (Integer) - Margin added to the index
> * **interest\_only\_period\_years** (Integer) - Length of any interest-only period, in years
> * **fix\_step\_conversion\_rate** (String) - Fixed/step conversion rate
> * **arm\_category\_code** (String) - ARM category code from your source
> * **arm\_frequency** (String) - How often the rate adjusts
> * **arm\_change\_interval** (Integer) - Interval between rate changes
> * **arm\_change\_percent\_limit** (Number) - Maximum change per adjustment, as a percent
> * **arm\_calculation\_change** (Number) - Rate change calculation value
> * **arm\_initial\_change\_max\_percent** (Number) - Maximum change at the first adjustment, as a percent
> * **arm\_initial\_reset\_date** (Date) - Date of the first rate adjustment
> * **arm\_payment\_change\_date** (Date) - Date the payment amount changes
> * **arm\_lookback\_period** (Integer) - Lookback period used to pick the index value
> * **arm\_maximum\_interest\_rate** (Number) - Lifetime rate cap
> * **arm\_interest\_only\_indicator** (Boolean)
> * **arm\_negative\_amortization\_indicator** (Boolean)
> * **arm\_pay\_option\_indicator** (Boolean)
> * **arm\_prepayment\_rider\_indicator** (Boolean)

> [accordion] Principals (signers)
>
> Up to two principals who signed on behalf of the borrower.
>
> * **principal\_one\_full\_name**, **principal\_one\_first\_name**, **principal\_one\_middle\_initial**, **principal\_one\_last\_name**, **principal\_one\_title** (String)
> * **principal\_two\_full\_name**, **principal\_two\_first\_name**, **principal\_two\_middle\_initial**, **principal\_two\_last\_name**, **principal\_two\_title** (String)
>   * Examples: Jane Smith, Jane, A, Smith, Managing Member

> [accordion] Data provider and batch fields
>
> Usually only needed when the file comes from a data provider.
>
> * **transaction\_key** (String) - Leave blank. CamoAg calculates it from the county, recording year, and document number(s); a value that doesn't match is rejected
> * **transaction\_batch\_date** (Date) - Date of the provider batch this row came from
> * **updated\_at** (Date and time) - When the record was last updated at the source

#### Loan type values

Use one of these for **camo\_loan\_type\_code**. Note the column values are spelled exactly as shown, including `line_of_credt` and `wrap_around_mortage`.

> [accordion] All loan type values
>
> `adjustable_rate`, `assumption`, `balloon`, `building_or_construction`, `cash`, `closed_end`, `commercial`, `community_development_authority`, `conventional`, `conventional_with_pmi`, `farmers_home_administration`, `fha`, `land_contract`, `lease_hold_mortgage`, `line_of_credt`, `loan_modification`, `negative_amortization`, `private_party_lender`, `purchase_money_mortgage`, `reverse_mortgage`, `second_mortgage_to_cover_down_payment`, `seller_take_back`, `small_business_administration`, `small_business_association`, `stand_alone_first`, `stand_alone_refi`, `stand_alone_second`, `state_veterans`, `unknown`, `usda`, `veterans_administration`, `wrap_around_mortage`

#### ARM index values

Use one of these for **camo\_arm\_index\_type**.

> [accordion] All ARM index values
>
> `constant_maturity_treasury`, `constant_maturity_treasury_1_year`, `constant_maturity_treasury_3_year`, `constant_maturity_treasury_5_year`, `constant_maturity_treasury_index_10_year`, `cost_of_funds`, `eleventh_district`, `fannie_mae`, `federal_home_loans_bank_of_new_york`, `lama`, `libor_1_month`, `libor_1_year`, `libor_3_month`, `libor_6_month`, `london_interbank_offered_rate`, `monthly_treasury_average`, `monthly_treasury_average_1_year`, `other`, `prime`, `secondary_market_cd_rate_6_month`, `secured_overnight_financing_rate`, `t_bill_1_year`, `t_bill_6_months`, `treasury_bill`, `treasury_note_10_year`, `treasury_note_3_year`, `treasury_note_5_year`, `unknown`

#### **Example**

| county\_geoid | recording\_date | recorded\_document\_number | assessor\_parcel\_number | amount | interest\_rate | term | camo\_term\_code | camo\_loan\_type\_code | camo\_interest\_rate\_type\_code | due\_date |
| - | - | - | - | - | - | - | - | - | - | - |
| 17037 | 2024-03-15 | 2024R-01202 | 08-16-200-004 | 850000 | 6.25 | 240 | months | farmers\_home\_administration | fixed | 2044-03-01 |

***

## Parcel fields

These describe the parcel the mortgage is recorded against. Fill them in on **every** row; each row adds one parcel to the mortgage.

#### ***Required***

* **assessor\_parcel\_number** (String) - The parcel number (APN / PIN). Formatting such as dashes and spaces is ignored when matching.
  * Examples: 08-16-200-004, 0816200004

#### ***Optional***

* **formatted\_assessor\_parcel\_number** (String) - The parcel number as the county formats it. Also used to match the parcel
* **original\_assessor\_parcel\_number** (String) - A previous parcel number, if it has changed. Also used to match the parcel
* **alternate\_parcel\_id** (String) - Any other parcel ID the county uses. Also used to match the parcel
* **tax\_account\_number** (String) - County tax account number. Also used to match the parcel
* **apn\_sequence\_number** (Integer) - Sequence number when one APN has several records
* **land\_use\_code** (String) - Land use code
  * Examples: AG
* **county\_use\_description** (String) - The county's land use description
  * Examples: Agricultural Land
* **state\_use\_description** (String) - The state's land use description
* **property\_indicator\_code** (String) - Property type code from your source
* **zoning\_code** (String) - Zoning code
* **actual\_year\_built** (Integer) - Year the main structure was built
* **effective\_year\_built** (Integer) - Effective year built, adjusted for renovations
* **total\_number\_of\_buildings** (Integer) - Number of buildings on the parcel

> [accordion] Property (situs) address
>
> The address of the parcel itself, not the borrower's mailing address.
>
> * **deed\_situs\_street\_address** (String) - Full street address line
>   * Examples: 1234 County Road 7
> * **deed\_situs\_house\_number** (String)
> * **deed\_situs\_house\_number\_suffix** (String)
> * **deed\_situs\_house\_number\_two** (String)
> * **deed\_situs\_direction** (String) - Street direction prefix (N, S, E, W)
> * **deed\_situs\_street\_name** (String)
> * **deed\_situs\_mode** (String) - Street type (Rd, St, Ave)
> * **deed\_situs\_quadrant** (String) - Street direction suffix
> * **deed\_situs\_unit\_number** (String)
> * **deed\_situs\_city** (String)
> * **deed\_situs\_county** (String)
> * **deed\_situs\_state** (String) - Two-letter state abbreviation
> * **deed\_situs\_zip\_code** (String)
> * **deed\_situs\_carrier\_route** (String)
> * **standardized\_address\_confidence\_code** (String)

> [accordion] Data provider fields
>
> Usually only needed when the file comes from a data provider.
>
> * **third\_party\_id** (String) - The provider's property ID (for example, an Attom ID or CoreLogic CLIP)
> * **previous\_third\_party\_id** (String) - A previous provider property ID
> * **third\_party\_transaction\_id** (String) - The provider's transaction ID
> * **composite\_property\_linkage\_key** (String)
> * **transaction\_batch\_sequence\_number** (Integer)
> * **pending\_record\_indicator** (Boolean)
> * **record\_action\_indicator** (String)

#### **Example**

A single mortgage recorded against two parcels uses two rows with the same county, recording date, and document number. Mortgage fields only need to be filled in on the first row:

| county\_geoid | recording\_date | recorded\_document\_number | assessor\_parcel\_number | amount | land\_use\_code | deed\_situs\_city | deed\_situs\_state |
| - | - | - | - | - | - | - | - |
| 17037 | 2024-03-15 | 2024R-01202 | 08-16-200-004 | 850000 | AG | Sycamore | IL |
| 17037 | 2024-03-15 | 2024R-01202 | 08-16-200-005 | | AG | Sycamore | IL |

***

## Borrower fields

Up to four borrowers per row. For each borrower, provide either the **full name** or both the **first name and middle initial** and **last name**. A borrower without a name is skipped.

#### ***Required***

None. A mortgage can import without borrowers, but we strongly recommend including at least **borrower\_one\_full\_name** so the mortgage shows who it belongs to.

#### ***Optional***

*Names*

* **borrower\_one\_full\_name** (String) - Full name of the first borrower
  * Examples: John A Smith, Smith Family Farms LLC
* **borrower\_one\_first\_name\_and\_middle\_initial** (String) - Used with **borrower\_one\_last\_name** when no full name is given
  * Examples: John A
* **borrower\_one\_last\_name** (String)
  * Examples: Smith
* **borrower\_one\_corporate\_indicator** (Boolean) - **true** if the borrower is a business, trust, or other entity rather than a person. Blank is treated as **false**
* The same four columns exist for borrowers **two**, **three**, and **four**: **borrower\_two\_full\_name**, **borrower\_two\_first\_name\_and\_middle\_initial**, **borrower\_two\_last\_name**, **borrower\_two\_corporate\_indicator**, and so on

*Mailing address*

One mailing address is shared by all borrowers on the mortgage. Provide either the single-line **borrower\_full\_address** or the broken-out components.

* **borrower\_full\_address** (String) - Mailing address, as a single line
  * Examples: 1234 Red St, Sycamore, IL 60178

OR

* **borrower\_address\_line\_1** (String)
  * Examples: 1234 Red St
* **borrower\_address\_line\_2** (String)
  * Examples: Suite 400
* **borrower\_post\_office\_box\_number** (String)
  * Examples: PO Box 55
* **borrower\_city** (String)
  * Examples: Sycamore
* **borrower\_state** (String)
  * Examples: IL
* **borrower\_zipcode** (String)
  * Examples: 60178
* **borrower\_country** (String)
  * Examples: United States

#### **Example**

| county\_geoid | recording\_date | recorded\_document\_number | assessor\_parcel\_number | borrower\_one\_full\_name | borrower\_two\_full\_name | borrower\_two\_corporate\_indicator | borrower\_address\_line\_1 | borrower\_city | borrower\_state | borrower\_zipcode |
| - | - | - | - | - | - | - | - | - | - | - |
| 17037 | 2024-03-15 | 2024R-01202 | 08-16-200-004 | John A Smith | Smith Family Farms LLC | true | 1234 Red St | Sycamore | IL | 60178 |

***

## Lender fields

One lender per row. For the lender name, provide **lender\_full\_name**, **lender\_company\_name**, or **lender\_first\_name** and **lender\_last\_name**; the first one present is used. A row without a lender name adds no lender.

#### ***Required***

None, but we strongly recommend including **lender\_full\_name** or **lender\_company\_name** so the mortgage shows who holds it.

#### ***Optional***

* **lender\_full\_name** (String) - Lender name
  * Examples: First State Bank
* **lender\_company\_name** (String) - Lender company name, used if no full name is given
* **lender\_first\_name** (String) - For an individual lender, used with **lender\_last\_name** if no full or company name is given
* **lender\_last\_name** (String)
* **lender\_company\_code** (String) - Lender code from your source
* **lender\_address** (String) - Lender street address
  * Examples: 100 Main St
* **lender\_city** (String)
* **lender\_state** (String)
* **lender\_zip\_code** (String)
* **lender\_post\_to\_name** (String) - "Post to" name on the recorded document
* **lender\_post\_to\_code** (String)
* **lender\_seller\_carry\_black\_flag** (Boolean) - Seller carry-back flag. Note the column spelling: `black`

*NMLS*

* **loan\_company\_nmls\_id\_one** (Integer) - NMLS ID of the lending company
  * Examples: 123456
* **loan\_company\_nmls\_name\_one** (String) - NMLS name of the lending company
* **loan\_company\_nmls\_id\_two** (Integer) - NMLS ID of a second lending company
* **loan\_company\_nmls\_name\_two** (String)
* **loan\_officer\_nmls\_id** (Integer) - NMLS ID of the loan officer
* **loan\_officer\_nmls\_name** (String) - Loan officer name

#### **Example**

| county\_geoid | recording\_date | recorded\_document\_number | assessor\_parcel\_number | lender\_full\_name | lender\_address | lender\_city | lender\_state | lender\_zip\_code | loan\_company\_nmls\_id\_one |
| - | - | - | - | - | - | - | - | - | - |
| 17037 | 2024-03-15 | 2024R-01202 | 08-16-200-004 | First State Bank | 100 Main St | DeKalb | IL | 60115 | 123456 |

***

## Full example

A minimal file with one mortgage on one parcel, as it would look in a text editor:

```csv theme={null}
county_geoid,recording_date,recorded_document_number,assessor_parcel_number,amount,interest_rate,term,camo_term_code,camo_loan_type_code,camo_interest_rate_type_code,borrower_one_full_name,borrower_address_line_1,borrower_city,borrower_state,borrower_zipcode,lender_full_name
17037,2024-03-15,2024R-01202,08-16-200-004,850000,6.25,240,months,farmers_home_administration,fixed,John A Smith,1234 Red St,Sycamore,IL,60178,First State Bank
```

> [!NOTE]
>
> Questions about the format, or ready to send a file? Email [support@camo.ag](mailto:support@camo.ag).
