conditionReport
The conditionReport noun — identity, lifecycle, events, and every capability as an anchored section: 23 capabilities, 0 live, 23 sandbox, 0 declared.
conditionReport is one of the estate's 317 automotive nouns — a job a car needs done. It carries 23 capabilities: 0 live, 23 sandbox, 0 declared · doors aggregator.vin.
Identity
| Noun | conditionReport |
| Pillar | Data (facets: 9 data · 9 services · 5 commerce) |
| Capabilities | 23 — 0 live · 23 sandbox · 0 declared |
| Entities | ConditionReport |
| Doors | aggregator.vin |
| SDK | Vin.conditionReport.* from apis.vin |
| Address | /catalog/conditionReport#{action} — the anchor IS the wire name minus conditionReport. |
Events
The vocabulary this noun can append to the record — 30 past-tense, versioned event types, each linked to the capability that emits it:
ConditionReport.annotateRequested@1— emitted byannotateConditionReport.annotated@1— emitted byannotateConditionReport.captureFailed@1— emitted bycaptureConditionReport.captureRequested@1— emitted bycaptureConditionReport.captured@1— emitted bycaptureConditionReport.completed@1— emitted byorderConditionReport.decoded@1— emitted bydecodeConditionReport.dispatched@1— emitted byorderConditionReport.disputeRequested@1— emitted bydisputeConditionReport.disputed@1— emitted bydisputeConditionReport.failed@1— emitted bypay·quoteConditionReport.generateRequested@1— emitted bygenerateConditionReport.generated@1— emitted bygenerateConditionReport.graded@1— emitted bygradeConditionReport.guaranteed@1— emitted byguaranteeConditionReport.ordered@1— emitted byorderConditionReport.paid@1— emitted bypayConditionReport.payFailed@1— emitted bypayConditionReport.payRequested@1— emitted bypayConditionReport.performed@1— emitted byperformConditionReport.published@1— emitted bypublishConditionReport.quoted@1— emitted byquoteConditionReport.reGradeRequested@1— emitted byreGradeConditionReport.reGraded@1— emitted byreGradeConditionReport.requested@1— emitted byperform·requestConditionReport.updateRequested@1— emitted byupdateConditionReport.updated@1— emitted byupdateConditionReport.warrantyAttachRequested@1— emitted bywarrantyAttachConditionReport.warrantyAttached@1— emitted bywarrantyAttachServiceOrder.settled@1— emitted byorder
Discover & read
read
conditionReport.read · GET /condition-reports/read · gate none · sandbox · answers ConditionReportRead@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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 { conditionReport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.read({"vin":"1FT8W3BT3TEC01831"})curl 'https://apis.vin/condition-reports/read?vin=1FT8W3BT3TEC01831'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": "ConditionReportRead@1",
"value": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"report": {
"id": "CR-7d341872",
"status": "complete",
"grade": "clean",
"scoreTenths": 45,
"damageCount": 0
}
},
"evidence": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"report": {
"id": "CR-7d341872",
"status": "complete",
"grade": "clean",
"scoreTenths": 45,
"damageCount": 0
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}decode
conditionReport.decode · GET /condition-reports/decode · gate key · sandbox · answers ConditionReportDecode@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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 — ConditionReport.decoded@1.
import { conditionReport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.decode({"vin":"1FT8W3BT3TEC01831"})curl 'https://apis.vin/condition-reports/decode?vin=1FT8W3BT3TEC01831'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": "ConditionReportDecode@1",
"value": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"report": {
"id": "CR-7d341872",
"status": "complete",
"grade": "clean",
"scoreTenths": 45,
"damageCount": 0
}
},
"evidence": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"report": {
"id": "CR-7d341872",
"status": "complete",
"grade": "clean",
"scoreTenths": 45,
"damageCount": 0
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}history
conditionReport.history · GET /condition-reports/history · gate none · sandbox · answers ConditionReportHistory@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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 { conditionReport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.history({"vin":"1FT8W3BT3TEC01831"})curl 'https://apis.vin/condition-reports/history?vin=1FT8W3BT3TEC01831'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": "ConditionReportHistory@1",
"value": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"events": [
{
"date": "2024-03-14",
"kind": "routine",
"description": "routine condition report record"
}
]
},
"evidence": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"events": [
{
"date": "2024-03-14",
"kind": "routine",
"description": "routine condition report record"
}
]
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}verify
conditionReport.verify · GET /condition-reports/verify · gate none · sandbox · answers ConditionReportVerify@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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 { conditionReport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.verify({"vin":"1FT8W3BT3TEC01831"})curl 'https://apis.vin/condition-reports/verify?vin=1FT8W3BT3TEC01831'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": "ConditionReportVerify@1",
"value": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"reportId": "CR-7d341872",
"verified": true,
"grade": "clean"
},
"evidence": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"reportId": "CR-7d341872",
"verified": true,
"grade": "clean"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}compare
conditionReport.compare · GET /condition-reports/compare · gate none · sandbox · answers ConditionReportCompare@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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 { conditionReport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.compare({"vin":"1FT8W3BT3TEC01831"})curl 'https://apis.vin/condition-reports/compare?vin=1FT8W3BT3TEC01831'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": "ConditionReportCompare@1",
"value": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"reportId": "CR-7d341872",
"priorGrade": "clean",
"delta": "none",
"consistent": true
},
"evidence": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"reportId": "CR-7d341872",
"priorGrade": "clean",
"delta": "none",
"consistent": true
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}grade
conditionReport.grade · GET /condition-reports/grade · gate key · sandbox · answers ConditionReportGrade@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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 — ConditionReport.graded@1.
import { conditionReport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.grade({"vin":"1FT8W3BT3TEC01831"})curl 'https://apis.vin/condition-reports/grade?vin=1FT8W3BT3TEC01831'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": "ConditionReportGrade@1",
"value": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"reportId": "CR-7d341872",
"grade": "clean",
"scoreTenths": 45,
"requestedVerb": "grade"
},
"evidence": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"reportId": "CR-7d341872",
"grade": "clean",
"scoreTenths": 45,
"requestedVerb": "grade"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}reGrade
conditionReport.reGrade · POST /condition-reports/re-grade · gate offer · sandbox · answers ConditionReportReGrade@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) · /1FT8W3BT3TEC01831 (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 — ConditionReport.reGradeRequested@1 · ConditionReport.reGraded@1.
import { conditionReport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.reGrade({"vin":"1FT8W3BT3TEC01831"})curl -X POST https://apis.vin/condition-reports/re-grade \
-H 'content-type: application/json' \
-d '{"vin":"1FT8W3BT3TEC01831"}'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": "ConditionReportReGrade@1",
"value": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"reportId": "CR-7d341872",
"grade": "clean",
"scoreTenths": 45,
"requestedVerb": "reGrade"
},
"evidence": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"reportId": "CR-7d341872",
"grade": "clean",
"scoreTenths": 45,
"requestedVerb": "reGrade"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Quote & price
quote
conditionReport.quote · POST /condition-reports/quote · gate offer · sandbox · answers ConditionReportQuote@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) · /1FT8W3BT3TEC01831 (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 — ConditionReport.failed@1 · ConditionReport.quoted@1.
import { conditionReport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.quote({"vin":"1FT8W3BT3TEC01831"})curl -X POST https://apis.vin/condition-reports/quote \
-H 'content-type: application/json' \
-d '{"vin":"1FT8W3BT3TEC01831"}'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": "ConditionReportQuote@1",
"value": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"grade": "clean",
"quote": {
"id": "CRQ-63a8e949",
"amountCents": 15000,
"currency": "USD",
"status": "extended"
}
},
"evidence": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"grade": "clean",
"quote": {
"id": "CRQ-63a8e949",
"amountCents": 15000,
"currency": "USD",
"status": "extended"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Apply & book
request
conditionReport.request · POST /condition-reports/request · gate offer · sandbox · answers ConditionReportRequest@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) · /1FT8W3BT3TEC01831 (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 — ConditionReport.requested@1.
import { conditionReport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.request({"vin":"1FT8W3BT3TEC01831"})curl -X POST https://apis.vin/condition-reports/request \
-H 'content-type: application/json' \
-d '{"vin":"1FT8W3BT3TEC01831"}'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": "ConditionReportRequest@1",
"value": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"report": {
"id": "CR-7d341872",
"status": "requested",
"grade": "clean",
"scoreTenths": 45
}
},
"evidence": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"report": {
"id": "CR-7d341872",
"status": "requested",
"grade": "clean",
"scoreTenths": 45
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}order
conditionReport.order · POST /condition-reports/order · gate offer · sandbox · answers ConditionReportOrder@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) · /1FT8W3BT3TEC01831 (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 — ConditionReport.completed@1 · ConditionReport.dispatched@1 · ConditionReport.ordered@1 · ServiceOrder.settled@1.
import { conditionReport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.order({"vin":"1FT8W3BT3TEC01831"})curl -X POST https://apis.vin/condition-reports/order \
-H 'content-type: application/json' \
-d '{"vin":"1FT8W3BT3TEC01831"}'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": "ConditionReportOrder@1",
"value": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"order": {
"id": "ORD-a3052391",
"item": "condition report",
"status": "placed",
"amountCents": 15000,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"order": {
"id": "ORD-a3052391",
"item": "condition report",
"status": "placed",
"amountCents": 15000,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Pay & settle
pay
conditionReport.pay · POST /condition-reports/pay · gate offer · sandbox · answers ConditionReportPay@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) · /1FT8W3BT3TEC01831 (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 — ConditionReport.failed@1 · ConditionReport.paid@1 · ConditionReport.payFailed@1 · ConditionReport.payRequested@1.
import { conditionReport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.pay({"vin":"1FT8W3BT3TEC01831"})curl -X POST https://apis.vin/condition-reports/pay \
-H 'content-type: application/json' \
-d '{"vin":"1FT8W3BT3TEC01831"}'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": "ConditionReportPay@1",
"value": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"payment": {
"id": "PAY-2e452877",
"status": "settled",
"amountCents": 15000,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"payment": {
"id": "PAY-2e452877",
"status": "settled",
"amountCents": 15000,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}capture
conditionReport.capture · POST /condition-reports/capture · gate offer · sandbox · answers ConditionReportCapture@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) · /1FT8W3BT3TEC01831 (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 — ConditionReport.captureFailed@1 · ConditionReport.captureRequested@1 · ConditionReport.captured@1.
import { conditionReport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.capture({"vin":"1FT8W3BT3TEC01831"})curl -X POST https://apis.vin/condition-reports/capture \
-H 'content-type: application/json' \
-d '{"vin":"1FT8W3BT3TEC01831"}'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": "ConditionReportCapture@1",
"value": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"report": {
"id": "CR-7d341872",
"status": "complete",
"grade": "clean",
"scoreTenths": 45
}
},
"evidence": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"report": {
"id": "CR-7d341872",
"status": "complete",
"grade": "clean",
"scoreTenths": 45
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Fulfill & operate
perform
conditionReport.perform · POST /condition-reports/perform · gate offer · sandbox · answers ConditionReportPerform@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) · /1FT8W3BT3TEC01831 (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 — ConditionReport.performed@1 · ConditionReport.requested@1.
import { conditionReport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.perform({"vin":"1FT8W3BT3TEC01831"})curl -X POST https://apis.vin/condition-reports/perform \
-H 'content-type: application/json' \
-d '{"vin":"1FT8W3BT3TEC01831"}'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": "ConditionReportPerform@1",
"value": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"report": {
"id": "CR-7d341872",
"status": "complete",
"grade": "clean",
"scoreTenths": 45
}
},
"evidence": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"report": {
"id": "CR-7d341872",
"status": "complete",
"grade": "clean",
"scoreTenths": 45
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}generate
conditionReport.generate · POST /condition-reports/generate · gate offer · sandbox · answers ConditionReportGenerate@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) · /1FT8W3BT3TEC01831 (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 — ConditionReport.generateRequested@1 · ConditionReport.generated@1.
import { conditionReport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.generate({"vin":"1FT8W3BT3TEC01831"})curl -X POST https://apis.vin/condition-reports/generate \
-H 'content-type: application/json' \
-d '{"vin":"1FT8W3BT3TEC01831"}'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": "ConditionReportGenerate@1",
"value": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"report": {
"id": "CR-7d341872",
"status": "complete",
"grade": "clean",
"scoreTenths": 45
}
},
"evidence": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"report": {
"id": "CR-7d341872",
"status": "complete",
"grade": "clean",
"scoreTenths": 45
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}publish
conditionReport.publish · POST /condition-reports/publish · gate offer · sandbox · answers ConditionReportPublish@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) · /1FT8W3BT3TEC01831 (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 — ConditionReport.published@1.
import { conditionReport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.publish({"vin":"1FT8W3BT3TEC01831"})curl -X POST https://apis.vin/condition-reports/publish \
-H 'content-type: application/json' \
-d '{"vin":"1FT8W3BT3TEC01831"}'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": "ConditionReportPublish@1",
"value": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"report": {
"id": "CR-7d341872",
"status": "published",
"grade": "clean",
"scoreTenths": 45,
"damageCount": 0
}
},
"evidence": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"report": {
"id": "CR-7d341872",
"status": "published",
"grade": "clean",
"scoreTenths": 45,
"damageCount": 0
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}update
conditionReport.update · POST /condition-reports/update · gate offer · sandbox · answers ConditionReportUpdate@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) · /1FT8W3BT3TEC01831 (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 — ConditionReport.updateRequested@1 · ConditionReport.updated@1.
import { conditionReport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.update({"vin":"1FT8W3BT3TEC01831"})curl -X POST https://apis.vin/condition-reports/update \
-H 'content-type: application/json' \
-d '{"vin":"1FT8W3BT3TEC01831"}'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": "ConditionReportUpdate@1",
"value": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"report": {
"id": "CR-7d341872",
"status": "updated",
"grade": "clean",
"revision": 3
}
},
"evidence": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"report": {
"id": "CR-7d341872",
"status": "updated",
"grade": "clean",
"revision": 3
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}annotate
conditionReport.annotate · POST /condition-reports/annotate · gate offer · sandbox · answers ConditionReportAnnotate@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) · /1FT8W3BT3TEC01831 (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 — ConditionReport.annotateRequested@1 · ConditionReport.annotated@1.
import { conditionReport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.annotate({"vin":"1FT8W3BT3TEC01831"})curl -X POST https://apis.vin/condition-reports/annotate \
-H 'content-type: application/json' \
-d '{"vin":"1FT8W3BT3TEC01831"}'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": "ConditionReportAnnotate@1",
"value": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"report": {
"id": "CR-7d341872",
"status": "updated",
"grade": "clean",
"revision": 3
}
},
"evidence": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"report": {
"id": "CR-7d341872",
"status": "updated",
"grade": "clean",
"revision": 3
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Authorize & resolve
dispute
conditionReport.dispute · POST /condition-reports/dispute · gate offer · sandbox · answers ConditionReportDispute@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) · /1FT8W3BT3TEC01831 (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 — ConditionReport.disputeRequested@1 · ConditionReport.disputed@1.
import { conditionReport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.dispute({"vin":"1FT8W3BT3TEC01831"})curl -X POST https://apis.vin/condition-reports/dispute \
-H 'content-type: application/json' \
-d '{"vin":"1FT8W3BT3TEC01831"}'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": "ConditionReportDispute@1",
"value": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"dispute": {
"id": "DSP-b6330835",
"status": "no-grounds"
}
},
"evidence": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"dispute": {
"id": "DSP-b6330835",
"status": "no-grounds"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}More actions
audioEngineTest
conditionReport.audioEngineTest · GET /condition-reports/audio-engine-test · gate none · sandbox · answers ConditionReportAudioEngineTest@1
No input — this capability takes no request body.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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 { conditionReport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.audioEngineTest()curl 'https://apis.vin/condition-reports/audio-engine-test'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": "ConditionReportAudioEngineTest@1",
"value": {
"vin": "1HGCM82633A004352",
"noun": "conditionReport",
"asOf": "2026-08-10",
"reportId": "CR-2ff1fbd6",
"verdict": "pass",
"engineAudio": "nominal"
},
"evidence": {
"vin": "1HGCM82633A004352",
"noun": "conditionReport",
"asOf": "2026-08-10",
"reportId": "CR-2ff1fbd6",
"verdict": "pass",
"engineAudio": "nominal"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}damageMap
conditionReport.damageMap · GET /condition-reports/damage-map · gate none · sandbox · answers ConditionReportDamageMap@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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 { conditionReport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.damageMap({"vin":"1FT8W3BT3TEC01831"})curl 'https://apis.vin/condition-reports/damage-map?vin=1FT8W3BT3TEC01831'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": "ConditionReportDamageMap@1",
"value": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"reportId": "CR-7d341872",
"grade": "clean",
"damages": [],
"count": 0
},
"evidence": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"reportId": "CR-7d341872",
"grade": "clean",
"damages": [],
"count": 0
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}guarantee
conditionReport.guarantee · POST /condition-reports/guarantee · gate key · sandbox · answers ConditionReportGuarantee@1
No input — this capability takes no request body.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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 — ConditionReport.guaranteed@1.
import { conditionReport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.guarantee()curl -X POST https://apis.vin/condition-reports/guarantee \
-H 'content-type: application/json' \
-d '{}'Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.
{
"type": "OK",
"answers": "ConditionReportGuarantee@1",
"value": {
"vin": "1HGCM82633A004352",
"noun": "conditionReport",
"asOf": "2026-08-10",
"reportId": "CR-2ff1fbd6",
"guaranteed": true
},
"evidence": {
"vin": "1HGCM82633A004352",
"noun": "conditionReport",
"asOf": "2026-08-10",
"reportId": "CR-2ff1fbd6",
"guaranteed": true
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}virtualLift
conditionReport.virtualLift · GET /condition-reports/virtual-lift · gate none · sandbox · answers ConditionReportVirtualLift@1
No input — this capability takes no request body.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1FT8W3BT3TEC01831 (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 { conditionReport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.virtualLift()curl 'https://apis.vin/condition-reports/virtual-lift'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": "ConditionReportVirtualLift@1",
"value": {
"vin": "1HGCM82633A004352",
"noun": "conditionReport",
"asOf": "2026-08-10",
"reportId": "CR-2ff1fbd6",
"undercarriage": "clean"
},
"evidence": {
"vin": "1HGCM82633A004352",
"noun": "conditionReport",
"asOf": "2026-08-10",
"reportId": "CR-2ff1fbd6",
"undercarriage": "clean"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}warrantyAttach
conditionReport.warrantyAttach · POST /condition-reports/warranty-attach · gate offer · sandbox · answers ConditionReportWarrantyAttach@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) · /1FT8W3BT3TEC01831 (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 — ConditionReport.warrantyAttachRequested@1 · ConditionReport.warrantyAttached@1.
import { conditionReport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await conditionReport.warrantyAttach({"vin":"1FT8W3BT3TEC01831"})curl -X POST https://apis.vin/condition-reports/warranty-attach \
-H 'content-type: application/json' \
-d '{"vin":"1FT8W3BT3TEC01831"}'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": "ConditionReportWarrantyAttach@1",
"value": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"reportId": "CR-7d341872",
"attach": {
"attached": false,
"reason": "coverage-expired"
}
},
"evidence": {
"vin": "1FT8W3BT3TEC01831",
"noun": "conditionReport",
"asOf": "2026-08-10",
"reportId": "CR-7d341872",
"attach": {
"attached": false,
"reason": "coverage-expired"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-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.
ConditionReport
Schema
| Property | Type |
|---|---|
vin | string |
grade | string |
damages | Damage[] |
Relationships
| From | To | Cardinality | As |
|---|---|---|---|
inspection | conditionReport | 1:0..1 | produces |
Generated from the catalog. Every capability, answer, gate, and entity on this page is a rendered descriptor — it cannot drift from the wire.
charging
The charging noun — identity, lifecycle, events, and every capability as an anchored section: 21 capabilities, 0 live, 21 sandbox, 0 declared.
connectedCar
The connectedCar noun — identity, lifecycle, events, and every capability as an anchored section: 15 capabilities, 0 live, 15 sandbox, 0 declared.