hvac
The hvac noun — identity, lifecycle, events, and every capability as an anchored section: 26 capabilities, 0 live, 26 sandbox, 0 declared.
hvac is one of the estate's 317 automotive nouns — a job a car needs done. It carries 26 capabilities: 0 live, 26 sandbox, 0 declared · doors aggregator.vin.
Identity
| Noun | hvac |
| Pillar | Services (facets: 9 data · 11 services · 6 commerce) |
| Capabilities | 26 — 0 live · 26 sandbox · 0 declared |
| Entities | RepairOrder |
| Doors | aggregator.vin |
| SDK | Vin.hvac.* from apis.vin |
| Address | /catalog/hvac#{action} — the anchor IS the wire name minus hvac. |
Events
The vocabulary this noun can append to the record — 36 past-tense, versioned event types, each linked to the capability that emits it:
Hvac.blendDoorRepaired@1— emitted byblendDoorRepairHvac.cabinFilterReplaced@1— emitted bycabinFilterReplaceHvac.charged@1— emitted bypayHvac.completed@1— emitted byorderHvac.compressorReplaceFailed@1— emitted bycompressorReplaceHvac.compressorReplaceRequested@1— emitted bycompressorReplaceHvac.compressorReplaced@1— emitted bycompressorReplaceHvac.diagnosed@1— emitted bydiagnoseHvac.dispatched@1— emitted byorderHvac.estimateRequested@1— emitted byestimateHvac.estimated@1— emitted byestimateHvac.evacFailed@1— emitted byevacHvac.evacRequested@1— emitted byevacHvac.evaced@1— emitted byevacHvac.evacuated@1— emitted byevacHvac.inspectRequested@1— emitted byinspectHvac.inspected@1— emitted byinspectHvac.leakDetectRequested@1— emitted byleakDetectHvac.leakDetected@1— emitted byleakDetectHvac.ordered@1— emitted byorderHvac.paid@1— emitted bypayHvac.payFailed@1— emitted bypayHvac.payRequested@1— emitted bypayHvac.quoted@1— emitted byquoteHvac.rechargeFailed@1— emitted byrechargeHvac.rechargeRequested@1— emitted byrechargeHvac.recharged@1— emitted byrechargeHvac.refrigerantAnalyzed@1— emitted byrefrigerantAnalysisHvac.refunded@1— emitted byrefundHvac.repaired@1— emitted byrepairHvac.replaced@1— emitted byreplaceHvac.warrantyClaimFiled@1— emitted bywarrantyClaimOrder.placed@1— emitted byorderServiceOrder.settled@1— emitted byorder·payWarrantyClaim.approved@1— emitted bywarrantyClaimWarrantyClaim.reimbursed@1— emitted bywarrantyClaim
Discover & read
decode
hvac.decode · GET /hvacs/decode · gate none · sandbox · answers HvacDecode@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1G1YC2D45P5114360 (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 { hvac } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await hvac.decode({"vin":"1G1YC2D45P5114360"})curl 'https://apis.vin/hvacs/decode?vin=1G1YC2D45P5114360'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": "HvacDecode@1",
"value": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"component": "hvac system",
"refrigerant": "R-1234yf",
"chargeOz": 18,
"compressorDrive": "belt-clutch",
"cabinFilter": "activated-carbon"
},
"evidence": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"component": "hvac system",
"refrigerant": "R-1234yf",
"chargeOz": 18,
"compressorDrive": "belt-clutch",
"cabinFilter": "activated-carbon"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}spec
hvac.spec · GET /hvacs/spec · gate none · sandbox · answers HvacSpec@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1G1YC2D45P5114360 (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 { hvac } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await hvac.spec({"vin":"1G1YC2D45P5114360"})curl 'https://apis.vin/hvacs/spec?vin=1G1YC2D45P5114360'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": "HvacSpec@1",
"value": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"component": "hvac system",
"refrigerant": "R-1234yf",
"chargeOz": 18,
"compressorDrive": "belt-clutch",
"cabinFilter": "activated-carbon"
},
"evidence": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"component": "hvac system",
"refrigerant": "R-1234yf",
"chargeOz": 18,
"compressorDrive": "belt-clutch",
"cabinFilter": "activated-carbon"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}history
hvac.history · GET /hvacs/history · gate none · sandbox · answers HvacHistory@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1G1YC2D45P5114360 (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 { hvac } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await hvac.history({"vin":"1G1YC2D45P5114360"})curl 'https://apis.vin/hvacs/history?vin=1G1YC2D45P5114360'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": "HvacHistory@1",
"value": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"events": [
{
"date": "2024-03-14",
"kind": "maintenance",
"description": "scheduled hvac system service"
}
],
"count": 1
},
"evidence": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"events": [
{
"date": "2024-03-14",
"kind": "maintenance",
"description": "scheduled hvac system service"
}
],
"count": 1
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}status
hvac.status · GET /hvacs/status · gate none · sandbox · answers HvacStatus@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1G1YC2D45P5114360 (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 { hvac } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await hvac.status({"vin":"1G1YC2D45P5114360"})curl 'https://apis.vin/hvacs/status?vin=1G1YC2D45P5114360'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": "HvacStatus@1",
"value": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"findings": []
},
"evidence": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"findings": []
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}healthCheck
hvac.healthCheck · GET /hvacs/health-check · gate none · sandbox · answers HvacHealthCheck@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1G1YC2D45P5114360 (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 { hvac } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await hvac.healthCheck({"vin":"1G1YC2D45P5114360"})curl 'https://apis.vin/hvacs/health-check?vin=1G1YC2D45P5114360'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": "HvacHealthCheck@1",
"value": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"findings": []
},
"evidence": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"findings": []
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}pressureRead
hvac.pressureRead · GET /hvacs/pressure-read · gate none · sandbox · answers HvacPressureRead@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1G1YC2D45P5114360 (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 { hvac } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await hvac.pressureRead({"vin":"1G1YC2D45P5114360"})curl 'https://apis.vin/hvacs/pressure-read?vin=1G1YC2D45P5114360'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": "HvacPressureRead@1",
"value": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"measurement": "pressureRead",
"reading": 51,
"unit": "index",
"withinSpec": true
},
"evidence": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"measurement": "pressureRead",
"reading": 51,
"unit": "index",
"withinSpec": true
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}refrigerantCheck
hvac.refrigerantCheck · GET /hvacs/refrigerant-check · gate none · sandbox · answers HvacRefrigerantCheck@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1G1YC2D45P5114360 (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 { hvac } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await hvac.refrigerantCheck({"vin":"1G1YC2D45P5114360"})curl 'https://apis.vin/hvacs/refrigerant-check?vin=1G1YC2D45P5114360'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": "HvacRefrigerantCheck@1",
"value": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"findings": []
},
"evidence": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"findings": []
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}leakDetect
hvac.leakDetect · POST /hvacs/leak-detect · gate offer · sandbox · answers HvacLeakDetect@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) · /1G1YC2D45P5114360 (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 — Hvac.leakDetectRequested@1 · Hvac.leakDetected@1.
import { hvac } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await hvac.leakDetect({"vin":"1G1YC2D45P5114360"})curl -X POST https://apis.vin/hvacs/leak-detect \
-H 'content-type: application/json' \
-d '{"vin":"1G1YC2D45P5114360"}'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": "HvacLeakDetect@1",
"value": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"faults": [],
"faultCount": 0
},
"evidence": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"faults": [],
"faultCount": 0
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}failurePredict
hvac.failurePredict · GET /hvacs/failure-predict · gate none · sandbox · answers HvacFailurePredict@1
No input — this capability takes no request body.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1G1YC2D45P5114360 (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 { hvac } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await hvac.failurePredict()curl 'https://apis.vin/hvacs/failure-predict'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": "HvacFailurePredict@1",
"value": {
"vin": "1HGCM82633A004352",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"remainingLifePct": 57,
"failureRiskPct": 9,
"horizonMiles": 12000
},
"evidence": {
"vin": "1HGCM82633A004352",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"remainingLifePct": 57,
"failureRiskPct": 9,
"horizonMiles": 12000
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Quote & price
quote
hvac.quote · POST /hvacs/quote · gate offer · sandbox · answers HvacQuote@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) · /1G1YC2D45P5114360 (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 — Hvac.quoted@1.
import { hvac } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await hvac.quote({"vin":"1G1YC2D45P5114360"})curl -X POST https://apis.vin/hvacs/quote \
-H 'content-type: application/json' \
-d '{"vin":"1G1YC2D45P5114360"}'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": "HvacQuote@1",
"value": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"band": "pass",
"estimateId": "EST-a2bc7827",
"laborCents": 40700,
"partsCents": 33300,
"subtotalCents": 74000,
"partSource": "aftermarket",
"currency": "USD"
},
"evidence": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"band": "pass",
"estimateId": "EST-a2bc7827",
"laborCents": 40700,
"partsCents": 33300,
"subtotalCents": 74000,
"partSource": "aftermarket",
"currency": "USD"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}estimate
hvac.estimate · POST /hvacs/estimate · gate offer · sandbox · answers HvacEstimate@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) · /1G1YC2D45P5114360 (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 — Hvac.estimateRequested@1 · Hvac.estimated@1.
import { hvac } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await hvac.estimate({"vin":"1G1YC2D45P5114360"})curl -X POST https://apis.vin/hvacs/estimate \
-H 'content-type: application/json' \
-d '{"vin":"1G1YC2D45P5114360"}'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": "HvacEstimate@1",
"value": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"band": "pass",
"estimateId": "EST-531e38e7",
"laborCents": 40700,
"partsCents": 33300,
"subtotalCents": 74000,
"partSource": "aftermarket",
"currency": "USD"
},
"evidence": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"band": "pass",
"estimateId": "EST-531e38e7",
"laborCents": 40700,
"partsCents": 33300,
"subtotalCents": 74000,
"partSource": "aftermarket",
"currency": "USD"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Apply & book
order
hvac.order · POST /hvacs/order · gate offer · sandbox · answers HvacOrder@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) · /1G1YC2D45P5114360 (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 — Hvac.completed@1 · Hvac.dispatched@1 · Hvac.ordered@1 · Order.placed@1 · ServiceOrder.settled@1.
import { hvac } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await hvac.order({"vin":"1G1YC2D45P5114360"})curl -X POST https://apis.vin/hvacs/order \
-H 'content-type: application/json' \
-d '{"vin":"1G1YC2D45P5114360"}'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": "HvacOrder@1",
"value": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"workOrder": {
"id": "WO-9b79b1c7",
"operation": "order",
"status": "scheduled",
"costCents": 37000,
"currency": "USD"
}
},
"evidence": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"workOrder": {
"id": "WO-9b79b1c7",
"operation": "order",
"status": "scheduled",
"costCents": 37000,
"currency": "USD"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Pay & settle
pay
hvac.pay · POST /hvacs/pay · gate offer · sandbox · answers HvacPay@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) · /1G1YC2D45P5114360 (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 — Hvac.charged@1 · Hvac.paid@1 · Hvac.payFailed@1 · Hvac.payRequested@1 · ServiceOrder.settled@1.
import { hvac } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await hvac.pay({"vin":"1G1YC2D45P5114360"})curl -X POST https://apis.vin/hvacs/pay \
-H 'content-type: application/json' \
-d '{"vin":"1G1YC2D45P5114360"}'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": "HvacPay@1",
"value": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"payment": {
"id": "PAY-024c1c79",
"status": "settled",
"amountCents": 37000,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"payment": {
"id": "PAY-024c1c79",
"status": "settled",
"amountCents": 37000,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}refund
hvac.refund · POST /hvacs/refund · gate offer · sandbox · answers HvacRefund@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) · /1G1YC2D45P5114360 (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 — Hvac.refunded@1.
import { hvac } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await hvac.refund({"vin":"1G1YC2D45P5114360"})curl -X POST https://apis.vin/hvacs/refund \
-H 'content-type: application/json' \
-d '{"vin":"1G1YC2D45P5114360"}'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": "HvacRefund@1",
"value": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"refund": {
"id": "RF-f8f1b2ef",
"status": "issued",
"amountCents": 7400,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"refund": {
"id": "RF-f8f1b2ef",
"status": "issued",
"amountCents": 7400,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}recharge
hvac.recharge · POST /hvacs/recharge · gate offer · sandbox · answers HvacRecharge@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) · /1G1YC2D45P5114360 (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 — Hvac.rechargeFailed@1 · Hvac.rechargeRequested@1 · Hvac.recharged@1.
import { hvac } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await hvac.recharge({"vin":"1G1YC2D45P5114360"})curl -X POST https://apis.vin/hvacs/recharge \
-H 'content-type: application/json' \
-d '{"vin":"1G1YC2D45P5114360"}'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": "HvacRecharge@1",
"value": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"workOrder": {
"id": "WO-d7a4da2c",
"operation": "recharge",
"status": "scheduled",
"costCents": 37000,
"currency": "USD"
}
},
"evidence": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"workOrder": {
"id": "WO-d7a4da2c",
"operation": "recharge",
"status": "scheduled",
"costCents": 37000,
"currency": "USD"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Fulfill & operate
repair
hvac.repair · POST /hvacs/repair · gate offer · sandbox · answers HvacRepair@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) · /1G1YC2D45P5114360 (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 — Hvac.repaired@1.
import { hvac } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await hvac.repair({"vin":"1G1YC2D45P5114360"})curl -X POST https://apis.vin/hvacs/repair \
-H 'content-type: application/json' \
-d '{"vin":"1G1YC2D45P5114360"}'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": "HvacRepair@1",
"value": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"workOrder": {
"id": "WO-d0d8f324",
"operation": "repair",
"status": "scheduled",
"costCents": 37000,
"currency": "USD"
}
},
"evidence": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"workOrder": {
"id": "WO-d0d8f324",
"operation": "repair",
"status": "scheduled",
"costCents": 37000,
"currency": "USD"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}replace
hvac.replace · POST /hvacs/replace · gate offer · sandbox · answers HvacReplace@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) · /1G1YC2D45P5114360 (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 — Hvac.replaced@1.
import { hvac } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await hvac.replace({"vin":"1G1YC2D45P5114360"})curl -X POST https://apis.vin/hvacs/replace \
-H 'content-type: application/json' \
-d '{"vin":"1G1YC2D45P5114360"}'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": "HvacReplace@1",
"value": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"workOrder": {
"id": "WO-ebe543f3",
"operation": "replace",
"status": "scheduled",
"costCents": 37000,
"currency": "USD"
}
},
"evidence": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"workOrder": {
"id": "WO-ebe543f3",
"operation": "replace",
"status": "scheduled",
"costCents": 37000,
"currency": "USD"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}diagnose
hvac.diagnose · POST /hvacs/diagnose · gate offer · sandbox · answers HvacDiagnose@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) · /1G1YC2D45P5114360 (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 — Hvac.diagnosed@1.
import { hvac } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await hvac.diagnose({"vin":"1G1YC2D45P5114360"})curl -X POST https://apis.vin/hvacs/diagnose \
-H 'content-type: application/json' \
-d '{"vin":"1G1YC2D45P5114360"}'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": "HvacDiagnose@1",
"value": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"faults": [],
"faultCount": 0
},
"evidence": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"faults": [],
"faultCount": 0
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}inspect
hvac.inspect · POST /hvacs/inspect · gate offer · sandbox · answers HvacInspect@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) · /1G1YC2D45P5114360 (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 — Hvac.inspectRequested@1 · Hvac.inspected@1.
import { hvac } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await hvac.inspect({"vin":"1G1YC2D45P5114360"})curl -X POST https://apis.vin/hvacs/inspect \
-H 'content-type: application/json' \
-d '{"vin":"1G1YC2D45P5114360"}'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": "HvacInspect@1",
"value": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"findings": []
},
"evidence": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"findings": []
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}blendDoorRepair
hvac.blendDoorRepair · POST /hvacs/blend-door-repair · gate offer · sandbox · answers HvacBlendDoorRepair@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) · /1G1YC2D45P5114360 (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 — Hvac.blendDoorRepaired@1.
import { hvac } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await hvac.blendDoorRepair({"vin":"1G1YC2D45P5114360"})curl -X POST https://apis.vin/hvacs/blend-door-repair \
-H 'content-type: application/json' \
-d '{"vin":"1G1YC2D45P5114360"}'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": "HvacBlendDoorRepair@1",
"value": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"workOrder": {
"id": "WO-7a679a5d",
"operation": "blendDoorRepair",
"status": "scheduled",
"costCents": 37000,
"currency": "USD"
}
},
"evidence": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"workOrder": {
"id": "WO-7a679a5d",
"operation": "blendDoorRepair",
"status": "scheduled",
"costCents": 37000,
"currency": "USD"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}cabinFilterReplace
hvac.cabinFilterReplace · POST /hvacs/cabin-filter-replace · gate offer · sandbox · answers HvacCabinFilterReplace@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) · /1G1YC2D45P5114360 (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 — Hvac.cabinFilterReplaced@1.
import { hvac } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await hvac.cabinFilterReplace({"vin":"1G1YC2D45P5114360"})curl -X POST https://apis.vin/hvacs/cabin-filter-replace \
-H 'content-type: application/json' \
-d '{"vin":"1G1YC2D45P5114360"}'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": "HvacCabinFilterReplace@1",
"value": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"workOrder": {
"id": "WO-f4427eb4",
"operation": "cabinFilterReplace",
"status": "scheduled",
"costCents": 37000,
"currency": "USD"
}
},
"evidence": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"workOrder": {
"id": "WO-f4427eb4",
"operation": "cabinFilterReplace",
"status": "scheduled",
"costCents": 37000,
"currency": "USD"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}compressorReplace
hvac.compressorReplace · POST /hvacs/compressor-replace · gate offer · sandbox · answers HvacCompressorReplace@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) · /1G1YC2D45P5114360 (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 — Hvac.compressorReplaceFailed@1 · Hvac.compressorReplaceRequested@1 · Hvac.compressorReplaced@1.
import { hvac } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await hvac.compressorReplace({"vin":"1G1YC2D45P5114360"})curl -X POST https://apis.vin/hvacs/compressor-replace \
-H 'content-type: application/json' \
-d '{"vin":"1G1YC2D45P5114360"}'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": "HvacCompressorReplace@1",
"value": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"workOrder": {
"id": "WO-b27b7b64",
"operation": "compressorReplace",
"status": "scheduled",
"costCents": 37000,
"currency": "USD"
}
},
"evidence": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"workOrder": {
"id": "WO-b27b7b64",
"operation": "compressorReplace",
"status": "scheduled",
"costCents": 37000,
"currency": "USD"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Authorize & resolve
warrantyClaim
hvac.warrantyClaim · POST /hvacs/warranty-claim · gate offer · sandbox · answers HvacWarrantyClaim@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) · /1G1YC2D45P5114360 (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 — Hvac.warrantyClaimFiled@1 · WarrantyClaim.approved@1 · WarrantyClaim.reimbursed@1.
import { hvac } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await hvac.warrantyClaim({"vin":"1G1YC2D45P5114360"})curl -X POST https://apis.vin/hvacs/warranty-claim \
-H 'content-type: application/json' \
-d '{"vin":"1G1YC2D45P5114360"}'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": "HvacWarrantyClaim@1",
"value": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"warranty": "active",
"claim": {
"id": "WC-0d2f769f",
"decision": "approved"
}
},
"evidence": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"warranty": "active",
"claim": {
"id": "WC-0d2f769f",
"decision": "approved"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}warrantyCheck
hvac.warrantyCheck · GET /hvacs/warranty-check · gate none · sandbox · answers HvacWarrantyCheck@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1G1YC2D45P5114360 (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 { hvac } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await hvac.warrantyCheck({"vin":"1G1YC2D45P5114360"})curl 'https://apis.vin/hvacs/warranty-check?vin=1G1YC2D45P5114360'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": "HvacWarrantyCheck@1",
"value": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"warranty": "active",
"void": false,
"coverageMilesLeft": 12620
},
"evidence": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"warranty": "active",
"void": false,
"coverageMilesLeft": 12620
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}More actions
evac
hvac.evac · POST /hvacs/evac · gate offer · sandbox · answers HvacEvac@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) · /1G1YC2D45P5114360 (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 — Hvac.evacFailed@1 · Hvac.evacRequested@1 · Hvac.evaced@1 · Hvac.evacuated@1.
import { hvac } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await hvac.evac({"vin":"1G1YC2D45P5114360"})curl -X POST https://apis.vin/hvacs/evac \
-H 'content-type: application/json' \
-d '{"vin":"1G1YC2D45P5114360"}'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": "HvacEvac@1",
"value": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"workOrder": {
"id": "WO-fce4bc1e",
"operation": "evac",
"status": "scheduled",
"costCents": 37000,
"currency": "USD"
}
},
"evidence": {
"vin": "1G1YC2D45P5114360",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"workOrder": {
"id": "WO-fce4bc1e",
"operation": "evac",
"status": "scheduled",
"costCents": 37000,
"currency": "USD"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}refrigerantAnalysis
hvac.refrigerantAnalysis · POST /hvacs/refrigerant-analysis · gate key · sandbox · answers HvacRefrigerantAnalysis@1
No input — this capability takes no request body.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1G1YC2D45P5114360 (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 — Hvac.refrigerantAnalyzed@1.
import { hvac } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await hvac.refrigerantAnalysis()curl -X POST https://apis.vin/hvacs/refrigerant-analysis \
-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": "HvacRefrigerantAnalysis@1",
"value": {
"vin": "1HGCM82633A004352",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"contamination": "none",
"moisturePct": 0,
"recommendation": "continue normal service interval"
},
"evidence": {
"vin": "1HGCM82633A004352",
"system": "hvac",
"asOf": "2026-08-10",
"verdict": "pass",
"contamination": "none",
"moisturePct": 0,
"recommendation": "continue normal service interval"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "wear-systems-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.
RepairOrder
Generated from the catalog. Every capability, answer, gate, and entity on this page is a rendered descriptor — it cannot drift from the wire.
hazmatDisposal
The hazmatDisposal noun — identity, lifecycle, events, and every capability as an anchored section: 13 capabilities, 0 live, 13 sandbox, 0 declared.
impound
The impound noun — identity, lifecycle, events, and every capability as an anchored section: 15 capabilities, 0 live, 15 sandbox, 0 declared.