docs.vin

insuranceClaim

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

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

Identity

NouninsuranceClaim
PillarServices (facets: 1 data · 12 services · 4 commerce)
Capabilities17 — 0 live · 17 sandbox · 0 declared
EntitiesClaim
Doorsaggregator.vin · fnol.vin
SDKVin.insuranceClaim.* from apis.vin
Address/catalog/insuranceClaim#{action} — the anchor IS the wire name minus insuranceClaim.

Lifecycle

ClaimClaimFSM: 7 states, 8 transitions — Opened · AcvDetermined · Approved · Denied · Appealed · Reversed · Settled. Each transition is a past-tense event on the record.

Events

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

Discover & read

status

insuranceClaim.status · GET /insurance-claims/status · gate none · sandbox · answers InsuranceClaimStatus@1

FieldTypeRequiredNotes
vinstringno

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

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

the SDK — insuranceClaim.status
import { insuranceClaim } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insuranceClaim.status({"vin":"5N1AZ3DSXTC105411"})
GET /insurance-claims/status
curl 'https://apis.vin/insurance-claims/status?vin=5N1AZ3DSXTC105411'

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

receipt · executed 2026-08-17T12:42:12.687Z · HTTP 200
{
  "type": "OK",
  "answers": "InsuranceClaimStatus@1",
  "value": {
    "claimNumber": "CLM-B4D7434E",
    "vin": "5N1AZ3DSXTC105411",
    "status": "paid",
    "open": false,
    "lossType": "collision",
    "asOf": "2026-08-10T00:00:00.000Z"
  },
  "evidence": {
    "claimNumber": "CLM-B4D7434E",
    "vin": "5N1AZ3DSXTC105411",
    "status": "paid",
    "open": false,
    "lossType": "collision",
    "asOf": "2026-08-10T00:00:00.000Z"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "insurance-rail-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

report

insuranceClaim.report · POST /insurance-claims/report · gate offer · sandbox · answers InsuranceClaimReport@1

FieldTypeRequiredNotes
vinstringno

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

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /5N1AZ3DSXTC105411 (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.

EmitsInsuranceClaim.fnolReported@1.

the SDK — insuranceClaim.report
import { insuranceClaim } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insuranceClaim.report({"vin":"5N1AZ3DSXTC105411"})
POST /insurance-claims/report
curl -X POST https://apis.vin/insurance-claims/report \
  -H 'content-type: application/json' \
  -d '{"vin":"5N1AZ3DSXTC105411"}'

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

receipt · executed 2026-08-17T12:42:12.681Z · HTTP 200
{
  "type": "OK",
  "answers": "InsuranceClaimReport@1",
  "value": {
    "claimNumber": "CLM-B4D7434E",
    "vin": "5N1AZ3DSXTC105411",
    "status": "reported",
    "fnolNumber": "fnol_d56e9938",
    "lossType": "collision",
    "lossDate": "2026-08-10",
    "reportedAt": "2026-08-10T00:00:00.000Z"
  },
  "evidence": {
    "claimNumber": "CLM-B4D7434E",
    "vin": "5N1AZ3DSXTC105411",
    "status": "reported",
    "fnolNumber": "fnol_d56e9938",
    "lossType": "collision",
    "lossDate": "2026-08-10",
    "reportedAt": "2026-08-10T00:00:00.000Z"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "insurance-rail-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

rentalCoverage

insuranceClaim.rentalCoverage · POST /insurance-claims/rental-coverage · gate offer · sandbox · answers InsuranceClaimRentalCoverage@1

FieldTypeRequiredNotes
vinstringno

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

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /5N1AZ3DSXTC105411 (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.

EmitsInsuranceClaim.failed@1 · InsuranceClaim.rentalCovered@1.

the SDK — insuranceClaim.rentalCoverage
import { insuranceClaim } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insuranceClaim.rentalCoverage({"vin":"5N1AZ3DSXTC105411"})
POST /insurance-claims/rental-coverage
curl -X POST https://apis.vin/insurance-claims/rental-coverage \
  -H 'content-type: application/json' \
  -d '{"vin":"5N1AZ3DSXTC105411"}'

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

receipt · executed 2026-08-17T12:42:12.672Z · HTTP 200
{
  "type": "OK",
  "answers": "InsuranceClaimRentalCoverage@1",
  "value": {
    "vin": "5N1AZ3DSXTC105411",
    "noun": "insuranceClaim",
    "asOf": "2026-08-10",
    "claim": {
      "status": "no-claim-on-file"
    }
  },
  "evidence": {
    "vin": "5N1AZ3DSXTC105411",
    "noun": "insuranceClaim",
    "asOf": "2026-08-10",
    "claim": {
      "status": "no-claim-on-file"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "claim-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Quote & price

estimate

insuranceClaim.estimate · POST /insurance-claims/estimate · gate offer · sandbox · answers InsuranceClaimEstimate@1

FieldTypeRequiredNotes
vinstringno

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

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /5N1AZ3DSXTC105411 (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.

EmitsInsuranceClaim.estimated@1.

the SDK — insuranceClaim.estimate
import { insuranceClaim } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insuranceClaim.estimate({"vin":"5N1AZ3DSXTC105411"})
POST /insurance-claims/estimate
curl -X POST https://apis.vin/insurance-claims/estimate \
  -H 'content-type: application/json' \
  -d '{"vin":"5N1AZ3DSXTC105411"}'

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

receipt · executed 2026-08-17T12:42:12.654Z · HTTP 200
{
  "type": "OK",
  "answers": "InsuranceClaimEstimate@1",
  "value": {
    "claimNumber": "CLM-B4D7434E",
    "vin": "5N1AZ3DSXTC105411",
    "status": "estimated",
    "estimate": {
      "parts": {
        "amount": "409975",
        "currency": "USD"
      },
      "labor": {
        "amount": "188095",
        "currency": "USD"
      },
      "total": {
        "amount": "598070",
        "currency": "USD"
      }
    },
    "totalLoss": false,
    "estimatedAt": "2026-08-10T00:00:00.000Z"
  },
  "evidence": {
    "claimNumber": "CLM-B4D7434E",
    "vin": "5N1AZ3DSXTC105411",
    "status": "estimated",
    "estimate": {
      "parts": {
        "amount": "409975",
        "currency": "USD"
      },
      "labor": {
        "amount": "188095",
        "currency": "USD"
      },
      "total": {
        "amount": "598070",
        "currency": "USD"
      }
    },
    "totalLoss": false,
    "estimatedAt": "2026-08-10T00:00:00.000Z"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "insurance-rail-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

diminishedValue

insuranceClaim.diminishedValue · POST /insurance-claims/diminished-value · gate key · sandbox · answers InsuranceClaimDiminishedValue@1

No input — this capability takes no request body.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /5N1AZ3DSXTC105411 (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.

EmitsInsuranceClaim.diminishedValueAssessed@1.

the SDK — insuranceClaim.diminishedValue
import { insuranceClaim } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insuranceClaim.diminishedValue()
POST /insurance-claims/diminished-value
curl -X POST https://apis.vin/insurance-claims/diminished-value \
  -H 'content-type: application/json' \
  -d '{}'

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

receipt · executed 2026-08-16T14:50:09.875Z · HTTP 200
{
  "type": "OK",
  "answers": "InsuranceClaimDiminishedValue@1",
  "value": {
    "vin": "1HGCM82633A004352",
    "noun": "insuranceClaim",
    "asOf": "2026-08-10",
    "claim": {
      "status": "no-claim-on-file"
    }
  },
  "evidence": {
    "vin": "1HGCM82633A004352",
    "noun": "insuranceClaim",
    "asOf": "2026-08-10",
    "claim": {
      "status": "no-claim-on-file"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "claim-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Apply & book

reserve

insuranceClaim.reserve · POST /insurance-claims/reserve · gate offer · sandbox · answers InsuranceClaimReserve@1

FieldTypeRequiredNotes
vinstringno

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

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /5N1AZ3DSXTC105411 (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.

EmitsInsuranceClaim.reserveSet@1.

the SDK — insuranceClaim.reserve
import { insuranceClaim } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insuranceClaim.reserve({"vin":"5N1AZ3DSXTC105411"})
POST /insurance-claims/reserve
curl -X POST https://apis.vin/insurance-claims/reserve \
  -H 'content-type: application/json' \
  -d '{"vin":"5N1AZ3DSXTC105411"}'

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

receipt · executed 2026-08-17T12:42:12.687Z · HTTP 200
{
  "type": "OK",
  "answers": "InsuranceClaimReserve@1",
  "value": {
    "claimNumber": "CLM-B4D7434E",
    "vin": "5N1AZ3DSXTC105411",
    "status": "reserve-set",
    "reserve": {
      "amount": "920181",
      "currency": "USD"
    },
    "category": "indemnity",
    "setAt": "2026-08-10T00:00:00.000Z"
  },
  "evidence": {
    "claimNumber": "CLM-B4D7434E",
    "vin": "5N1AZ3DSXTC105411",
    "status": "reserve-set",
    "reserve": {
      "amount": "920181",
      "currency": "USD"
    },
    "category": "indemnity",
    "setAt": "2026-08-10T00:00:00.000Z"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "insurance-rail-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

open

insuranceClaim.open · POST /insurance-claims/open · gate key · sandbox · answers InsuranceClaimOpen@1

FieldTypeRequiredNotes
vinstringyes
policystringno
lossobjectyes
lossOfUsebooleanno

Doorfnol.vin serves this noun on its two routes: / (the landing) · /5N1AZ3DSXTC105411 (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.

EmitsClaim.adjudicated@1 · Claim.assigned@1 · Claim.opened@1 · Claim.paid@1 · LossOfUse.benefited@1.

the SDK — insuranceClaim.open
import { insuranceClaim } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insuranceClaim.open({"vin":"5N1AZ3DSXTC105411","loss":{}})
POST /insurance-claims/open
curl -X POST https://apis.vin/insurance-claims/open \
  -H 'content-type: application/json' \
  -d '{"vin":"5N1AZ3DSXTC105411","loss":{}}'

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

receipt · executed 2026-08-17T12:42:12.658Z · HTTP 200
{
  "type": "OK",
  "answers": "InsuranceClaimOpen@1",
  "value": {
    "claimNumber": "CLM-B4D7434E",
    "vin": "5N1AZ3DSXTC105411",
    "status": "open",
    "lossType": "collision",
    "lossDate": "2026-08-10",
    "reportedAt": "2026-08-10",
    "reserve": {
      "amount": "500000",
      "currency": "USD"
    },
    "deductible": {
      "amount": "50000",
      "currency": "USD"
    }
  },
  "evidence": {
    "claimNumber": "CLM-B4D7434E",
    "vin": "5N1AZ3DSXTC105411",
    "status": "open",
    "lossType": "collision",
    "lossDate": "2026-08-10",
    "reportedAt": "2026-08-10",
    "reserve": {
      "amount": "500000",
      "currency": "USD"
    },
    "deductible": {
      "amount": "50000",
      "currency": "USD"
    }
  },
  "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": "insuranceClaim.open 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."
  }
}

assign

insuranceClaim.assign · POST /insurance-claims/assign · gate offer · sandbox · answers InsuranceClaimAssign@1

FieldTypeRequiredNotes
vinstringno

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

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /5N1AZ3DSXTC105411 (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.

EmitsInsuranceClaim.adjusterAssigned@1.

the SDK — insuranceClaim.assign
import { insuranceClaim } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insuranceClaim.assign({"vin":"5N1AZ3DSXTC105411"})
POST /insurance-claims/assign
curl -X POST https://apis.vin/insurance-claims/assign \
  -H 'content-type: application/json' \
  -d '{"vin":"5N1AZ3DSXTC105411"}'

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

receipt · executed 2026-08-17T12:42:12.653Z · HTTP 200
{
  "type": "OK",
  "answers": "InsuranceClaimAssign@1",
  "value": {
    "claimNumber": "CLM-B4D7434E",
    "vin": "5N1AZ3DSXTC105411",
    "status": "assigned",
    "adjuster": "adj_1492dafb",
    "queue": "auto-physical-damage",
    "assignedAt": "2026-08-10T00:00:00.000Z"
  },
  "evidence": {
    "claimNumber": "CLM-B4D7434E",
    "vin": "5N1AZ3DSXTC105411",
    "status": "assigned",
    "adjuster": "adj_1492dafb",
    "queue": "auto-physical-damage",
    "assignedAt": "2026-08-10T00:00:00.000Z"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "insurance-rail-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Pay & settle

pay

insuranceClaim.pay · POST /insurance-claims/pay · gate offer · sandbox · answers InsuranceClaimPay@1

FieldTypeRequiredNotes
vinstringno

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

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /5N1AZ3DSXTC105411 (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.

EmitsInsuranceClaim.failed@1 · InsuranceClaim.paid@1.

the SDK — insuranceClaim.pay
import { insuranceClaim } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insuranceClaim.pay({"vin":"5N1AZ3DSXTC105411"})
POST /insurance-claims/pay
curl -X POST https://apis.vin/insurance-claims/pay \
  -H 'content-type: application/json' \
  -d '{"vin":"5N1AZ3DSXTC105411"}'

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

receipt · executed 2026-08-17T12:42:12.666Z · HTTP 200
{
  "type": "OK",
  "answers": "InsuranceClaimPay@1",
  "value": {
    "claimNumber": "CLM-B4D7434E",
    "vin": "5N1AZ3DSXTC105411",
    "status": "paid",
    "payment": "pay_8ee7af13",
    "amount": {
      "amount": "603829",
      "currency": "USD"
    },
    "method": "ach",
    "payee": "Ada Sandbox",
    "paidAt": "2026-08-10T00:00:00.000Z"
  },
  "evidence": {
    "claimNumber": "CLM-B4D7434E",
    "vin": "5N1AZ3DSXTC105411",
    "status": "paid",
    "payment": "pay_8ee7af13",
    "amount": {
      "amount": "603829",
      "currency": "USD"
    },
    "method": "ach",
    "payee": "Ada Sandbox",
    "paidAt": "2026-08-10T00:00:00.000Z"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "insurance-rail-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Fulfill & operate

inspect

insuranceClaim.inspect · POST /insurance-claims/inspect · gate offer · sandbox · answers InsuranceClaimInspect@1

FieldTypeRequiredNotes
vinstringno

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

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /5N1AZ3DSXTC105411 (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.

EmitsInsuranceClaim.inspected@1 · InsuranceClaim.requested@1.

the SDK — insuranceClaim.inspect
import { insuranceClaim } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insuranceClaim.inspect({"vin":"5N1AZ3DSXTC105411"})
POST /insurance-claims/inspect
curl -X POST https://apis.vin/insurance-claims/inspect \
  -H 'content-type: application/json' \
  -d '{"vin":"5N1AZ3DSXTC105411"}'

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

receipt · executed 2026-08-17T12:42:12.656Z · HTTP 200
{
  "type": "OK",
  "answers": "InsuranceClaimInspect@1",
  "value": {
    "vin": "5N1AZ3DSXTC105411",
    "noun": "insuranceClaim",
    "asOf": "2026-08-10",
    "claim": {
      "status": "no-claim-on-file"
    }
  },
  "evidence": {
    "vin": "5N1AZ3DSXTC105411",
    "noun": "insuranceClaim",
    "asOf": "2026-08-10",
    "claim": {
      "status": "no-claim-on-file"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "claim-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Authorize & resolve

appeal

insuranceClaim.appeal · POST /insurance-claims/appeal · gate key · sandbox · answers InsuranceClaimAppeal@1

FieldTypeRequiredNotes
vinstringno
reasonstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /5N1AZ3DSXTC105411 (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.

EmitsClaim.appealed@1.

the SDK — insuranceClaim.appeal
import { insuranceClaim } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insuranceClaim.appeal({"vin":"5N1AZ3DSXTC105411","reason":"reason"})
POST /insurance-claims/appeal
curl -X POST https://apis.vin/insurance-claims/appeal \
  -H 'content-type: application/json' \
  -d '{"vin":"5N1AZ3DSXTC105411","reason":"reason"}'

adjudicate

insuranceClaim.adjudicate · POST /insurance-claims/adjudicate · gate offer · sandbox · answers InsuranceClaimAdjudicate@1

FieldTypeRequiredNotes
vinstringno

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

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /5N1AZ3DSXTC105411 (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.

EmitsClaim.denied@1 · Claim.reversed@1 · Claim.upheld@1 · InsuranceClaim.adjudicated@1.

the SDK — insuranceClaim.adjudicate
import { insuranceClaim } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insuranceClaim.adjudicate({"vin":"5N1AZ3DSXTC105411"})
POST /insurance-claims/adjudicate
curl -X POST https://apis.vin/insurance-claims/adjudicate \
  -H 'content-type: application/json' \
  -d '{"vin":"5N1AZ3DSXTC105411"}'

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

receipt · executed 2026-08-17T12:42:12.653Z · HTTP 200
{
  "type": "OK",
  "answers": "InsuranceClaimAdjudicate@1",
  "value": {
    "claimNumber": "CLM-B4D7434E",
    "vin": "5N1AZ3DSXTC105411",
    "status": "adjudicated",
    "decision": "approved",
    "grossLoss": {
      "amount": "653829",
      "currency": "USD"
    },
    "deductible": {
      "amount": "50000",
      "currency": "USD"
    },
    "payable": {
      "amount": "603829",
      "currency": "USD"
    },
    "adjudicatedAt": "2026-08-10T00:00:00.000Z"
  },
  "evidence": {
    "claimNumber": "CLM-B4D7434E",
    "vin": "5N1AZ3DSXTC105411",
    "status": "adjudicated",
    "decision": "approved",
    "grossLoss": {
      "amount": "653829",
      "currency": "USD"
    },
    "deductible": {
      "amount": "50000",
      "currency": "USD"
    },
    "payable": {
      "amount": "603829",
      "currency": "USD"
    },
    "adjudicatedAt": "2026-08-10T00:00:00.000Z"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "insurance-rail-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

appraisalDispute

insuranceClaim.appraisalDispute · POST /insurance-claims/appraisal-dispute · gate key · sandbox · answers InsuranceClaimAppraisalDispute@1

No input — this capability takes no request body.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /5N1AZ3DSXTC105411 (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.

EmitsInsuranceClaim.appraisalDisputed@1.

the SDK — insuranceClaim.appraisalDispute
import { insuranceClaim } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insuranceClaim.appraisalDispute()
POST /insurance-claims/appraisal-dispute
curl -X POST https://apis.vin/insurance-claims/appraisal-dispute \
  -H 'content-type: application/json' \
  -d '{}'

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

receipt · executed 2026-08-16T14:50:09.875Z · HTTP 200
{
  "type": "OK",
  "answers": "InsuranceClaimAppraisalDispute@1",
  "value": {
    "vin": "1HGCM82633A004352",
    "noun": "insuranceClaim",
    "asOf": "2026-08-10",
    "claim": {
      "status": "no-claim-on-file"
    }
  },
  "evidence": {
    "vin": "1HGCM82633A004352",
    "noun": "insuranceClaim",
    "asOf": "2026-08-10",
    "claim": {
      "status": "no-claim-on-file"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "claim-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

More actions

deductible

insuranceClaim.deductible · POST /insurance-claims/deductible · gate offer · sandbox · answers InsuranceClaimDeductible@1

FieldTypeRequiredNotes
vinstringno

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

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /5N1AZ3DSXTC105411 (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.

EmitsInsuranceClaim.deductibleCollected@1 · InsuranceClaim.failed@1.

the SDK — insuranceClaim.deductible
import { insuranceClaim } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insuranceClaim.deductible({"vin":"5N1AZ3DSXTC105411"})
POST /insurance-claims/deductible
curl -X POST https://apis.vin/insurance-claims/deductible \
  -H 'content-type: application/json' \
  -d '{"vin":"5N1AZ3DSXTC105411"}'

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

receipt · executed 2026-08-17T12:42:12.653Z · HTTP 200
{
  "type": "OK",
  "answers": "InsuranceClaimDeductible@1",
  "value": {
    "vin": "5N1AZ3DSXTC105411",
    "noun": "insuranceClaim",
    "asOf": "2026-08-10",
    "claim": {
      "status": "no-claim-on-file"
    }
  },
  "evidence": {
    "vin": "5N1AZ3DSXTC105411",
    "noun": "insuranceClaim",
    "asOf": "2026-08-10",
    "claim": {
      "status": "no-claim-on-file"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "claim-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

intake

insuranceClaim.intake · POST /insurance-claims/intake · gate offer · sandbox · answers InsuranceClaimIntake@1

FieldTypeRequiredNotes
vinstringno

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

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /5N1AZ3DSXTC105411 (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.

EmitsInsuranceClaim.intakeCaptured@1.

the SDK — insuranceClaim.intake
import { insuranceClaim } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insuranceClaim.intake({"vin":"5N1AZ3DSXTC105411"})
POST /insurance-claims/intake
curl -X POST https://apis.vin/insurance-claims/intake \
  -H 'content-type: application/json' \
  -d '{"vin":"5N1AZ3DSXTC105411"}'

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

receipt · executed 2026-08-17T12:42:12.658Z · HTTP 200
{
  "type": "OK",
  "answers": "InsuranceClaimIntake@1",
  "value": {
    "claimNumber": "CLM-B4D7434E",
    "vin": "5N1AZ3DSXTC105411",
    "status": "intake",
    "lossType": "collision",
    "lossDate": "2026-08-10",
    "claimant": "Ada Sandbox",
    "capturedAt": "2026-08-10T00:00:00.000Z"
  },
  "evidence": {
    "claimNumber": "CLM-B4D7434E",
    "vin": "5N1AZ3DSXTC105411",
    "status": "intake",
    "lossType": "collision",
    "lossDate": "2026-08-10",
    "claimant": "Ada Sandbox",
    "capturedAt": "2026-08-10T00:00:00.000Z"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "insurance-rail-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

subrogate

insuranceClaim.subrogate · POST /insurance-claims/subrogate · gate offer · sandbox · answers InsuranceClaimSubrogate@1

FieldTypeRequiredNotes
vinstringno

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

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /5N1AZ3DSXTC105411 (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.

EmitsInsuranceClaim.subrogated@1.

the SDK — insuranceClaim.subrogate
import { insuranceClaim } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insuranceClaim.subrogate({"vin":"5N1AZ3DSXTC105411"})
POST /insurance-claims/subrogate
curl -X POST https://apis.vin/insurance-claims/subrogate \
  -H 'content-type: application/json' \
  -d '{"vin":"5N1AZ3DSXTC105411"}'

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

receipt · executed 2026-08-17T12:42:12.691Z · HTTP 200
{
  "type": "OK",
  "answers": "InsuranceClaimSubrogate@1",
  "value": {
    "claimNumber": "CLM-B4D7434E",
    "vin": "5N1AZ3DSXTC105411",
    "status": "subrogating",
    "subrogationId": "subro_25698160",
    "atFaultParty": "third-party-carrier",
    "demand": {
      "amount": "271392",
      "currency": "USD"
    },
    "openedAt": "2026-08-10T00:00:00.000Z"
  },
  "evidence": {
    "claimNumber": "CLM-B4D7434E",
    "vin": "5N1AZ3DSXTC105411",
    "status": "subrogating",
    "subrogationId": "subro_25698160",
    "atFaultParty": "third-party-carrier",
    "demand": {
      "amount": "271392",
      "currency": "USD"
    },
    "openedAt": "2026-08-10T00:00:00.000Z"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "insurance-rail-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

supplement

insuranceClaim.supplement · POST /insurance-claims/supplement · gate offer · sandbox · answers InsuranceClaimSupplement@1

FieldTypeRequiredNotes
vinstringno

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

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /5N1AZ3DSXTC105411 (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.

EmitsInsuranceClaim.supplemented@1.

the SDK — insuranceClaim.supplement
import { insuranceClaim } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await insuranceClaim.supplement({"vin":"5N1AZ3DSXTC105411"})
POST /insurance-claims/supplement
curl -X POST https://apis.vin/insurance-claims/supplement \
  -H 'content-type: application/json' \
  -d '{"vin":"5N1AZ3DSXTC105411"}'

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

receipt · executed 2026-08-17T12:42:12.691Z · HTTP 200
{
  "type": "OK",
  "answers": "InsuranceClaimSupplement@1",
  "value": {
    "vin": "5N1AZ3DSXTC105411",
    "noun": "insuranceClaim",
    "asOf": "2026-08-10",
    "claim": {
      "status": "no-claim-on-file"
    }
  },
  "evidence": {
    "vin": "5N1AZ3DSXTC105411",
    "noun": "insuranceClaim",
    "asOf": "2026-08-10",
    "claim": {
      "status": "no-claim-on-file"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "claim-desk-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Data model

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

Claim

Schema

PropertyTypeNotes
ididclm_
vinstring
lossTypeenum
adjusterIdref→Party
acvmoney
settlementmoney
statusClaimFSM

Relationships

FromToCardinalityAs
insuranceClaimvehicle*:1on
insuranceClaiminsurance1:0..1against
insuranceClaimsalvage1:0..1total-loss to

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.

InsuranceClaim · Class model

InsuranceClaim · State machine

InsuranceClaim · Sequence


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