insurance
The insurance noun — identity, lifecycle, events, and every capability as an anchored section: 28 capabilities, 0 live, 28 sandbox, 0 declared.
insurance is one of the estate's 317 automotive nouns — a job a car needs done. It carries 28 capabilities: 0 live, 28 sandbox, 0 declared · doors insure.vin · aggregator.vin.
Identity
| Noun | insurance |
| Pillar | Commerce (facets: 8 data · 9 services · 11 commerce) |
| Capabilities | 28 — 0 live · 28 sandbox · 0 declared |
| Entities | Policy |
| Doors | aggregator.vin · insure.vin |
| SDK | Vin.insurance.* from apis.vin |
| Address | /catalog/insurance#{action} — the anchor IS the wire name minus insurance. |
Events
The vocabulary this noun can append to the record — 25 past-tense, versioned event types, each linked to the capability that emits it:
Insurance.bound@1— emitted bybindInsurance.canceled@1— emitted bycancelInsurance.cardIssued@1— emitted byproofCardInsurance.certificateIssued@1— emitted bycertificateIssueInsurance.endorsed@1— emitted byendorseInsurance.failed@1— emitted bybind·cancel·premiumFinance·quote·reinstate·renewInsurance.forcePlaceRefunded@1— emitted byforcePlaceRefundInsurance.forcePlaced@1— emitted byforcePlaceInsurance.gapDeficiencyWaived@1— emitted bygapDeficiencyWaiveInsurance.lapseMonitored@1— emitted bylapseMonitorInsurance.lapsed@1— emitted bylapseMonitorInsurance.lienholderAdded@1— emitted bylienholderInsurance.parametricPaid@1— emitted byparametricInsurance.policyIssued@1— emitted bybind·issueInsurance.premiumFinanced@1— emitted bypremiumFinanceInsurance.proofIssued@1— emitted byproofRequestInsurance.quoted@1— emitted bybind·quoteInsurance.refunded@1— emitted bycancelInsurance.reinstated@1— emitted byreinstateInsurance.renewed@1— emitted byrenewInsurance.uninsuredMotoristHandled@1— emitted byuninsuredMotoristHandleInsurance.vehicleAdded@1— emitted byaddVehicleInsuranceProof.lapsed@1— emitted byproveInsuranceProof.proved@1— emitted byprovePremiumFinance.originated@1— emitted bypremiumFinance
Discover & read
compare
insurance.compare · GET /insurances/compare · gate key · sandbox · answers InsuranceCompare@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — insure.vin serves this noun on its two routes: / (the landing) · /1C4JJXSJ2MW707071 (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.
import { insurance } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurance.compare({"vin":"1C4JJXSJ2MW707071"})curl 'https://apis.vin/insurances/compare?vin=1C4JJXSJ2MW707071'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.
{
"type": "OK",
"answers": "InsuranceCompare@1",
"value": {
"vin": "1C4JJXSJ2MW707071",
"comparedAt": "2026-08-10T00:00:00.000Z",
"options": [
{
"option": "carrier-1",
"bindable": true,
"termMonths": 6,
"premium": {
"amount": "79443",
"currency": "USD"
}
},
{
"option": "carrier-2",
"bindable": true,
"termMonths": 6,
"premium": {
"amount": "77062",
"currency": "USD"
}
},
{
"option": "carrier-3",
"bindable": true,
"termMonths": 6,
"premium": {
"amount": "84205",
"currency": "USD"
}
}
],
"cheapest": "carrier-2"
},
"evidence": {
"vin": "1C4JJXSJ2MW707071",
"comparedAt": "2026-08-10T00:00:00.000Z",
"options": [
{
"option": "carrier-1",
"bindable": true,
"termMonths": 6,
"premium": {
"amount": "79443",
"currency": "USD"
}
},
{
"option": "carrier-2",
"bindable": true,
"termMonths": 6,
"premium": {
"amount": "77062",
"currency": "USD"
}
},
{
"option": "carrier-3",
"bindable": true,
"termMonths": 6,
"premium": {
"amount": "84205",
"currency": "USD"
}
}
],
"cheapest": "carrier-2"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "insurance-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}policyStatus
insurance.policyStatus · GET /insurances/policy-status · gate none · sandbox · answers InsurancePolicyStatus@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — insure.vin serves this noun on its two routes: / (the landing) · /1C4JJXSJ2MW707071 (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.
import { insurance } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurance.policyStatus({"vin":"1C4JJXSJ2MW707071"})curl 'https://apis.vin/insurances/policy-status?vin=1C4JJXSJ2MW707071'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.
{
"type": "OK",
"answers": "InsurancePolicyStatus@1",
"value": {
"policyNumber": "POL-1581AE2E",
"vin": "1C4JJXSJ2MW707071",
"carrier": "acme-mutual",
"status": "bound",
"termMonths": 6,
"effectiveDate": "2026-08-10",
"expiresAt": "2027-02-06T00:00:00.000Z"
},
"evidence": {
"policyNumber": "POL-1581AE2E",
"vin": "1C4JJXSJ2MW707071",
"carrier": "acme-mutual",
"status": "bound",
"termMonths": 6,
"effectiveDate": "2026-08-10",
"expiresAt": "2027-02-06T00:00:00.000Z"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "insurance-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}certificateVerify
insurance.certificateVerify · GET /insurances/certificate-verify · gate none · sandbox · answers InsuranceCertificateVerify@1
No input — this capability takes no request body.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C4JJXSJ2MW707071 (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.
import { insurance } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurance.certificateVerify()curl 'https://apis.vin/insurances/certificate-verify'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.
{
"type": "OK",
"answers": "InsuranceCertificateVerify@1",
"value": {
"certificateId": "coi_00000000",
"verified": true,
"status": "valid",
"verifiedAt": "2026-08-10T00:00:00.000Z",
"policyNumber": "POL-A16A90CF"
},
"evidence": {
"certificateId": "coi_00000000",
"verified": true,
"status": "valid",
"verifiedAt": "2026-08-10T00:00:00.000Z",
"policyNumber": "POL-A16A90CF"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "insurance-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}proofVerify
insurance.proofVerify · GET /insurances/proof-verify · gate key · sandbox · answers InsuranceProofVerify@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — insure.vin serves this noun on its two routes: / (the landing) · /1C4JJXSJ2MW707071 (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.
import { insurance } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurance.proofVerify({"vin":"1C4JJXSJ2MW707071"})curl 'https://apis.vin/insurances/proof-verify?vin=1C4JJXSJ2MW707071'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.
{
"type": "OK",
"answers": "InsuranceProofVerify@1",
"value": {
"verified": true,
"vin": "1C4JJXSJ2MW707071",
"verification": "account-verified",
"policyNumber": "POL-1581AE2E",
"carrier": "acme-mutual",
"coverages": [
{
"code": "BI",
"limit": 67000
},
{
"code": "PD",
"limit": 55000
},
{
"code": "UMBI",
"limit": 66000
},
{
"code": "UMPD",
"limit": 98000
},
{
"code": "COMP",
"limit": 81000
},
{
"code": "COLL",
"limit": 94000
}
]
},
"evidence": {
"verified": true,
"vin": "1C4JJXSJ2MW707071",
"verification": "account-verified",
"policyNumber": "POL-1581AE2E",
"carrier": "acme-mutual",
"coverages": [
{
"code": "BI",
"limit": 67000
},
{
"code": "PD",
"limit": 55000
},
{
"code": "UMBI",
"limit": 66000
},
{
"code": "UMPD",
"limit": 98000
},
{
"code": "COMP",
"limit": 81000
},
{
"code": "COLL",
"limit": 94000
}
]
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "insurance-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}lapseMonitor
insurance.lapseMonitor · POST /insurances/lapse-monitor · gate offer · sandbox · answers InsuranceLapseMonitor@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
asOf | string | no | format date-time; observation instant (≡ the x-world-as-of header); the answer states the world AT this instant — absent, at, or before the fixed as-of answers the unmoved world |
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.
Door — insure.vin serves this noun on its two routes: / (the landing) · /1C4JJXSJ2MW707071 (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.
Emits — Insurance.lapseMonitored@1 · Insurance.lapsed@1.
import { insurance } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurance.lapseMonitor({"vin":"1C4JJXSJ2MW707071","asOf":"asof"})curl -X POST https://apis.vin/insurances/lapse-monitor \
-H 'content-type: application/json' \
-d '{"vin":"1C4JJXSJ2MW707071","asOf":"asof"}'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.
{
"type": "OK",
"answers": "InsuranceLapseMonitor@1",
"value": {
"monitorId": "mon_d9deb764",
"policyNumber": "POL-1581AE2E",
"vin": "1C4JJXSJ2MW707071",
"status": "monitoring",
"coverageActive": true,
"notifyLienholder": true,
"checkedAt": "2026-08-10T00:00:00.000Z"
},
"evidence": {
"monitorId": "mon_d9deb764",
"policyNumber": "POL-1581AE2E",
"vin": "1C4JJXSJ2MW707071",
"status": "monitoring",
"coverageActive": true,
"notifyLienholder": true,
"checkedAt": "2026-08-10T00:00:00.000Z"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "insurance-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Quote & price
quote
insurance.quote · POST /insurances/quote · gate offer · sandbox · answers InsuranceQuote@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
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.
Door — insure.vin serves this noun on its two routes: / (the landing) · /1C4JJXSJ2MW707071 (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.
Emits — Insurance.failed@1 · Insurance.quoted@1.
import { insurance } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurance.quote({"vin":"1C4JJXSJ2MW707071"})curl -X POST https://apis.vin/insurances/quote \
-H 'content-type: application/json' \
-d '{"vin":"1C4JJXSJ2MW707071"}'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.
{
"type": "OK",
"answers": "InsuranceQuote@1",
"value": {
"quoteId": "iq_7e2345f3",
"vin": "1C4JJXSJ2MW707071",
"carrier": "acme-mutual",
"bindable": true,
"premium": {
"amount": "76625",
"currency": "USD"
},
"termMonths": 6,
"coverages": [
{
"code": "BI",
"limit": 67000,
"premium": {
"amount": "15429",
"currency": "USD"
}
},
{
"code": "PD",
"limit": 55000,
"premium": {
"amount": "14746",
"currency": "USD"
}
},
{
"code": "UMBI",
"limit": 66000,
"premium": {
"amount": "12143",
"currency": "USD"
}
},
{
"code": "UMPD",
"limit": 98000,
"premium": {
"amount": "8224",
"currency": "USD"
}
},
{
"code": "COMP",
"limit": 81000,
"premium": {
"amount": "13691",
"currency": "USD"
}
},
{
"code": "COLL",
"limit": 94000,
"premium": {
"amount": "12392",
"currency": "USD"
}
}
],
"effectiveDate": "2026-08-10",
"expiresAt": "2026-09-09T00:00:00.000Z"
},
"evidence": {
"quoteId": "iq_7e2345f3",
"vin": "1C4JJXSJ2MW707071",
"carrier": "acme-mutual",
"bindable": true,
"premium": {
"amount": "76625",
"currency": "USD"
},
"termMonths": 6,
"coverages": [
{
"code": "BI",
"limit": 67000,
"premium": {
"amount": "15429",
"currency": "USD"
}
},
{
"code": "PD",
"limit": 55000,
"premium": {
"amount": "14746",
"currency": "USD"
}
},
{
"code": "UMBI",
"limit": 66000,
"premium": {
"amount": "12143",
"currency": "USD"
}
},
{
"code": "UMPD",
"limit": 98000,
"premium": {
"amount": "8224",
"currency": "USD"
}
},
{
"code": "COMP",
"limit": 81000,
"premium": {
"amount": "13691",
"currency": "USD"
}
},
{
"code": "COLL",
"limit": 94000,
"premium": {
"amount": "12392",
"currency": "USD"
}
}
],
"effectiveDate": "2026-08-10",
"expiresAt": "2026-09-09T00:00:00.000Z"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "insurance-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}rate
insurance.rate · GET /insurances/rate · gate key · sandbox · answers InsuranceRate@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — insure.vin serves this noun on its two routes: / (the landing) · /1C4JJXSJ2MW707071 (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.
import { insurance } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurance.rate({"vin":"1C4JJXSJ2MW707071"})curl 'https://apis.vin/insurances/rate?vin=1C4JJXSJ2MW707071'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.
{
"type": "OK",
"answers": "InsuranceRate@1",
"value": {
"vin": "1C4JJXSJ2MW707071",
"carrier": "acme-mutual",
"termMonths": 6,
"totalPremium": {
"amount": "76625",
"currency": "USD"
},
"rates": [
{
"code": "BI",
"limit": 67000,
"premium": {
"amount": "15429",
"currency": "USD"
}
},
{
"code": "PD",
"limit": 55000,
"premium": {
"amount": "14746",
"currency": "USD"
}
},
{
"code": "UMBI",
"limit": 66000,
"premium": {
"amount": "12143",
"currency": "USD"
}
},
{
"code": "UMPD",
"limit": 98000,
"premium": {
"amount": "8224",
"currency": "USD"
}
},
{
"code": "COMP",
"limit": 81000,
"premium": {
"amount": "13691",
"currency": "USD"
}
},
{
"code": "COLL",
"limit": 94000,
"premium": {
"amount": "12392",
"currency": "USD"
}
}
],
"effectiveDate": "2026-08-10"
},
"evidence": {
"vin": "1C4JJXSJ2MW707071",
"carrier": "acme-mutual",
"termMonths": 6,
"totalPremium": {
"amount": "76625",
"currency": "USD"
},
"rates": [
{
"code": "BI",
"limit": 67000,
"premium": {
"amount": "15429",
"currency": "USD"
}
},
{
"code": "PD",
"limit": 55000,
"premium": {
"amount": "14746",
"currency": "USD"
}
},
{
"code": "UMBI",
"limit": 66000,
"premium": {
"amount": "12143",
"currency": "USD"
}
},
{
"code": "UMPD",
"limit": 98000,
"premium": {
"amount": "8224",
"currency": "USD"
}
},
{
"code": "COMP",
"limit": 81000,
"premium": {
"amount": "13691",
"currency": "USD"
}
},
{
"code": "COLL",
"limit": 94000,
"premium": {
"amount": "12392",
"currency": "USD"
}
}
],
"effectiveDate": "2026-08-10"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "insurance-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Apply & book
proofRequest
insurance.proofRequest · POST /insurances/proof-request · gate offer · sandbox · answers InsuranceProofRequest@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
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.
Door — insure.vin serves this noun on its two routes: / (the landing) · /1C4JJXSJ2MW707071 (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.
Emits — Insurance.proofIssued@1.
import { insurance } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurance.proofRequest({"vin":"1C4JJXSJ2MW707071"})curl -X POST https://apis.vin/insurances/proof-request \
-H 'content-type: application/json' \
-d '{"vin":"1C4JJXSJ2MW707071"}'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.
{
"type": "OK",
"answers": "InsuranceProofRequest@1",
"value": {
"requestId": "proofreq_70054b24",
"vin": "1C4JJXSJ2MW707071",
"policyNumber": "POL-1581AE2E",
"status": "requested",
"requestedAt": "2026-08-10"
},
"evidence": {
"requestId": "proofreq_70054b24",
"vin": "1C4JJXSJ2MW707071",
"policyNumber": "POL-1581AE2E",
"status": "requested",
"requestedAt": "2026-08-10"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "insurance-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Pay & settle
premiumFinance
insurance.premiumFinance · POST /insurances/premium-finance · gate offer · sandbox · answers PremiumFinance@1
| Field | Type | Required | Notes |
|---|---|---|---|
policy | string | yes | — |
downPayment | string | no | — |
term | integer | no | — |
authority | string | no | — |
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.
Delegated calls require a typed Mandate — { ceiling, perAction, expires, tripwires }; the ceiling is a field, not a conversation.
Door — insure.vin serves this noun on its two routes: / (the landing) · /1C4JJXSJ2MW707071 (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.
Emits — Insurance.failed@1 · Insurance.premiumFinanced@1 · PremiumFinance.originated@1.
import { insurance } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurance.premiumFinance({"policy":"policy"})curl -X POST https://apis.vin/insurances/premium-finance \
-H 'content-type: application/json' \
-d '{"policy":"policy"}'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.
{
"type": "OK",
"answers": "PremiumFinance@1",
"value": {
"vin": "1HGCM82633A004352",
"noun": "insurance",
"asOf": "2026-08-10",
"financing": {
"status": "not-available",
"basis": "no-world-premium-law",
"principal": {
"status": "not-posted",
"basis": "no-world-money-law"
}
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "1HGCM82633A004352",
"noun": "insurance",
"asOf": "2026-08-10",
"financing": {
"status": "not-available",
"basis": "no-world-premium-law",
"principal": {
"status": "not-posted",
"basis": "no-world-money-law"
}
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "policy-annex-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}forcePlaceRefund
insurance.forcePlaceRefund · POST /insurances/force-place-refund · gate key · sandbox · answers InsuranceForcePlaceRefund@1
No input — this capability takes no request body.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C4JJXSJ2MW707071 (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.
Emits — Insurance.forcePlaceRefunded@1.
import { insurance } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurance.forcePlaceRefund()curl -X POST https://apis.vin/insurances/force-place-refund \
-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.
{
"type": "OK",
"answers": "InsuranceForcePlaceRefund@1",
"value": {
"vin": "1HGCM82633A004352",
"noun": "insurance",
"asOf": "2026-08-10",
"refund": {
"status": "no-placement-on-record",
"keepPosition": "NotEnrolled"
}
},
"evidence": {
"vin": "1HGCM82633A004352",
"noun": "insurance",
"asOf": "2026-08-10",
"refund": {
"status": "no-placement-on-record",
"keepPosition": "NotEnrolled"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "policy-annex-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Fulfill & operate
issue
insurance.issue · POST /insurances/issue · gate offer · sandbox · answers InsuranceIssue@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
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.
Door — insure.vin serves this noun on its two routes: / (the landing) · /1C4JJXSJ2MW707071 (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.
Emits — Insurance.policyIssued@1.
import { insurance } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurance.issue({"vin":"1C4JJXSJ2MW707071"})curl -X POST https://apis.vin/insurances/issue \
-H 'content-type: application/json' \
-d '{"vin":"1C4JJXSJ2MW707071"}'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.
{
"type": "OK",
"answers": "InsuranceIssue@1",
"value": {
"policyNumber": "POL-1581AE2E",
"vin": "1C4JJXSJ2MW707071",
"carrier": "acme-mutual",
"status": "issued",
"termMonths": 6,
"premium": {
"amount": "76625",
"currency": "USD"
},
"coverages": [
{
"code": "BI",
"limit": 67000,
"premium": {
"amount": "15429",
"currency": "USD"
}
},
{
"code": "PD",
"limit": 55000,
"premium": {
"amount": "14746",
"currency": "USD"
}
},
{
"code": "UMBI",
"limit": 66000,
"premium": {
"amount": "12143",
"currency": "USD"
}
},
{
"code": "UMPD",
"limit": 98000,
"premium": {
"amount": "8224",
"currency": "USD"
}
},
{
"code": "COMP",
"limit": 81000,
"premium": {
"amount": "13691",
"currency": "USD"
}
},
{
"code": "COLL",
"limit": 94000,
"premium": {
"amount": "12392",
"currency": "USD"
}
}
],
"effectiveDate": "2026-08-10",
"expiresAt": "2027-02-06T00:00:00.000Z",
"issuedAt": "2026-08-10T00:00:00.000Z"
},
"evidence": {
"policyNumber": "POL-1581AE2E",
"vin": "1C4JJXSJ2MW707071",
"carrier": "acme-mutual",
"status": "issued",
"termMonths": 6,
"premium": {
"amount": "76625",
"currency": "USD"
},
"coverages": [
{
"code": "BI",
"limit": 67000,
"premium": {
"amount": "15429",
"currency": "USD"
}
},
{
"code": "PD",
"limit": 55000,
"premium": {
"amount": "14746",
"currency": "USD"
}
},
{
"code": "UMBI",
"limit": 66000,
"premium": {
"amount": "12143",
"currency": "USD"
}
},
{
"code": "UMPD",
"limit": 98000,
"premium": {
"amount": "8224",
"currency": "USD"
}
},
{
"code": "COMP",
"limit": 81000,
"premium": {
"amount": "13691",
"currency": "USD"
}
},
{
"code": "COLL",
"limit": 94000,
"premium": {
"amount": "12392",
"currency": "USD"
}
}
],
"effectiveDate": "2026-08-10",
"expiresAt": "2027-02-06T00:00:00.000Z",
"issuedAt": "2026-08-10T00:00:00.000Z"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "insurance-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}certificateIssue
insurance.certificateIssue · POST /insurances/certificate-issue · gate key · sandbox · answers InsuranceCertificateIssue@1
No input — this capability takes no request body.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C4JJXSJ2MW707071 (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.
Emits — Insurance.certificateIssued@1.
import { insurance } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurance.certificateIssue()curl -X POST https://apis.vin/insurances/certificate-issue \
-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.
{
"type": "OK",
"answers": "InsuranceCertificateIssue@1",
"value": {
"certificateId": "coi_0c10d63d",
"policyNumber": "POL-6A70A040",
"vin": "1HGES16503L000004",
"carrier": "sandbox-general",
"holder": "sandbox-lienholder",
"coverages": [
{
"code": "BI",
"limit": 52000,
"premium": {
"amount": "14551",
"currency": "USD"
}
},
{
"code": "PD",
"limit": 51000,
"premium": {
"amount": "11000",
"currency": "USD"
}
},
{
"code": "UMBI",
"limit": 52000,
"premium": {
"amount": "19625",
"currency": "USD"
}
},
{
"code": "UMPD",
"limit": 52000,
"premium": {
"amount": "18342",
"currency": "USD"
}
},
{
"code": "COMP",
"limit": 87000,
"premium": {
"amount": "16785",
"currency": "USD"
}
},
{
"code": "COLL",
"limit": 42000,
"premium": {
"amount": "14614",
"currency": "USD"
}
}
],
"status": "issued",
"effectiveDate": "2026-08-10",
"expiresAt": "2027-02-06T00:00:00.000Z",
"issuedAt": "2026-08-10T00:00:00.000Z"
},
"evidence": {
"certificateId": "coi_0c10d63d",
"policyNumber": "POL-6A70A040",
"vin": "1HGES16503L000004",
"carrier": "sandbox-general",
"holder": "sandbox-lienholder",
"coverages": [
{
"code": "BI",
"limit": 52000,
"premium": {
"amount": "14551",
"currency": "USD"
}
},
{
"code": "PD",
"limit": 51000,
"premium": {
"amount": "11000",
"currency": "USD"
}
},
{
"code": "UMBI",
"limit": 52000,
"premium": {
"amount": "19625",
"currency": "USD"
}
},
{
"code": "UMPD",
"limit": 52000,
"premium": {
"amount": "18342",
"currency": "USD"
}
},
{
"code": "COMP",
"limit": 87000,
"premium": {
"amount": "16785",
"currency": "USD"
}
},
{
"code": "COLL",
"limit": 42000,
"premium": {
"amount": "14614",
"currency": "USD"
}
}
],
"status": "issued",
"effectiveDate": "2026-08-10",
"expiresAt": "2027-02-06T00:00:00.000Z",
"issuedAt": "2026-08-10T00:00:00.000Z"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "insurance-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Authorize & resolve
gapDeficiencyWaive
insurance.gapDeficiencyWaive · POST /insurances/gap-deficiency-waive · gate key · sandbox · answers InsuranceGapDeficiencyWaive@1
No input — this capability takes no request body.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C4JJXSJ2MW707071 (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.
Emits — Insurance.gapDeficiencyWaived@1.
import { insurance } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurance.gapDeficiencyWaive()curl -X POST https://apis.vin/insurances/gap-deficiency-waive \
-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.
{
"type": "OK",
"answers": "InsuranceGapDeficiencyWaive@1",
"value": {
"vin": "1HGCM82633A004352",
"noun": "insurance",
"asOf": "2026-08-10",
"contract": {
"id": "PP-c45d19d2",
"product": "GAP",
"status": "on-file"
},
"waiver": {
"status": "waivable",
"payoffCents": 1910941,
"settlementCents": 499500,
"deficiencyCents": 1411441,
"currency": "USD",
"lienholder": "Huntington National Bank",
"basis": "net-payoff-minus-settlement-value"
}
},
"evidence": {
"vin": "1HGCM82633A004352",
"noun": "insurance",
"asOf": "2026-08-10",
"contract": {
"id": "PP-c45d19d2",
"product": "GAP",
"status": "on-file"
},
"waiver": {
"status": "waivable",
"payoffCents": 1910941,
"settlementCents": 499500,
"deficiencyCents": 1411441,
"currency": "USD",
"lienholder": "Huntington National Bank",
"basis": "net-payoff-minus-settlement-value"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "policy-annex-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Lifecycle & state
renew
insurance.renew · POST /insurances/renew · gate offer · sandbox · answers InsuranceRenew@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
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.
Door — insure.vin serves this noun on its two routes: / (the landing) · /1C4JJXSJ2MW707071 (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.
Emits — Insurance.failed@1 · Insurance.renewed@1.
import { insurance } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurance.renew({"vin":"1C4JJXSJ2MW707071"})curl -X POST https://apis.vin/insurances/renew \
-H 'content-type: application/json' \
-d '{"vin":"1C4JJXSJ2MW707071"}'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.
{
"type": "OK",
"answers": "InsuranceRenew@1",
"value": {
"policyNumber": "POL-A939FE48",
"priorPolicy": "POL-1581AE2E",
"vin": "1C4JJXSJ2MW707071",
"carrier": "acme-mutual",
"status": "bound",
"termMonths": 6,
"premium": {
"amount": "76625",
"currency": "USD"
},
"effectiveDate": "2027-02-06T00:00:00.000Z",
"expiresAt": "2027-08-05T00:00:00.000Z"
},
"evidence": {
"policyNumber": "POL-A939FE48",
"priorPolicy": "POL-1581AE2E",
"vin": "1C4JJXSJ2MW707071",
"carrier": "acme-mutual",
"status": "bound",
"termMonths": 6,
"premium": {
"amount": "76625",
"currency": "USD"
},
"effectiveDate": "2027-02-06T00:00:00.000Z",
"expiresAt": "2027-08-05T00:00:00.000Z"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "insurance-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}reinstate
insurance.reinstate · POST /insurances/reinstate · gate offer · sandbox · answers InsuranceReinstate@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
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.
Door — insure.vin serves this noun on its two routes: / (the landing) · /1C4JJXSJ2MW707071 (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.
Emits — Insurance.failed@1 · Insurance.reinstated@1.
import { insurance } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurance.reinstate({"vin":"1C4JJXSJ2MW707071"})curl -X POST https://apis.vin/insurances/reinstate \
-H 'content-type: application/json' \
-d '{"vin":"1C4JJXSJ2MW707071"}'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.
{
"type": "OK",
"answers": "InsuranceReinstate@1",
"value": {
"policyNumber": "POL-1581AE2E",
"vin": "1C4JJXSJ2MW707071",
"priorStatus": "cancelled",
"status": "bound",
"reinstatementFee": {
"amount": "2500",
"currency": "USD"
},
"lapseDays": 2,
"reinstatedAt": "2026-08-10T00:00:00.000Z",
"effectiveDate": "2026-08-10"
},
"evidence": {
"policyNumber": "POL-1581AE2E",
"vin": "1C4JJXSJ2MW707071",
"priorStatus": "cancelled",
"status": "bound",
"reinstatementFee": {
"amount": "2500",
"currency": "USD"
},
"lapseDays": 2,
"reinstatedAt": "2026-08-10T00:00:00.000Z",
"effectiveDate": "2026-08-10"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "insurance-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}cancel
insurance.cancel · POST /insurances/cancel · gate offer · sandbox · answers InsuranceCancel@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
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.
Door — insure.vin serves this noun on its two routes: / (the landing) · /1C4JJXSJ2MW707071 (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.
Emits — Insurance.canceled@1 · Insurance.failed@1 · Insurance.refunded@1.
import { insurance } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurance.cancel({"vin":"1C4JJXSJ2MW707071"})curl -X POST https://apis.vin/insurances/cancel \
-H 'content-type: application/json' \
-d '{"vin":"1C4JJXSJ2MW707071"}'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.
{
"type": "OK",
"answers": "InsuranceCancel@1",
"value": {
"policyNumber": "POL-1581AE2E",
"vin": "1C4JJXSJ2MW707071",
"status": "cancelled",
"effectiveDate": "2026-08-10",
"unearnedRefund": {
"amount": "38312",
"currency": "USD"
},
"basis": "pro-rata"
},
"evidence": {
"policyNumber": "POL-1581AE2E",
"vin": "1C4JJXSJ2MW707071",
"status": "cancelled",
"effectiveDate": "2026-08-10",
"unearnedRefund": {
"amount": "38312",
"currency": "USD"
},
"basis": "pro-rata"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "insurance-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}More actions
addVehicle
insurance.addVehicle · POST /insurances/add-vehicle · gate offer · sandbox · answers InsuranceAddVehicle@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
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.
Door — insure.vin serves this noun on its two routes: / (the landing) · /1C4JJXSJ2MW707071 (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.
Emits — Insurance.vehicleAdded@1.
import { insurance } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurance.addVehicle({"vin":"1C4JJXSJ2MW707071"})curl -X POST https://apis.vin/insurances/add-vehicle \
-H 'content-type: application/json' \
-d '{"vin":"1C4JJXSJ2MW707071"}'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.
{
"type": "OK",
"answers": "InsuranceAddVehicle@1",
"value": {
"policyNumber": "POL-1581AE2E",
"vin": "1C4JJXSJ2MW707071",
"addedVin": "5YJ3E1EA7KF328931",
"status": "active",
"vehicles": [
"1C4JJXSJ2MW707071",
"5YJ3E1EA7KF328931"
],
"endorsement": "end_88d17f2b",
"premiumDelta": {
"amount": "8086",
"currency": "USD"
},
"effectiveDate": "2026-08-10"
},
"evidence": {
"policyNumber": "POL-1581AE2E",
"vin": "1C4JJXSJ2MW707071",
"addedVin": "5YJ3E1EA7KF328931",
"status": "active",
"vehicles": [
"1C4JJXSJ2MW707071",
"5YJ3E1EA7KF328931"
],
"endorsement": "end_88d17f2b",
"premiumDelta": {
"amount": "8086",
"currency": "USD"
},
"effectiveDate": "2026-08-10"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "insurance-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}bind
insurance.bind · POST /insurances/bind · gate human · sandbox · answers InsurancePolicy@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | yes | — |
insured | object | no | — |
coverages | array<string> | yes | — |
effectiveDate | string | no | format date |
lienholder | object | no | — |
The gate is a 403 NEEDS_HUMAN — the human verb authorize (credential: insurance-producer) · supply side, routed to a named, staffed, priced terminus with a poll rail. Never a dead end. Price: not posted — see /pricing.
Delegated calls require a typed Mandate — { ceiling, perAction, expires, tripwires }; the ceiling is a field, not a conversation.
Door — insure.vin serves this noun on its two routes: / (the landing) · /1C4JJXSJ2MW707071 (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.
Emits — Insurance.bound@1 · Insurance.failed@1 · Insurance.policyIssued@1 · Insurance.quoted@1.
import { insurance } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurance.bind({"vin":"1C4JJXSJ2MW707071","coverages":[]})curl -X POST https://apis.vin/insurances/bind \
-H 'content-type: application/json' \
-d '{"vin":"1C4JJXSJ2MW707071","coverages":[]}'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.
{
"type": "OK",
"answers": "InsurancePolicy@1",
"value": {
"policyNumber": "POL-1581AE2E",
"quoteId": "iq_7e2345f3",
"vin": "1C4JJXSJ2MW707071",
"carrier": "acme-mutual",
"status": "bound",
"premium": {
"amount": "76625",
"currency": "USD"
},
"termMonths": 6,
"coverages": [
{
"code": "BI",
"limit": 67000,
"premium": {
"amount": "15429",
"currency": "USD"
}
},
{
"code": "PD",
"limit": 55000,
"premium": {
"amount": "14746",
"currency": "USD"
}
},
{
"code": "UMBI",
"limit": 66000,
"premium": {
"amount": "12143",
"currency": "USD"
}
},
{
"code": "UMPD",
"limit": 98000,
"premium": {
"amount": "8224",
"currency": "USD"
}
},
{
"code": "COMP",
"limit": 81000,
"premium": {
"amount": "13691",
"currency": "USD"
}
},
{
"code": "COLL",
"limit": 94000,
"premium": {
"amount": "12392",
"currency": "USD"
}
}
],
"effectiveDate": "2026-08-10",
"expiresAt": "2027-02-06T00:00:00.000Z",
"producer": {
"licensed": true,
"producerId": "sandbox-producer",
"state": "CA"
}
},
"evidence": {
"policyNumber": "POL-1581AE2E",
"quoteId": "iq_7e2345f3",
"vin": "1C4JJXSJ2MW707071",
"carrier": "acme-mutual",
"status": "bound",
"premium": {
"amount": "76625",
"currency": "USD"
},
"termMonths": 6,
"coverages": [
{
"code": "BI",
"limit": 67000,
"premium": {
"amount": "15429",
"currency": "USD"
}
},
{
"code": "PD",
"limit": 55000,
"premium": {
"amount": "14746",
"currency": "USD"
}
},
{
"code": "UMBI",
"limit": 66000,
"premium": {
"amount": "12143",
"currency": "USD"
}
},
{
"code": "UMPD",
"limit": 98000,
"premium": {
"amount": "8224",
"currency": "USD"
}
},
{
"code": "COMP",
"limit": 81000,
"premium": {
"amount": "13691",
"currency": "USD"
}
},
{
"code": "COLL",
"limit": 94000,
"premium": {
"amount": "12392",
"currency": "USD"
}
}
],
"effectiveDate": "2026-08-10",
"expiresAt": "2027-02-06T00:00:00.000Z",
"producer": {
"licensed": true,
"producerId": "sandbox-producer",
"state": "CA"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "insurance-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
},
"connect": {
"type": "OFFER",
"kind": "connect",
"reason": "CONNECTION_ABSENT",
"portClass": "insurance-carrier",
"state": "absent",
"url": "https://integrates.vin/connect/insurance-carrier",
"message": "insurance.bind is live via connection — certified, connect to activate: complete the insurance-carrier link ceremony at https://integrates.vin/connect/insurance-carrier. The credential vault (auth.vin) holds the token, and the same call answers simulated:false — activation is the token, never a deploy."
}
}coverageOptions
insurance.coverageOptions · GET /insurances/coverage-options · gate key · sandbox · answers InsuranceCoverageOptions@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — insure.vin serves this noun on its two routes: / (the landing) · /1C4JJXSJ2MW707071 (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.
import { insurance } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurance.coverageOptions({"vin":"1C4JJXSJ2MW707071"})curl 'https://apis.vin/insurances/coverage-options?vin=1C4JJXSJ2MW707071'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.
{
"type": "OK",
"answers": "InsuranceCoverageOptions@1",
"value": {
"vin": "1C4JJXSJ2MW707071",
"carrier": "acme-mutual",
"bindable": true,
"options": [
{
"code": "BI",
"limit": 67000,
"premium": {
"amount": "15429",
"currency": "USD"
}
},
{
"code": "PD",
"limit": 55000,
"premium": {
"amount": "14746",
"currency": "USD"
}
},
{
"code": "UMBI",
"limit": 66000,
"premium": {
"amount": "12143",
"currency": "USD"
}
},
{
"code": "UMPD",
"limit": 98000,
"premium": {
"amount": "8224",
"currency": "USD"
}
},
{
"code": "COMP",
"limit": 81000,
"premium": {
"amount": "13691",
"currency": "USD"
}
},
{
"code": "COLL",
"limit": 94000,
"premium": {
"amount": "12392",
"currency": "USD"
}
}
]
},
"evidence": {
"vin": "1C4JJXSJ2MW707071",
"carrier": "acme-mutual",
"bindable": true,
"options": [
{
"code": "BI",
"limit": 67000,
"premium": {
"amount": "15429",
"currency": "USD"
}
},
{
"code": "PD",
"limit": 55000,
"premium": {
"amount": "14746",
"currency": "USD"
}
},
{
"code": "UMBI",
"limit": 66000,
"premium": {
"amount": "12143",
"currency": "USD"
}
},
{
"code": "UMPD",
"limit": 98000,
"premium": {
"amount": "8224",
"currency": "USD"
}
},
{
"code": "COMP",
"limit": 81000,
"premium": {
"amount": "13691",
"currency": "USD"
}
},
{
"code": "COLL",
"limit": 94000,
"premium": {
"amount": "12392",
"currency": "USD"
}
}
]
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "insurance-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}endorse
insurance.endorse · POST /insurances/endorse · gate offer · sandbox · answers InsuranceEndorse@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
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.
Door — insure.vin serves this noun on its two routes: / (the landing) · /1C4JJXSJ2MW707071 (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.
Emits — Insurance.endorsed@1.
import { insurance } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurance.endorse({"vin":"1C4JJXSJ2MW707071"})curl -X POST https://apis.vin/insurances/endorse \
-H 'content-type: application/json' \
-d '{"vin":"1C4JJXSJ2MW707071"}'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.
{
"type": "OK",
"answers": "InsuranceEndorse@1",
"value": {
"policyNumber": "POL-1581AE2E",
"vin": "1C4JJXSJ2MW707071",
"endorsement": "end_18d6f0aa",
"change": "deductible",
"deductible": 250,
"premiumDelta": {
"amount": "-311",
"currency": "USD"
},
"status": "endorsed",
"effectiveDate": "2026-08-10"
},
"evidence": {
"policyNumber": "POL-1581AE2E",
"vin": "1C4JJXSJ2MW707071",
"endorsement": "end_18d6f0aa",
"change": "deductible",
"deductible": 250,
"premiumDelta": {
"amount": "-311",
"currency": "USD"
},
"status": "endorsed",
"effectiveDate": "2026-08-10"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "insurance-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}forcePlace
insurance.forcePlace · POST /insurances/force-place · gate key · sandbox · answers InsuranceForcePlace@1
No input — this capability takes no request body.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C4JJXSJ2MW707071 (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.
Emits — Insurance.forcePlaced@1.
import { insurance } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurance.forcePlace()curl -X POST https://apis.vin/insurances/force-place \
-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.
{
"type": "OK",
"answers": "InsuranceForcePlace@1",
"value": {
"vin": "1HGCM82633A004352",
"noun": "insurance",
"asOf": "2026-08-10",
"placement": {
"status": "no-lapse-no-placement",
"keepPosition": "NotEnrolled"
}
},
"evidence": {
"vin": "1HGCM82633A004352",
"noun": "insurance",
"asOf": "2026-08-10",
"placement": {
"status": "no-lapse-no-placement",
"keepPosition": "NotEnrolled"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "policy-annex-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}lienholder
insurance.lienholder · POST /insurances/lienholder · gate offer · sandbox · answers InsuranceLienholder@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
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.
Door — insure.vin serves this noun on its two routes: / (the landing) · /1C4JJXSJ2MW707071 (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.
Emits — Insurance.lienholderAdded@1.
import { insurance } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurance.lienholder({"vin":"1C4JJXSJ2MW707071"})curl -X POST https://apis.vin/insurances/lienholder \
-H 'content-type: application/json' \
-d '{"vin":"1C4JJXSJ2MW707071"}'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.
{
"type": "OK",
"answers": "InsuranceLienholder@1",
"value": {
"policyNumber": "POL-1581AE2E",
"vin": "1C4JJXSJ2MW707071",
"lienholder": {
"id": "lien_24a884b9",
"role": "loss-payee",
"loanNumber": "LN-3DD087"
},
"status": "lienholder-added",
"effectiveDate": "2026-08-10"
},
"evidence": {
"policyNumber": "POL-1581AE2E",
"vin": "1C4JJXSJ2MW707071",
"lienholder": {
"id": "lien_24a884b9",
"role": "loss-payee",
"loanNumber": "LN-3DD087"
},
"status": "lienholder-added",
"effectiveDate": "2026-08-10"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "insurance-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}parametric
insurance.parametric · POST /insurances/parametric · gate key · sandbox · answers InsuranceParametric@1
No input — this capability takes no request body.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C4JJXSJ2MW707071 (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.
Emits — Insurance.parametricPaid@1.
import { insurance } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurance.parametric()curl -X POST https://apis.vin/insurances/parametric \
-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.
{
"type": "OK",
"answers": "InsuranceParametric@1",
"value": {
"vin": "1HGCM82633A004352",
"noun": "insurance",
"asOf": "2026-08-10",
"parametric": {
"status": "trigger-not-met",
"eventId": "CAT-be67edc1",
"index": {
"floodBranded": 0,
"hailBranded": 0
},
"basis": "cat-exposure-census",
"payout": {
"status": "not-posted",
"basis": "no-world-money-law"
}
}
},
"evidence": {
"vin": "1HGCM82633A004352",
"noun": "insurance",
"asOf": "2026-08-10",
"parametric": {
"status": "trigger-not-met",
"eventId": "CAT-be67edc1",
"index": {
"floodBranded": 0,
"hailBranded": 0
},
"basis": "cat-exposure-census",
"payout": {
"status": "not-posted",
"basis": "no-world-money-law"
}
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "policy-annex-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}proofCard
insurance.proofCard · POST /insurances/proof-card · gate offer · sandbox · answers InsuranceProofCard@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
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.
Door — insure.vin serves this noun on its two routes: / (the landing) · /1C4JJXSJ2MW707071 (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.
Emits — Insurance.cardIssued@1.
import { insurance } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurance.proofCard({"vin":"1C4JJXSJ2MW707071"})curl -X POST https://apis.vin/insurances/proof-card \
-H 'content-type: application/json' \
-d '{"vin":"1C4JJXSJ2MW707071"}'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.
{
"type": "OK",
"answers": "InsuranceProofCard@1",
"value": {
"cardId": "card_70054b24",
"policyNumber": "POL-1581AE2E",
"vin": "1C4JJXSJ2MW707071",
"carrier": "acme-mutual",
"status": "issued",
"format": "wallet",
"effectiveDate": "2026-08-10",
"expiresAt": "2027-02-06T00:00:00.000Z",
"issuedAt": "2026-08-10T00:00:00.000Z"
},
"evidence": {
"cardId": "card_70054b24",
"policyNumber": "POL-1581AE2E",
"vin": "1C4JJXSJ2MW707071",
"carrier": "acme-mutual",
"status": "issued",
"format": "wallet",
"effectiveDate": "2026-08-10",
"expiresAt": "2027-02-06T00:00:00.000Z",
"issuedAt": "2026-08-10T00:00:00.000Z"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "insurance-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}prove
insurance.prove · POST /insurances/prove · gate key · sandbox · answers InsuranceProof@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | yes | — |
connection | string | no | an insurance account-link (C5) supplies account-verified proof |
subject | string | no | — |
Door — insure.vin serves this noun on its two routes: / (the landing) · /1C4JJXSJ2MW707071 (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.
Emits — InsuranceProof.lapsed@1 · InsuranceProof.proved@1.
import { insurance } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurance.prove({"vin":"1C4JJXSJ2MW707071"})curl -X POST https://apis.vin/insurances/prove \
-H 'content-type: application/json' \
-d '{"vin":"1C4JJXSJ2MW707071"}'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.
{
"type": "OK",
"answers": "InsuranceProof@1",
"value": {
"verified": true,
"vin": "1C4JJXSJ2MW707071",
"verification": "account-verified",
"policyNumber": "POL-1581AE2E",
"carrier": "acme-mutual",
"coverages": [
{
"code": "BI",
"limit": 67000
},
{
"code": "PD",
"limit": 55000
},
{
"code": "UMBI",
"limit": 66000
},
{
"code": "UMPD",
"limit": 98000
},
{
"code": "COMP",
"limit": 81000
},
{
"code": "COLL",
"limit": 94000
}
]
},
"evidence": {
"verified": true,
"vin": "1C4JJXSJ2MW707071",
"verification": "account-verified",
"policyNumber": "POL-1581AE2E",
"carrier": "acme-mutual",
"coverages": [
{
"code": "BI",
"limit": 67000
},
{
"code": "PD",
"limit": 55000
},
{
"code": "UMBI",
"limit": 66000
},
{
"code": "UMPD",
"limit": 98000
},
{
"code": "COMP",
"limit": 81000
},
{
"code": "COLL",
"limit": 94000
}
]
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "insurance-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
},
"connect": {
"type": "OFFER",
"kind": "connect",
"reason": "CONNECTION_ABSENT",
"portClass": "connections-carrier",
"state": "absent",
"url": "https://integrates.vin/connect/connections-carrier",
"message": "insurance.prove is live via connection — certified, connect to activate: complete the connections-carrier link ceremony at https://integrates.vin/connect/connections-carrier. The credential vault (auth.vin) holds the token, and the same call answers simulated:false — activation is the token, never a deploy."
}
}symbol
insurance.symbol · GET /insurances/symbol · gate none · sandbox · answers InsuranceSymbol@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — insure.vin serves this noun on its two routes: / (the landing) · /1C4JJXSJ2MW707071 (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.
import { insurance } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurance.symbol({"vin":"1C4JJXSJ2MW707071"})curl 'https://apis.vin/insurances/symbol?vin=1C4JJXSJ2MW707071'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.
{
"type": "OK",
"answers": "InsuranceSymbol@1",
"value": {
"vin": "1C4JJXSJ2MW707071",
"ratingSymbol": 2,
"liabilitySymbol": "I",
"physicalDamageSymbol": 6,
"modelYearRatingGroup": 31
},
"evidence": {
"vin": "1C4JJXSJ2MW707071",
"ratingSymbol": 2,
"liabilitySymbol": "I",
"physicalDamageSymbol": 6,
"modelYearRatingGroup": 31
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "insurance-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}telematics
insurance.telematics · GET /insurances/telematics · gate key · sandbox · answers InsuranceTelematics@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — insure.vin serves this noun on its two routes: / (the landing) · /1C4JJXSJ2MW707071 (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.
import { insurance } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurance.telematics({"vin":"1C4JJXSJ2MW707071"})curl 'https://apis.vin/insurances/telematics?vin=1C4JJXSJ2MW707071'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.
{
"type": "OK",
"answers": "InsuranceTelematics@1",
"value": {
"vin": "1C4JJXSJ2MW707071",
"score": 87,
"band": "preferred",
"milesObserved": 2600,
"hardBrakes": 1,
"windowDays": 30,
"asOf": "2026-08-10T00:00:00.000Z"
},
"evidence": {
"vin": "1C4JJXSJ2MW707071",
"score": 87,
"band": "preferred",
"milesObserved": 2600,
"hardBrakes": 1,
"windowDays": 30,
"asOf": "2026-08-10T00:00:00.000Z"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "insurance-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}uninsuredMotoristHandle
insurance.uninsuredMotoristHandle · POST /insurances/uninsured-motorist-handle · gate key · sandbox · answers InsuranceUninsuredMotoristHandle@1
No input — this capability takes no request body.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C4JJXSJ2MW707071 (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.
Emits — Insurance.uninsuredMotoristHandled@1.
import { insurance } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurance.uninsuredMotoristHandle()curl -X POST https://apis.vin/insurances/uninsured-motorist-handle \
-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.
{
"type": "OK",
"answers": "InsuranceUninsuredMotoristHandle@1",
"value": {
"vin": "1HGCM82633A004352",
"noun": "insurance",
"asOf": "2026-08-10",
"claim": {
"status": "no-claim-on-file"
}
},
"evidence": {
"vin": "1HGCM82633A004352",
"noun": "insurance",
"asOf": "2026-08-10",
"claim": {
"status": "no-claim-on-file"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "policy-annex-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.
Policy
Schema
| Property | Type | Notes |
|---|---|---|
id | id | pol_ |
vin | string | — |
policyNumber | string | — |
insuredId | ref→Party | — |
coverages | Coverage[] | — |
premium | money | — |
effectiveDate | date | — |
thirdParties | ThirdParty[] | lienholder|lessor |
carrierId | ref→Insurer | — |
status | enum | — |
Relationships
| From | To | Cardinality | As |
|---|---|---|---|
insuranceClaim | insurance | 1:0..1 | against |
insurance | insurer | *:1 | carried-by |
Modeled
The noun drawn out — its record shape, its lifecycle, and how it is exercised end to end. 3 diagrams, rendered from the estate model.
Insurance · Class model
Insurance · State machine
Insurance · Sequence
Generated from the catalog. Every capability, answer, gate, and entity on this page is a rendered descriptor — it cannot drift from the wire.