Requires CamoAg Enterprise subscription and Mortgage module add-on to access this feature.
Requirements: Read First
1
Column names must appear exactly as written below (lowercase, with underscores). Columns you don’t use can be left blank or removed.
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).
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.
4
Dates use YYYY-MM-DD format (for example, 2024-03-15).
Mortgage Import Template
Download the mortgage import template
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.
Value formats
The file may be comma (
,) or pipe (|) delimited.
Required fields
- 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)
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 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
Recording and document details
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
Loan indicators (Boolean)
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
Rider indicators (Boolean)
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
Adjustable-rate (ARM) details
Adjustable-rate (ARM) details
- camo_arm_index_type (Choice) - Index the rate adjusts against. See 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)
Principals (signers)
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
Data provider and batch fields
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, includingline_of_credt and wrap_around_mortage.
All loan type values
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_mortageARM index values
Use one of these for camo_arm_index_type.All ARM index values
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, unknownExample
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
Property (situs) address
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)
Data provider fields
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: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
- borrower_full_address (String) - Mailing address, as a single line
- Examples: 1234 Red St, Sycamore, IL 60178
- 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
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
- 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
Full example
A minimal file with one mortgage on one parcel, as it would look in a text editor:Questions about the format, or ready to send a file? Email support@camo.ag.

