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

# The Financing object

> What the owner owes on a parcel at the slice date: the valuation, the open liens, the mortgage history and the involuntary liens.

The body of [`GET /v1/properties/{property_id}/financing`](/api-reference/endpoints/properties-financing). Its
`summary` is also the `financing` block on a
[parcel search row](/api-reference/objects/parcel-search-row). Its `valuation` is the `valuation` block there.
So the search and this route agree by construction.

## The four parts

| Part                  | What it is                                                                                                                                                                                                             |
| --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `valuation`           | The automated valuation with its range and confidence, and the equity, equity percent and loan-to-value derived from it.                                                                                               |
| `summary`             | The whole picture in one block: open lien count and balance, the senior lien's lender, rate and balance. It also says if a HELOC is open and if the parcel is free and clear, and it names the last recorded mortgage. |
| `open_liens[]`        | The liens the owner still owes at the slice date, senior first (`position: 1`).                                                                                                                                        |
| `mortgage_history[]`  | Every mortgage the recorder shows on the parcel, most recent first, paid off ones included.                                                                                                                            |
| `involuntary_liens[]` | UCC filings, judgements and tax liens on record.                                                                                                                                                                       |

## The fields a reader misreads

* **`dated` is true, and `as_of` is the slice date in `meta.coverage[].parcel.financing.as_of`.** Every number here
  is what was true on that date, not today. A response that carries any of it also carries `meta.dated[]`. See
  [dated data](/guides/concepts/dated-data).
* **Null against 0.** `open_lien_count: 0` with `free_and_clear: true` means "checked, nothing owed". A null
  `open_lien_balance` means the slice does not carry a balance. A null `valuation` means no automated valuation
  for this parcel, not a value of zero.
* **Balances, rates and payments are estimates.** `current_balance`, `interest_rate` and `estimated_payment` are
  the file's amortised estimates from the recorded terms, not a servicer's statement. `loan_amount` and the
  recording date are what the document says.
* **`lender_class` comes from the name alone**, so it classifies and does not verify. `private-lender-financed`
  and the `financing.lender_class` filter read it. The five values are:
  * `BANK` for a bank, credit union or thrift.
  * `NONBANK` for a mortgage company or other lending business.
  * `PRIVATE` for a trust, a seller carry-back or another private party.
  * `INDIVIDUAL` for a person's name.
  * `GOVERNMENT` for an agency.
* **Since 0.17.0 the API classifies the folded name.** The fold puts the name in upper case, removes punctuation,
  spells out abbreviations and joins initials. So a spelling cannot defeat a rule. Examples:
  * KS STATEBANK and MANUFACTURERS & TRADERS TR CO read `BANK`. A person whose surname is Banks does not.
  * A securitisation trust, or a trust with lender words in its name, reads `NONBANK`, not `PRIVATE`.
  * A housing authority, a city or a county reads `GOVERNMENT`, unless it is a credit union.
  * A name with a digit in it is never a person.
* **`PRIVATE` is not the hard-money sense of "private lender".** The
  [Lender object](/api-reference/objects/lender) carries `is_hard_money` for that.
  [`GET /v1/lenders/search`](/api-reference/endpoints/lenders-search) finds a lender's stable id from any spelling of
  the name here.
* **A placeholder lender is null.** Sometimes the recorder typed NOT AVAILABLE, NOT PROVIDED, CORELOGIC SOLEX,
  UNKNOWN or another placeholder in the lender field. Since 0.17.0 the lien or history row then keeps its amounts and
  dates and carries `lender_name: null` with `lender_class: null`. Before that version the API served the placeholder
  as a name. The loan is real, but the lender is not measured. `summary.first_lien_lender` and
  `summary.last_mortgage_lender` follow the same rule, and the market's `meta.coverage[].parcel.financing.n_lenders`
  never counts a placeholder.
* **Every lender name carries its registry id beside it.** `summary.first_lien_lender_id`,
  `summary.last_mortgage_lender_id`, `open_liens[].lender_id` and `mortgage_history[].lender_id` are the ids of the
  lenders named beside them. An id is the key to [`GET /v1/lenders/{id}`](/api-reference/endpoints/lenders-get) and to
  [its loans](/api-reference/endpoints/lenders-loans). The `financing.lender_id` filter of
  [the property search](/api-reference/endpoints/properties-search) reads `summary.last_mortgage_lender_id`. An id is
  null where the name stays: a person-named lender below the person gate, or a market with no lender registry. The
  person gate is fewer than 10 loans on 5 parcels.
* **A registry rebuild moves no name.** The API joins the ids from the registry when it reads the record. An id the
  registry later retired into another lender still opens the current profile
  ([Retired ids](/api-reference/objects/lender#retired-ids)).
* **`cash_purchase` is the file's own flag** on a lien, and it is blank in most rows. To ask if a sale was cash,
  use `cash_sale_proxy` on the sale block instead. The API derives that flag and names it for what it is. It is null
  on every parcel of a market whose delivery records a purchase mortgage on fewer than one priced last sale in five.
  `meta.coverage[].parcel.sale_mortgage_measured` is false there. The 2026 deliveries are below that bar.
* **An involuntary lien is not a foreclosure notice.** No delivery carries a notice of default, of sale or of lis
  pendens. A tax lien or a judgement is the nearest signal this data holds.
* **`mortgage_history[].position` is a slot, not a lien position.** Slot 1 is the oldest kept slot, and the highest
  filled slot is the newest. So a parcel with slot 5 filled lost older mortgages. `sale_date` on the same record is
  the loan's own date as the file writes it. In `open_liens[]`, `position: 1` is the senior lien.

## Contact data

`borrowers[]` on a mortgage and `parties[]` on an involuntary lien are the people named on the document. This host
does not serve them: the records carry no such keys. Lender names are business names, and the host serves them.
Every lender of record has a profile under a stable id ([the Lender object](/api-reference/objects/lender)).


## Related topics

- [The Lender loan](/api-reference/objects/lender-loan.md)
- [The Investor object](/api-reference/objects/investor.md)
- [The History event object](/api-reference/objects/history-event.md)
- [The Lender object](/api-reference/objects/lender.md)
- [Read a parcel's financing](/api-reference/endpoints/properties-financing.md)
