gatepass
The gatepass noun — identity, lifecycle, events, and every capability as an anchored section: 14 capabilities, 0 live, 14 sandbox, 0 declared.
gatepass is one of the estate's 317 automotive nouns — a job a car needs done. It carries 14 capabilities: 0 live, 14 sandbox, 0 declared · doors aggregator.vin.
Identity
| Noun | gatepass |
| Pillar | Services (facets: 4 data · 7 services · 3 commerce) |
| Capabilities | 14 — 0 live · 14 sandbox · 0 declared |
| Entities | Auction |
| Doors | aggregator.vin |
| SDK | Vin.gatepass.* from apis.vin |
| Address | /catalog/gatepass#{action} — the anchor IS the wire name minus gatepass. |
Events
The vocabulary this noun can append to the record — 20 past-tense, versioned event types, each linked to the capability that emits it:
Gatepass.failed@1— emitted byfloorClearGatepass.feeCharged@1— emitted byfeeGatepass.feeRequested@1— emitted byfeeGatepass.floorCleared@1— emitted byfloorClearGatepass.gateInRequested@1— emitted bygateInGatepass.gateOutRequested@1— emitted bygateOutGatepass.gatedIn@1— emitted bygateInGatepass.gatedOut@1— emitted bygateOutGatepass.held@1— emitted byholdGatepass.issueFailed@1— emitted byissueGatepass.issueRequested@1— emitted byissueGatepass.issued@1— emitted byissueGatepass.paid@1— emitted bypayGatepass.payFailed@1— emitted bypayGatepass.payRequested@1— emitted bypayGatepass.released@1— emitted byreleaseGatepass.revokeRequested@1— emitted byrevokeGatepass.revoked@1— emitted byrevokeGatepass.scanRequested@1— emitted byscanGatepass.scanned@1— emitted byscan
Discover & read
lookup
gatepass.lookup · GET /gatepass/lookup · gate none · sandbox · answers GatepassLookup@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /4S4WMAPD8N3409880 (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 { gatepass } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await gatepass.lookup({"vin":"4S4WMAPD8N3409880"})curl 'https://apis.vin/gatepass/lookup?vin=4S4WMAPD8N3409880'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": "GatepassLookup@1",
"value": {
"vin": "4S4WMAPD8N3409880",
"noun": "gatepass",
"asOf": "2026-08-10",
"gatePass": {
"standing": "not-yet-paid",
"saleId": "SL-09629330"
}
},
"evidence": {
"vin": "4S4WMAPD8N3409880",
"noun": "gatepass",
"asOf": "2026-08-10",
"gatePass": {
"standing": "not-yet-paid",
"saleId": "SL-09629330"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "yard-iron-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}read
gatepass.read · GET /gatepass/read · gate none · sandbox · answers GatepassRead@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /4S4WMAPD8N3409880 (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 { gatepass } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await gatepass.read({"vin":"4S4WMAPD8N3409880"})curl 'https://apis.vin/gatepass/read?vin=4S4WMAPD8N3409880'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": "GatepassRead@1",
"value": {
"vin": "4S4WMAPD8N3409880",
"noun": "gatepass",
"asOf": "2026-08-10",
"gatePass": {
"standing": "not-yet-paid",
"saleId": "SL-09629330"
}
},
"evidence": {
"vin": "4S4WMAPD8N3409880",
"noun": "gatepass",
"asOf": "2026-08-10",
"gatePass": {
"standing": "not-yet-paid",
"saleId": "SL-09629330"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "yard-iron-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}status
gatepass.status · GET /gatepass/status · gate none · sandbox · answers GatepassStatus@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /4S4WMAPD8N3409880 (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 { gatepass } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await gatepass.status({"vin":"4S4WMAPD8N3409880"})curl 'https://apis.vin/gatepass/status?vin=4S4WMAPD8N3409880'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": "GatepassStatus@1",
"value": {
"vin": "4S4WMAPD8N3409880",
"noun": "gatepass",
"asOf": "2026-08-10",
"gatePass": {
"standing": "not-yet-paid",
"saleId": "SL-09629330"
}
},
"evidence": {
"vin": "4S4WMAPD8N3409880",
"noun": "gatepass",
"asOf": "2026-08-10",
"gatePass": {
"standing": "not-yet-paid",
"saleId": "SL-09629330"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "yard-iron-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}verify
gatepass.verify · GET /gatepass/verify · gate none · sandbox · answers GatepassVerify@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /4S4WMAPD8N3409880 (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 { gatepass } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await gatepass.verify({"vin":"4S4WMAPD8N3409880"})curl 'https://apis.vin/gatepass/verify?vin=4S4WMAPD8N3409880'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": "GatepassVerify@1",
"value": {
"vin": "4S4WMAPD8N3409880",
"noun": "gatepass",
"asOf": "2026-08-10",
"verification": {
"valid": false,
"reason": "not-yet-paid",
"saleId": "SL-09629330"
}
},
"evidence": {
"vin": "4S4WMAPD8N3409880",
"noun": "gatepass",
"asOf": "2026-08-10",
"verification": {
"valid": false,
"reason": "not-yet-paid",
"saleId": "SL-09629330"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "yard-iron-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}scan
gatepass.scan · POST /gatepass/scan · gate offer · sandbox · answers GatepassScan@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) · /4S4WMAPD8N3409880 (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 — Gatepass.scanRequested@1 · Gatepass.scanned@1.
import { gatepass } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await gatepass.scan({"vin":"4S4WMAPD8N3409880"})curl -X POST https://apis.vin/gatepass/scan \
-H 'content-type: application/json' \
-d '{"vin":"4S4WMAPD8N3409880"}'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": "GatepassScan@1",
"value": {
"vin": "4S4WMAPD8N3409880",
"noun": "gatepass",
"asOf": "2026-08-10",
"scan": {
"status": "refused",
"reason": "not-yet-paid"
}
},
"evidence": {
"vin": "4S4WMAPD8N3409880",
"noun": "gatepass",
"asOf": "2026-08-10",
"scan": {
"status": "refused",
"reason": "not-yet-paid"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "yard-iron-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Quote & price
fee
gatepass.fee · POST /gatepass/fee · gate offer · sandbox · answers GatepassFee@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) · /4S4WMAPD8N3409880 (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 — Gatepass.feeCharged@1 · Gatepass.feeRequested@1.
import { gatepass } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await gatepass.fee({"vin":"4S4WMAPD8N3409880"})curl -X POST https://apis.vin/gatepass/fee \
-H 'content-type: application/json' \
-d '{"vin":"4S4WMAPD8N3409880"}'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": "GatepassFee@1",
"value": {
"vin": "4S4WMAPD8N3409880",
"noun": "gatepass",
"asOf": "2026-08-10",
"fee": {
"amountCents": 2500,
"currency": "USD",
"status": "quoted"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "4S4WMAPD8N3409880",
"noun": "gatepass",
"asOf": "2026-08-10",
"fee": {
"amountCents": 2500,
"currency": "USD",
"status": "quoted"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "yard-iron-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Pay & settle
pay
gatepass.pay · POST /gatepass/pay · gate offer · sandbox · answers GatepassPay@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) · /4S4WMAPD8N3409880 (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 — Gatepass.paid@1 · Gatepass.payFailed@1 · Gatepass.payRequested@1.
import { gatepass } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await gatepass.pay({"vin":"4S4WMAPD8N3409880"})curl -X POST https://apis.vin/gatepass/pay \
-H 'content-type: application/json' \
-d '{"vin":"4S4WMAPD8N3409880"}'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": "GatepassPay@1",
"value": {
"vin": "4S4WMAPD8N3409880",
"noun": "gatepass",
"asOf": "2026-08-10",
"payment": {
"id": "PAY-1d3e5f5d",
"amountCents": 2500,
"currency": "USD",
"status": "settled"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "4S4WMAPD8N3409880",
"noun": "gatepass",
"asOf": "2026-08-10",
"payment": {
"id": "PAY-1d3e5f5d",
"amountCents": 2500,
"currency": "USD",
"status": "settled"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "yard-iron-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Fulfill & operate
issue
gatepass.issue · POST /gatepass/issue · gate offer · sandbox · answers GatepassIssue@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) · /4S4WMAPD8N3409880 (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 — Gatepass.issueFailed@1 · Gatepass.issueRequested@1 · Gatepass.issued@1.
import { gatepass } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await gatepass.issue({"vin":"4S4WMAPD8N3409880"})curl -X POST https://apis.vin/gatepass/issue \
-H 'content-type: application/json' \
-d '{"vin":"4S4WMAPD8N3409880"}'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": "GatepassIssue@1",
"value": {
"vin": "4S4WMAPD8N3409880",
"noun": "gatepass",
"asOf": "2026-08-10",
"issue": {
"status": "not-yet-paid",
"saleId": "SL-09629330"
}
},
"evidence": {
"vin": "4S4WMAPD8N3409880",
"noun": "gatepass",
"asOf": "2026-08-10",
"issue": {
"status": "not-yet-paid",
"saleId": "SL-09629330"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "yard-iron-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Authorize & resolve
revoke
gatepass.revoke · POST /gatepass/revoke · gate offer · sandbox · answers GatepassRevoke@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) · /4S4WMAPD8N3409880 (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 — Gatepass.revokeRequested@1 · Gatepass.revoked@1.
import { gatepass } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await gatepass.revoke({"vin":"4S4WMAPD8N3409880"})curl -X POST https://apis.vin/gatepass/revoke \
-H 'content-type: application/json' \
-d '{"vin":"4S4WMAPD8N3409880"}'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": "GatepassRevoke@1",
"value": {
"vin": "4S4WMAPD8N3409880",
"noun": "gatepass",
"asOf": "2026-08-10",
"revocation": {
"status": "nothing-to-revoke",
"reason": "not-yet-paid"
}
},
"evidence": {
"vin": "4S4WMAPD8N3409880",
"noun": "gatepass",
"asOf": "2026-08-10",
"revocation": {
"status": "nothing-to-revoke",
"reason": "not-yet-paid"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "yard-iron-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}hold
gatepass.hold · POST /gatepass/hold · gate offer · sandbox · answers GatepassHold@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) · /4S4WMAPD8N3409880 (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 — Gatepass.held@1.
import { gatepass } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await gatepass.hold({"vin":"4S4WMAPD8N3409880"})curl -X POST https://apis.vin/gatepass/hold \
-H 'content-type: application/json' \
-d '{"vin":"4S4WMAPD8N3409880"}'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": "GatepassHold@1",
"value": {
"vin": "4S4WMAPD8N3409880",
"noun": "gatepass",
"asOf": "2026-08-10",
"hold": {
"status": "held",
"id": "HLD-8ad984dc",
"saleId": "SL-09629330"
}
},
"evidence": {
"vin": "4S4WMAPD8N3409880",
"noun": "gatepass",
"asOf": "2026-08-10",
"hold": {
"status": "held",
"id": "HLD-8ad984dc",
"saleId": "SL-09629330"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "yard-iron-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}floorClear
gatepass.floorClear · POST /gatepass/floor-clear · gate offer · sandbox · answers GatepassFloorClear@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) · /4S4WMAPD8N3409880 (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 — Gatepass.failed@1 · Gatepass.floorCleared@1.
import { gatepass } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await gatepass.floorClear({"vin":"4S4WMAPD8N3409880"})curl -X POST https://apis.vin/gatepass/floor-clear \
-H 'content-type: application/json' \
-d '{"vin":"4S4WMAPD8N3409880"}'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": "GatepassFloorClear@1",
"value": {
"vin": "4S4WMAPD8N3409880",
"noun": "gatepass",
"asOf": "2026-08-10",
"floorClear": {
"clear": true
}
},
"evidence": {
"vin": "4S4WMAPD8N3409880",
"noun": "gatepass",
"asOf": "2026-08-10",
"floorClear": {
"clear": true
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "yard-iron-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Lifecycle & state
release
gatepass.release · POST /gatepass/release · gate offer · sandbox · answers GatepassRelease@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) · /4S4WMAPD8N3409880 (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 — Gatepass.released@1.
import { gatepass } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await gatepass.release({"vin":"4S4WMAPD8N3409880"})curl -X POST https://apis.vin/gatepass/release \
-H 'content-type: application/json' \
-d '{"vin":"4S4WMAPD8N3409880"}'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": "GatepassRelease@1",
"value": {
"vin": "4S4WMAPD8N3409880",
"noun": "gatepass",
"asOf": "2026-08-10",
"release": {
"status": "hold-released",
"id": "HLD-8ad984dc",
"saleId": "SL-09629330"
}
},
"evidence": {
"vin": "4S4WMAPD8N3409880",
"noun": "gatepass",
"asOf": "2026-08-10",
"release": {
"status": "hold-released",
"id": "HLD-8ad984dc",
"saleId": "SL-09629330"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "yard-iron-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}More actions
gateIn
gatepass.gateIn · POST /gatepass/gate-in · gate offer · sandbox · answers GatepassGateIn@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) · /4S4WMAPD8N3409880 (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 — Gatepass.gateInRequested@1 · Gatepass.gatedIn@1.
import { gatepass } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await gatepass.gateIn({"vin":"4S4WMAPD8N3409880"})curl -X POST https://apis.vin/gatepass/gate-in \
-H 'content-type: application/json' \
-d '{"vin":"4S4WMAPD8N3409880"}'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": "GatepassGateIn@1",
"value": {
"vin": "4S4WMAPD8N3409880",
"noun": "gatepass",
"asOf": "2026-08-10",
"gateIn": {
"status": "gated-in",
"consignmentId": "CSN-9d62e815"
}
},
"evidence": {
"vin": "4S4WMAPD8N3409880",
"noun": "gatepass",
"asOf": "2026-08-10",
"gateIn": {
"status": "gated-in",
"consignmentId": "CSN-9d62e815"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "yard-iron-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}gateOut
gatepass.gateOut · POST /gatepass/gate-out · gate offer · sandbox · answers GatepassGateOut@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) · /4S4WMAPD8N3409880 (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 — Gatepass.gateOutRequested@1 · Gatepass.gatedOut@1.
import { gatepass } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await gatepass.gateOut({"vin":"4S4WMAPD8N3409880"})curl -X POST https://apis.vin/gatepass/gate-out \
-H 'content-type: application/json' \
-d '{"vin":"4S4WMAPD8N3409880"}'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": "GatepassGateOut@1",
"value": {
"vin": "4S4WMAPD8N3409880",
"noun": "gatepass",
"asOf": "2026-08-10",
"gateOut": {
"status": "refused",
"reason": "not-yet-paid"
}
},
"evidence": {
"vin": "4S4WMAPD8N3409880",
"noun": "gatepass",
"asOf": "2026-08-10",
"gateOut": {
"status": "refused",
"reason": "not-yet-paid"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "yard-iron-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.
Auction
Generated from the catalog. Every capability, answer, gate, and entity on this page is a rendered descriptor — it cannot drift from the wire.
fundingPackage
The fundingPackage noun — identity, lifecycle, events, and every capability as an anchored section: 6 capabilities, 0 live, 6 sandbox, 0 declared.
guardianship
The guardianship noun — identity, lifecycle, events, and every capability as an anchored section: 3 capabilities, 0 live, 3 sandbox, 0 declared.