insurer
The insurer noun — identity, lifecycle, events, and every capability as an anchored section: 19 capabilities, 0 live, 19 sandbox, 0 declared.
insurer is one of the estate's 317 automotive nouns — a job a car needs done. It carries 19 capabilities: 0 live, 19 sandbox, 0 declared · doors aggregator.vin.
Identity
| Noun | insurer |
| Pillar | Services (facets: 6 data · 8 services · 5 commerce) |
| Capabilities | 19 — 0 live · 19 sandbox · 0 declared |
| Entities | Insurer |
| Doors | aggregator.vin |
| SDK | Vin.insurer.* from apis.vin |
| Address | /catalog/insurer#{action} — the anchor IS the wire name minus insurer. |
Events
The vocabulary this noun can append to the record — 14 past-tense, versioned event types, each linked to the capability that emits it:
Insurer.bound@1— emitted bybindInsurer.claimAdjudicated@1— emitted byclaimAdjudicateInsurer.claimOpened@1— emitted byclaimOpenInsurer.claimPaid@1— emitted bypayClaimInsurer.commissionRemitted@1— emitted bycommissionRemitInsurer.credentialed@1— emitted bycredentialInsurer.endorsed@1— emitted byendorseInsurer.failed@1— emitted bycommissionRemit·payClaim·premiumCollect·quote·refundUnearnedInsurer.policyCanceled@1— emitted bycancelPolicyInsurer.policyIssued@1— emitted byissuePolicyInsurer.premiumCollected@1— emitted bypremiumCollectInsurer.quoted@1— emitted byquoteInsurer.registered@1— emitted byregisterInsurer.unearnedRefunded@1— emitted byrefundUnearned
Discover & read
lookup
insurer.lookup · GET /insurers/lookup · gate none · sandbox · answers InsurerLookup@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /KM8R44GE1RU700471 (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 { insurer } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurer.lookup({"vin":"KM8R44GE1RU700471"})curl 'https://apis.vin/insurers/lookup?vin=KM8R44GE1RU700471'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": "InsurerLookup@1",
"value": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"carrier": {
"mark": "sandbox-general",
"lines": [
"auto"
],
"bindable": true
}
},
"evidence": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"carrier": {
"mark": "sandbox-general",
"lines": [
"auto"
],
"bindable": true
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "risk-money-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}read
insurer.read · GET /insurers/read · gate none · sandbox · answers InsurerRead@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /KM8R44GE1RU700471 (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 { insurer } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurer.read({"vin":"KM8R44GE1RU700471"})curl 'https://apis.vin/insurers/read?vin=KM8R44GE1RU700471'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": "InsurerRead@1",
"value": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"carrier": {
"mark": "sandbox-general",
"lines": [
"auto"
],
"bindable": true
}
},
"evidence": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"carrier": {
"mark": "sandbox-general",
"lines": [
"auto"
],
"bindable": true
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "risk-money-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}claimHistory
insurer.claimHistory · GET /insurers/claim-history · gate key · sandbox · answers InsurerClaimHistory@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /KM8R44GE1RU700471 (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 { insurer } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurer.claimHistory({"vin":"KM8R44GE1RU700471"})curl 'https://apis.vin/insurers/claim-history?vin=KM8R44GE1RU700471'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": "InsurerClaimHistory@1",
"value": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"events": []
},
"evidence": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"events": []
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "risk-money-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}policyStatus
insurer.policyStatus · GET /insurers/policy-status · gate none · sandbox · answers InsurerPolicyStatus@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /KM8R44GE1RU700471 (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 { insurer } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurer.policyStatus({"vin":"KM8R44GE1RU700471"})curl 'https://apis.vin/insurers/policy-status?vin=KM8R44GE1RU700471'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": "InsurerPolicyStatus@1",
"value": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"policy": {
"status": "bound",
"quoteId": "iq_7e2345f3",
"termMonths": 6
}
},
"evidence": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"policy": {
"status": "bound",
"quoteId": "iq_7e2345f3",
"termMonths": 6
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "risk-money-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}coverageVerify
insurer.coverageVerify · GET /insurers/coverage-verify · gate key · sandbox · answers InsurerCoverageVerify@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /KM8R44GE1RU700471 (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 { insurer } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurer.coverageVerify({"vin":"KM8R44GE1RU700471"})curl 'https://apis.vin/insurers/coverage-verify?vin=KM8R44GE1RU700471'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": "InsurerCoverageVerify@1",
"value": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"verification": {
"verified": true,
"vin": "KM8R44GE1RU700471",
"coverages": [
"BI",
"PD",
"UMBI",
"UMPD",
"COMP",
"COLL"
]
}
},
"evidence": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"verification": {
"verified": true,
"vin": "KM8R44GE1RU700471",
"coverages": [
"BI",
"PD",
"UMBI",
"UMPD",
"COMP",
"COLL"
]
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "risk-money-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Quote & price
quote
insurer.quote · POST /insurers/quote · gate offer · sandbox · answers InsurerQuote@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 — aggregator.vin serves this noun on its two routes: / (the landing) · /KM8R44GE1RU700471 (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 — Insurer.failed@1 · Insurer.quoted@1.
import { insurer } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurer.quote({"vin":"KM8R44GE1RU700471"})curl -X POST https://apis.vin/insurers/quote \
-H 'content-type: application/json' \
-d '{"vin":"KM8R44GE1RU700471"}'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": "InsurerQuote@1",
"value": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"quote": {
"quoteId": "iq_7e2345f3",
"vin": "KM8R44GE1RU700471",
"carrier": "sandbox-general",
"bindable": true,
"premium": {
"amount": "94565",
"currency": "USD"
},
"termMonths": 6,
"coverages": [
{
"code": "BI",
"limit": 93000,
"premium": {
"amount": "8847",
"currency": "USD"
}
},
{
"code": "PD",
"limit": 50000,
"premium": {
"amount": "16224",
"currency": "USD"
}
},
{
"code": "UMBI",
"limit": 38000,
"premium": {
"amount": "13361",
"currency": "USD"
}
},
{
"code": "UMPD",
"limit": 95000,
"premium": {
"amount": "18782",
"currency": "USD"
}
},
{
"code": "COMP",
"limit": 91000,
"premium": {
"amount": "17721",
"currency": "USD"
}
},
{
"code": "COLL",
"limit": 75000,
"premium": {
"amount": "19630",
"currency": "USD"
}
}
],
"effectiveDate": "2026-08-10",
"expiresAt": "2026-09-09T00:00:00.000Z"
}
},
"evidence": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"quote": {
"quoteId": "iq_7e2345f3",
"vin": "KM8R44GE1RU700471",
"carrier": "sandbox-general",
"bindable": true,
"premium": {
"amount": "94565",
"currency": "USD"
},
"termMonths": 6,
"coverages": [
{
"code": "BI",
"limit": 93000,
"premium": {
"amount": "8847",
"currency": "USD"
}
},
{
"code": "PD",
"limit": 50000,
"premium": {
"amount": "16224",
"currency": "USD"
}
},
{
"code": "UMBI",
"limit": 38000,
"premium": {
"amount": "13361",
"currency": "USD"
}
},
{
"code": "UMPD",
"limit": 95000,
"premium": {
"amount": "18782",
"currency": "USD"
}
},
{
"code": "COMP",
"limit": 91000,
"premium": {
"amount": "17721",
"currency": "USD"
}
},
{
"code": "COLL",
"limit": 75000,
"premium": {
"amount": "19630",
"currency": "USD"
}
}
],
"effectiveDate": "2026-08-10",
"expiresAt": "2026-09-09T00:00:00.000Z"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "risk-money-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}rate
insurer.rate · GET /insurers/rate · gate key · sandbox · answers InsurerRate@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /KM8R44GE1RU700471 (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 { insurer } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurer.rate({"vin":"KM8R44GE1RU700471"})curl 'https://apis.vin/insurers/rate?vin=KM8R44GE1RU700471'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": "InsurerRate@1",
"value": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"rate": {
"vin": "KM8R44GE1RU700471",
"carrier": "sandbox-general",
"termMonths": 6,
"totalPremiumCents": 94565,
"currency": "USD",
"coverages": [
{
"code": "BI",
"limit": 93000,
"premiumCents": 8847
},
{
"code": "PD",
"limit": 50000,
"premiumCents": 16224
},
{
"code": "UMBI",
"limit": 38000,
"premiumCents": 13361
},
{
"code": "UMPD",
"limit": 95000,
"premiumCents": 18782
},
{
"code": "COMP",
"limit": 91000,
"premiumCents": 17721
},
{
"code": "COLL",
"limit": 75000,
"premiumCents": 19630
}
]
}
},
"evidence": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"rate": {
"vin": "KM8R44GE1RU700471",
"carrier": "sandbox-general",
"termMonths": 6,
"totalPremiumCents": 94565,
"currency": "USD",
"coverages": [
{
"code": "BI",
"limit": 93000,
"premiumCents": 8847
},
{
"code": "PD",
"limit": 50000,
"premiumCents": 16224
},
{
"code": "UMBI",
"limit": 38000,
"premiumCents": 13361
},
{
"code": "UMPD",
"limit": 95000,
"premiumCents": 18782
},
{
"code": "COMP",
"limit": 91000,
"premiumCents": 17721
},
{
"code": "COLL",
"limit": 75000,
"premiumCents": 19630
}
]
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "risk-money-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Apply & book
register
insurer.register · POST /insurers/register · gate offer · sandbox · answers InsurerRegister@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 — aggregator.vin serves this noun on its two routes: / (the landing) · /KM8R44GE1RU700471 (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 — Insurer.registered@1.
import { insurer } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurer.register({"vin":"KM8R44GE1RU700471"})curl -X POST https://apis.vin/insurers/register \
-H 'content-type: application/json' \
-d '{"vin":"KM8R44GE1RU700471"}'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": "InsurerRegister@1",
"value": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"registration": {
"status": "registered",
"mark": "sandbox-general",
"producerId": "sandbox-producer"
}
},
"evidence": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"registration": {
"status": "registered",
"mark": "sandbox-general",
"producerId": "sandbox-producer"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "risk-money-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}credential
insurer.credential · POST /insurers/credential · gate offer · sandbox · answers InsurerCredential@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 — aggregator.vin serves this noun on its two routes: / (the landing) · /KM8R44GE1RU700471 (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 — Insurer.credentialed@1.
import { insurer } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurer.credential({"vin":"KM8R44GE1RU700471"})curl -X POST https://apis.vin/insurers/credential \
-H 'content-type: application/json' \
-d '{"vin":"KM8R44GE1RU700471"}'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": "InsurerCredential@1",
"value": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"credential": {
"id": "CRED-e0836ec4",
"mark": "sandbox-general",
"scope": "quote-bind-service",
"status": "active"
}
},
"evidence": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"credential": {
"id": "CRED-e0836ec4",
"mark": "sandbox-general",
"scope": "quote-bind-service",
"status": "active"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "risk-money-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}claimOpen
insurer.claimOpen · POST /insurers/claim-open · gate offer · sandbox · answers InsurerClaimOpen@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 — aggregator.vin serves this noun on its two routes: / (the landing) · /KM8R44GE1RU700471 (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 — Insurer.claimOpened@1.
import { insurer } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurer.claimOpen({"vin":"KM8R44GE1RU700471"})curl -X POST https://apis.vin/insurers/claim-open \
-H 'content-type: application/json' \
-d '{"vin":"KM8R44GE1RU700471"}'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": "InsurerClaimOpen@1",
"value": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"claim": {
"status": "opened",
"id": "CLM-a18b9ed4",
"position": "Opened",
"lossType": "collision"
}
},
"evidence": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"claim": {
"status": "opened",
"id": "CLM-a18b9ed4",
"position": "Opened",
"lossType": "collision"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "risk-money-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Pay & settle
premiumCollect
insurer.premiumCollect · POST /insurers/premium-collect · gate offer · sandbox · answers InsurerPremiumCollect@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 — aggregator.vin serves this noun on its two routes: / (the landing) · /KM8R44GE1RU700471 (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 — Insurer.failed@1 · Insurer.premiumCollected@1.
import { insurer } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurer.premiumCollect({"vin":"KM8R44GE1RU700471"})curl -X POST https://apis.vin/insurers/premium-collect \
-H 'content-type: application/json' \
-d '{"vin":"KM8R44GE1RU700471"}'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": "InsurerPremiumCollect@1",
"value": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"collection": {
"amountCents": 94565,
"currency": "USD",
"termMonths": 6,
"status": "collected"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"collection": {
"amountCents": 94565,
"currency": "USD",
"termMonths": 6,
"status": "collected"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "risk-money-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}commissionRemit
insurer.commissionRemit · POST /insurers/commission-remit · gate offer · sandbox · answers InsurerCommissionRemit@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 — aggregator.vin serves this noun on its two routes: / (the landing) · /KM8R44GE1RU700471 (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 — Insurer.commissionRemitted@1 · Insurer.failed@1.
import { insurer } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurer.commissionRemit({"vin":"KM8R44GE1RU700471"})curl -X POST https://apis.vin/insurers/commission-remit \
-H 'content-type: application/json' \
-d '{"vin":"KM8R44GE1RU700471"}'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": "InsurerCommissionRemit@1",
"value": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"remittance": {
"producerId": "sandbox-producer",
"commissionCents": 9457,
"currency": "USD",
"basis": "premium-decile",
"status": "remitted"
}
},
"evidence": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"remittance": {
"producerId": "sandbox-producer",
"commissionCents": 9457,
"currency": "USD",
"basis": "premium-decile",
"status": "remitted"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "risk-money-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Authorize & resolve
payClaim
insurer.payClaim · POST /insurers/pay-claim · gate offer · sandbox · answers InsurerPayClaim@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 — aggregator.vin serves this noun on its two routes: / (the landing) · /KM8R44GE1RU700471 (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 — Insurer.claimPaid@1 · Insurer.failed@1.
import { insurer } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurer.payClaim({"vin":"KM8R44GE1RU700471"})curl -X POST https://apis.vin/insurers/pay-claim \
-H 'content-type: application/json' \
-d '{"vin":"KM8R44GE1RU700471"}'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": "InsurerPayClaim@1",
"value": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"payment": {
"status": "no-claim-on-file"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"payment": {
"status": "no-claim-on-file"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "risk-money-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}claimAdjudicate
insurer.claimAdjudicate · POST /insurers/claim-adjudicate · gate offer · sandbox · answers InsurerClaimAdjudicate@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 — aggregator.vin serves this noun on its two routes: / (the landing) · /KM8R44GE1RU700471 (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 — Insurer.claimAdjudicated@1.
import { insurer } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurer.claimAdjudicate({"vin":"KM8R44GE1RU700471"})curl -X POST https://apis.vin/insurers/claim-adjudicate \
-H 'content-type: application/json' \
-d '{"vin":"KM8R44GE1RU700471"}'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": "InsurerClaimAdjudicate@1",
"value": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"adjudication": {
"status": "no-claim-on-file"
}
},
"evidence": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"adjudication": {
"status": "no-claim-on-file"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "risk-money-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}More actions
bind
insurer.bind · POST /insurers/bind · gate offer · sandbox · answers InsurerBind@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 — aggregator.vin serves this noun on its two routes: / (the landing) · /KM8R44GE1RU700471 (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 — Insurer.bound@1.
import { insurer } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurer.bind({"vin":"KM8R44GE1RU700471"})curl -X POST https://apis.vin/insurers/bind \
-H 'content-type: application/json' \
-d '{"vin":"KM8R44GE1RU700471"}'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": "InsurerBind@1",
"value": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"policy": {
"policyNumber": "POL-950BB562",
"quoteId": "iq_7f234786",
"vin": "KM8R44GE1RU700471",
"carrier": "sandbox-general",
"status": "bound",
"premium": {
"amount": "94565",
"currency": "USD"
},
"termMonths": 6,
"coverages": [
{
"code": "BI",
"limit": 93000,
"premium": {
"amount": "8847",
"currency": "USD"
}
},
{
"code": "PD",
"limit": 50000,
"premium": {
"amount": "16224",
"currency": "USD"
}
},
{
"code": "UMBI",
"limit": 38000,
"premium": {
"amount": "13361",
"currency": "USD"
}
},
{
"code": "UMPD",
"limit": 95000,
"premium": {
"amount": "18782",
"currency": "USD"
}
},
{
"code": "COMP",
"limit": 91000,
"premium": {
"amount": "17721",
"currency": "USD"
}
},
{
"code": "COLL",
"limit": 75000,
"premium": {
"amount": "19630",
"currency": "USD"
}
}
],
"effectiveDate": "2026-08-10",
"expiresAt": "2027-02-06T00:00:00.000Z",
"producer": {
"licensed": true,
"producerId": "sandbox-producer",
"state": "CA"
}
}
},
"evidence": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"policy": {
"policyNumber": "POL-950BB562",
"quoteId": "iq_7f234786",
"vin": "KM8R44GE1RU700471",
"carrier": "sandbox-general",
"status": "bound",
"premium": {
"amount": "94565",
"currency": "USD"
},
"termMonths": 6,
"coverages": [
{
"code": "BI",
"limit": 93000,
"premium": {
"amount": "8847",
"currency": "USD"
}
},
{
"code": "PD",
"limit": 50000,
"premium": {
"amount": "16224",
"currency": "USD"
}
},
{
"code": "UMBI",
"limit": 38000,
"premium": {
"amount": "13361",
"currency": "USD"
}
},
{
"code": "UMPD",
"limit": 95000,
"premium": {
"amount": "18782",
"currency": "USD"
}
},
{
"code": "COMP",
"limit": 91000,
"premium": {
"amount": "17721",
"currency": "USD"
}
},
{
"code": "COLL",
"limit": 75000,
"premium": {
"amount": "19630",
"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": "risk-money-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}cancelPolicy
insurer.cancelPolicy · POST /insurers/cancel-policy · gate offer · sandbox · answers InsurerCancelPolicy@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 — aggregator.vin serves this noun on its two routes: / (the landing) · /KM8R44GE1RU700471 (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 — Insurer.policyCanceled@1.
import { insurer } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurer.cancelPolicy({"vin":"KM8R44GE1RU700471"})curl -X POST https://apis.vin/insurers/cancel-policy \
-H 'content-type: application/json' \
-d '{"vin":"KM8R44GE1RU700471"}'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": "InsurerCancelPolicy@1",
"value": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"cancellation": {
"status": "cancelled",
"basis": "pro-rata",
"unearnedRefundCents": 47283,
"currency": "USD"
}
},
"evidence": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"cancellation": {
"status": "cancelled",
"basis": "pro-rata",
"unearnedRefundCents": 47283,
"currency": "USD"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "risk-money-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}endorse
insurer.endorse · POST /insurers/endorse · gate offer · sandbox · answers InsurerEndorse@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 — aggregator.vin serves this noun on its two routes: / (the landing) · /KM8R44GE1RU700471 (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 — Insurer.endorsed@1.
import { insurer } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurer.endorse({"vin":"KM8R44GE1RU700471"})curl -X POST https://apis.vin/insurers/endorse \
-H 'content-type: application/json' \
-d '{"vin":"KM8R44GE1RU700471"}'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": "InsurerEndorse@1",
"value": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"endorsement": {
"id": "END-c94b66d8",
"change": "add-lienholder",
"effectiveOn": "2026-08-10",
"status": "endorsed"
}
},
"evidence": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"endorsement": {
"id": "END-c94b66d8",
"change": "add-lienholder",
"effectiveOn": "2026-08-10",
"status": "endorsed"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "risk-money-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}issuePolicy
insurer.issuePolicy · POST /insurers/issue-policy · gate offer · sandbox · answers InsurerIssuePolicy@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 — aggregator.vin serves this noun on its two routes: / (the landing) · /KM8R44GE1RU700471 (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 — Insurer.policyIssued@1.
import { insurer } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurer.issuePolicy({"vin":"KM8R44GE1RU700471"})curl -X POST https://apis.vin/insurers/issue-policy \
-H 'content-type: application/json' \
-d '{"vin":"KM8R44GE1RU700471"}'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": "InsurerIssuePolicy@1",
"value": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"policy": {
"policyNumber": "POL-950BB562",
"quoteId": "iq_7f234786",
"vin": "KM8R44GE1RU700471",
"carrier": "sandbox-general",
"status": "bound",
"premium": {
"amount": "94565",
"currency": "USD"
},
"termMonths": 6,
"coverages": [
{
"code": "BI",
"limit": 93000,
"premium": {
"amount": "8847",
"currency": "USD"
}
},
{
"code": "PD",
"limit": 50000,
"premium": {
"amount": "16224",
"currency": "USD"
}
},
{
"code": "UMBI",
"limit": 38000,
"premium": {
"amount": "13361",
"currency": "USD"
}
},
{
"code": "UMPD",
"limit": 95000,
"premium": {
"amount": "18782",
"currency": "USD"
}
},
{
"code": "COMP",
"limit": 91000,
"premium": {
"amount": "17721",
"currency": "USD"
}
},
{
"code": "COLL",
"limit": 75000,
"premium": {
"amount": "19630",
"currency": "USD"
}
}
],
"effectiveDate": "2026-08-10",
"expiresAt": "2027-02-06T00:00:00.000Z",
"producer": {
"licensed": true,
"producerId": "sandbox-producer",
"state": "CA"
}
}
},
"evidence": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"policy": {
"policyNumber": "POL-950BB562",
"quoteId": "iq_7f234786",
"vin": "KM8R44GE1RU700471",
"carrier": "sandbox-general",
"status": "bound",
"premium": {
"amount": "94565",
"currency": "USD"
},
"termMonths": 6,
"coverages": [
{
"code": "BI",
"limit": 93000,
"premium": {
"amount": "8847",
"currency": "USD"
}
},
{
"code": "PD",
"limit": 50000,
"premium": {
"amount": "16224",
"currency": "USD"
}
},
{
"code": "UMBI",
"limit": 38000,
"premium": {
"amount": "13361",
"currency": "USD"
}
},
{
"code": "UMPD",
"limit": 95000,
"premium": {
"amount": "18782",
"currency": "USD"
}
},
{
"code": "COMP",
"limit": 91000,
"premium": {
"amount": "17721",
"currency": "USD"
}
},
{
"code": "COLL",
"limit": 75000,
"premium": {
"amount": "19630",
"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": "risk-money-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}refundUnearned
insurer.refundUnearned · POST /insurers/refund-unearned · gate offer · sandbox · answers InsurerRefundUnearned@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 — aggregator.vin serves this noun on its two routes: / (the landing) · /KM8R44GE1RU700471 (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 — Insurer.failed@1 · Insurer.unearnedRefunded@1.
import { insurer } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insurer.refundUnearned({"vin":"KM8R44GE1RU700471"})curl -X POST https://apis.vin/insurers/refund-unearned \
-H 'content-type: application/json' \
-d '{"vin":"KM8R44GE1RU700471"}'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": "InsurerRefundUnearned@1",
"value": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"refund": {
"amountCents": 47283,
"currency": "USD",
"basis": "pro-rata",
"status": "refunded"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"partyId": "PTY-9eaf9827",
"type": "organization",
"name": "sandbox-general",
"identifiers": [
{
"kind": "carrier-mark",
"value": "sandbox-general"
},
{
"kind": "naic",
"value": "35772"
}
],
"roles": [
{
"role": "insurer"
}
],
"status": "active",
"vin": "KM8R44GE1RU700471",
"noun": "insurer",
"asOf": "2026-08-10",
"refund": {
"amountCents": 47283,
"currency": "USD",
"basis": "pro-rata",
"status": "refunded"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "risk-money-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.
Insurer
Relationships
| From | To | Cardinality | As |
|---|---|---|---|
insurance | insurer | *:1 | carried-by |
party | insurer | ISA | is-a |
Modeled
The noun drawn out — its record shape, its lifecycle, and how it is exercised end to end. 4 diagrams, rendered from the estate model.
Insurer · Class model
Insurer · Class model
Insurer · State machine
Insurer · State machine
Generated from the catalog. Every capability, answer, gate, and entity on this page is a rendered descriptor — it cannot drift from the wire.
insuranceClaim
The insuranceClaim noun — identity, lifecycle, events, and every capability as an anchored section: 17 capabilities, 0 live, 17 sandbox, 0 declared.
interior
The interior noun — identity, lifecycle, events, and every capability as an anchored section: 13 capabilities, 0 live, 13 sandbox, 0 declared.