docs.vin

equity

The equity noun — identity, lifecycle, events, and every capability as an anchored section: 7 capabilities, 0 live, 7 sandbox, 0 declared.

equity is one of the estate's 317 automotive nouns — a job a car needs done. It carries 7 capabilities: 0 live, 7 sandbox, 0 declared · doors equity.vin · aggregator.vin.

Identity

Nounequity
PillarData (facets: 3 data · 3 services · 1 commerce)
Capabilities7 — 0 live · 7 sandbox · 0 declared
EntitiesLoan
Doorsaggregator.vin · equity.vin
SDKVin.equity.* from apis.vin
Address/catalog/equity#{action} — the anchor IS the wire name minus equity.

Events

The vocabulary this noun can append to the record — 4 past-tense, versioned event types, each linked to the capability that emits it:

Discover & read

monitor

equity.monitor · POST /equities/monitor · gate offer · sandbox · answers EquityMonitor@1

FieldTypeRequiredNotes
vinstringno

The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.

Doorequity.vin serves this noun on its two routes: / (the landing) · /1C4PJMMX2MD188786 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

EmitsEquity.monitored@1.

the SDK — equity.monitor
import { equity } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await equity.monitor({"vin":"1C4PJMMX2MD188786"})
POST /equities/monitor
curl -X POST https://apis.vin/equities/monitor \
  -H 'content-type: application/json' \
  -d '{"vin":"1C4PJMMX2MD188786"}'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:11.035Z · HTTP 200
{
  "type": "OK",
  "answers": "EquityMonitor@1",
  "value": {
    "vin": "1C4PJMMX2MD188786",
    "noun": "equity",
    "asOf": "2026-08-10",
    "id": "LN-2da37a4e",
    "principal": 2300000,
    "apr": "4.49",
    "term": 72,
    "watch": {
      "status": "monitoring",
      "id": "EQW-45b2a726",
      "standing": "negative-equity"
    }
  },
  "evidence": {
    "vin": "1C4PJMMX2MD188786",
    "noun": "equity",
    "asOf": "2026-08-10",
    "id": "LN-2da37a4e",
    "principal": 2300000,
    "apr": "4.49",
    "term": 72,
    "watch": {
      "status": "monitoring",
      "id": "EQW-45b2a726",
      "standing": "negative-equity"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "equity-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

positionCheck

equity.positionCheck · GET /equities/position-check · gate none · sandbox · answers EquityPositionCheck@1

FieldTypeRequiredNotes
vinstringno

Doorequity.vin serves this noun on its two routes: / (the landing) · /1C4PJMMX2MD188786 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

the SDK — equity.positionCheck
import { equity } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await equity.positionCheck({"vin":"1C4PJMMX2MD188786"})
GET /equities/position-check
curl 'https://apis.vin/equities/position-check?vin=1C4PJMMX2MD188786'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:11.036Z · HTTP 200
{
  "type": "OK",
  "answers": "EquityPositionCheck@1",
  "value": {
    "vin": "1C4PJMMX2MD188786",
    "noun": "equity",
    "asOf": "2026-08-10",
    "id": "LN-2da37a4e",
    "principal": 2300000,
    "apr": "4.49",
    "term": 72,
    "position": {
      "standing": "negative-equity",
      "equityCents": -104901,
      "currency": "USD",
      "basis": "the-one-arithmetic"
    }
  },
  "evidence": {
    "vin": "1C4PJMMX2MD188786",
    "noun": "equity",
    "asOf": "2026-08-10",
    "id": "LN-2da37a4e",
    "principal": 2300000,
    "apr": "4.49",
    "term": 72,
    "position": {
      "standing": "negative-equity",
      "equityCents": -104901,
      "currency": "USD",
      "basis": "the-one-arithmetic"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "equity-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Quote & price

calc

equity.calc · GET /equities/calc · gate key · sandbox · answers EquityCalc@1

FieldTypeRequiredNotes
vinstringno

Doorequity.vin serves this noun on its two routes: / (the landing) · /1C4PJMMX2MD188786 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

the SDK — equity.calc
import { equity } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await equity.calc({"vin":"1C4PJMMX2MD188786"})
GET /equities/calc
curl 'https://apis.vin/equities/calc?vin=1C4PJMMX2MD188786'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:11.035Z · HTTP 200
{
  "type": "OK",
  "answers": "EquityCalc@1",
  "value": {
    "vin": "1C4PJMMX2MD188786",
    "noun": "equity",
    "asOf": "2026-08-10",
    "id": "LN-2da37a4e",
    "principal": 2300000,
    "apr": "4.49",
    "term": 72,
    "equity": {
      "status": "computed",
      "allowanceCents": 1850000,
      "netPayoffCents": 1954901,
      "equityCents": -104901,
      "negative": true,
      "lienholder": "Huntington National Bank",
      "reference": "poq_3340f6ce"
    }
  },
  "evidence": {
    "vin": "1C4PJMMX2MD188786",
    "noun": "equity",
    "asOf": "2026-08-10",
    "id": "LN-2da37a4e",
    "principal": 2300000,
    "apr": "4.49",
    "term": 72,
    "equity": {
      "status": "computed",
      "allowanceCents": 1850000,
      "netPayoffCents": 1954901,
      "equityCents": -104901,
      "negative": true,
      "lienholder": "Huntington National Bank",
      "reference": "poq_3340f6ce"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "equity-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

recompute

equity.recompute · POST /equities/recompute · gate offer · sandbox · answers EquityRecompute@1

FieldTypeRequiredNotes
vinstringno

The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.

Doorequity.vin serves this noun on its two routes: / (the landing) · /1C4PJMMX2MD188786 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

EmitsEquity.recomputed@1.

the SDK — equity.recompute
import { equity } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await equity.recompute({"vin":"1C4PJMMX2MD188786"})
POST /equities/recompute
curl -X POST https://apis.vin/equities/recompute \
  -H 'content-type: application/json' \
  -d '{"vin":"1C4PJMMX2MD188786"}'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:11.036Z · HTTP 200
{
  "type": "OK",
  "answers": "EquityRecompute@1",
  "value": {
    "vin": "1C4PJMMX2MD188786",
    "noun": "equity",
    "asOf": "2026-08-10",
    "id": "LN-2da37a4e",
    "principal": 2300000,
    "apr": "4.49",
    "term": 72,
    "recomputation": {
      "status": "recomputed",
      "equityCents": -104901,
      "currency": "USD",
      "unchanged": true,
      "basis": "the-one-arithmetic"
    }
  },
  "evidence": {
    "vin": "1C4PJMMX2MD188786",
    "noun": "equity",
    "asOf": "2026-08-10",
    "id": "LN-2da37a4e",
    "principal": 2300000,
    "apr": "4.49",
    "term": 72,
    "recomputation": {
      "status": "recomputed",
      "equityCents": -104901,
      "currency": "USD",
      "unchanged": true,
      "basis": "the-one-arithmetic"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "equity-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Apply & book

subscribe

equity.subscribe · POST /equities/subscribe · gate offer · sandbox · answers EquitySubscribe@1

FieldTypeRequiredNotes
vinstringno

The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.

Doorequity.vin serves this noun on its two routes: / (the landing) · /1C4PJMMX2MD188786 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

EmitsEquity.subscribed@1.

the SDK — equity.subscribe
import { equity } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await equity.subscribe({"vin":"1C4PJMMX2MD188786"})
POST /equities/subscribe
curl -X POST https://apis.vin/equities/subscribe \
  -H 'content-type: application/json' \
  -d '{"vin":"1C4PJMMX2MD188786"}'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:11.037Z · HTTP 200
{
  "type": "OK",
  "answers": "EquitySubscribe@1",
  "value": {
    "vin": "1C4PJMMX2MD188786",
    "noun": "equity",
    "asOf": "2026-08-10",
    "id": "LN-2da37a4e",
    "principal": 2300000,
    "apr": "4.49",
    "term": 72,
    "subscription": {
      "status": "subscribed",
      "id": "EQSUB-38271ff2"
    }
  },
  "evidence": {
    "vin": "1C4PJMMX2MD188786",
    "noun": "equity",
    "asOf": "2026-08-10",
    "id": "LN-2da37a4e",
    "principal": 2300000,
    "apr": "4.49",
    "term": 72,
    "subscription": {
      "status": "subscribed",
      "id": "EQSUB-38271ff2"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "equity-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

More actions

forecast

equity.forecast · GET /equities/forecast · gate key · sandbox · answers EquityForecast@1

FieldTypeRequiredNotes
vinstringno

Doorequity.vin serves this noun on its two routes: / (the landing) · /1C4PJMMX2MD188786 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

the SDK — equity.forecast
import { equity } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await equity.forecast({"vin":"1C4PJMMX2MD188786"})
GET /equities/forecast
curl 'https://apis.vin/equities/forecast?vin=1C4PJMMX2MD188786'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:11.035Z · HTTP 200
{
  "type": "OK",
  "answers": "EquityForecast@1",
  "value": {
    "vin": "1C4PJMMX2MD188786",
    "noun": "equity",
    "asOf": "2026-08-10",
    "id": "LN-2da37a4e",
    "principal": 2300000,
    "apr": "4.49",
    "term": 72,
    "forecast": {
      "status": "no-market-trend-posted",
      "currentMarkCents": 1850000,
      "currency": "USD",
      "basis": "acquisition-figure"
    },
    "current": {
      "status": "computed",
      "allowanceCents": 1850000,
      "netPayoffCents": 1954901,
      "equityCents": -104901,
      "negative": true,
      "lienholder": "Huntington National Bank",
      "reference": "poq_3340f6ce"
    }
  },
  "evidence": {
    "vin": "1C4PJMMX2MD188786",
    "noun": "equity",
    "asOf": "2026-08-10",
    "id": "LN-2da37a4e",
    "principal": 2300000,
    "apr": "4.49",
    "term": 72,
    "forecast": {
      "status": "no-market-trend-posted",
      "currentMarkCents": 1850000,
      "currency": "USD",
      "basis": "acquisition-figure"
    },
    "current": {
      "status": "computed",
      "allowanceCents": 1850000,
      "netPayoffCents": 1954901,
      "equityCents": -104901,
      "negative": true,
      "lienholder": "Huntington National Bank",
      "reference": "poq_3340f6ce"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "equity-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

upgradeAlert

equity.upgradeAlert · POST /equities/upgrade-alert · gate key · sandbox · answers EquityUpgradeAlert@1

No input — this capability takes no request body.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1C4PJMMX2MD188786 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

EmitsEquity.upgradeAlerted@1.

the SDK — equity.upgradeAlert
import { equity } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await equity.upgradeAlert()
POST /equities/upgrade-alert
curl -X POST https://apis.vin/equities/upgrade-alert \
  -H 'content-type: application/json' \
  -d '{}'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-16T14:50:09.796Z · HTTP 200
{
  "type": "OK",
  "answers": "EquityUpgradeAlert@1",
  "value": {
    "vin": "1HGCM82633A004352",
    "noun": "equity",
    "asOf": "2026-08-10",
    "loan": {
      "status": "no-open-loan"
    },
    "alert": {
      "status": "alert-armed",
      "trigger": "free-and-clear",
      "equityCents": 399600,
      "currency": "USD"
    }
  },
  "evidence": {
    "vin": "1HGCM82633A004352",
    "noun": "equity",
    "asOf": "2026-08-10",
    "loan": {
      "status": "no-open-loan"
    },
    "alert": {
      "status": "alert-armed",
      "trigger": "free-and-clear",
      "equityCents": 399600,
      "currency": "USD"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "equity-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Data model

The record shape behind this noun — one entity, each property an evidence field. See the whole estate model on the data model page.

Loan


Generated from the catalog. Every capability, answer, gate, and entity on this page is a rendered descriptor — it cannot drift from the wire.