docs.vin

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

Noungatepass
PillarServices (facets: 4 data · 7 services · 3 commerce)
Capabilities14 — 0 live · 14 sandbox · 0 declared
EntitiesAuction
Doorsaggregator.vin
SDKVin.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:

Discover & read

lookup

gatepass.lookup · GET /gatepass/lookup · gate none · sandbox · answers GatepassLookup@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.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.

the SDK — gatepass.lookup
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"})
GET /gatepass/lookup
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.

receipt · executed 2026-08-17T12:42:12.097Z · HTTP 200
{
  "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

FieldTypeRequiredNotes
vinstringno

Dooraggregator.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.

the SDK — gatepass.read
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"})
GET /gatepass/read
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.

receipt · executed 2026-08-17T12:42:12.099Z · HTTP 200
{
  "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

FieldTypeRequiredNotes
vinstringno

Dooraggregator.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.

the SDK — gatepass.status
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"})
GET /gatepass/status
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.

receipt · executed 2026-08-17T12:42:12.107Z · HTTP 200
{
  "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

FieldTypeRequiredNotes
vinstringno

Dooraggregator.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.

the SDK — gatepass.verify
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"})
GET /gatepass/verify
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.

receipt · executed 2026-08-17T12:42:12.107Z · HTTP 200
{
  "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

FieldTypeRequiredNotes
vinstringno

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

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

EmitsGatepass.scanRequested@1 · Gatepass.scanned@1.

the SDK — gatepass.scan
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"})
POST /gatepass/scan
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.

receipt · executed 2026-08-17T12:42:12.107Z · HTTP 200
{
  "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

FieldTypeRequiredNotes
vinstringno

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

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

EmitsGatepass.feeCharged@1 · Gatepass.feeRequested@1.

the SDK — gatepass.fee
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"})
POST /gatepass/fee
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.

receipt · executed 2026-08-17T12:42:12.091Z · HTTP 200
{
  "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

FieldTypeRequiredNotes
vinstringno

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

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

EmitsGatepass.paid@1 · Gatepass.payFailed@1 · Gatepass.payRequested@1.

the SDK — gatepass.pay
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"})
POST /gatepass/pay
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.

receipt · executed 2026-08-17T12:42:12.099Z · HTTP 200
{
  "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

FieldTypeRequiredNotes
vinstringno

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

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

EmitsGatepass.issueFailed@1 · Gatepass.issueRequested@1 · Gatepass.issued@1.

the SDK — gatepass.issue
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"})
POST /gatepass/issue
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.

receipt · executed 2026-08-17T12:42:12.097Z · HTTP 200
{
  "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

FieldTypeRequiredNotes
vinstringno

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

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

EmitsGatepass.revokeRequested@1 · Gatepass.revoked@1.

the SDK — gatepass.revoke
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"})
POST /gatepass/revoke
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.

receipt · executed 2026-08-17T12:42:12.104Z · HTTP 200
{
  "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

FieldTypeRequiredNotes
vinstringno

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

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

EmitsGatepass.held@1.

the SDK — gatepass.hold
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"})
POST /gatepass/hold
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.

receipt · executed 2026-08-17T12:42:12.097Z · HTTP 200
{
  "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

FieldTypeRequiredNotes
vinstringno

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

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

EmitsGatepass.failed@1 · Gatepass.floorCleared@1.

the SDK — gatepass.floorClear
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"})
POST /gatepass/floor-clear
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.

receipt · executed 2026-08-17T12:42:12.095Z · HTTP 200
{
  "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

FieldTypeRequiredNotes
vinstringno

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

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

EmitsGatepass.released@1.

the SDK — gatepass.release
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"})
POST /gatepass/release
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.

receipt · executed 2026-08-17T12:42:12.100Z · HTTP 200
{
  "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

FieldTypeRequiredNotes
vinstringno

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

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

EmitsGatepass.gateInRequested@1 · Gatepass.gatedIn@1.

the SDK — gatepass.gateIn
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"})
POST /gatepass/gate-in
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.

receipt · executed 2026-08-17T12:42:12.095Z · HTTP 200
{
  "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

FieldTypeRequiredNotes
vinstringno

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

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

EmitsGatepass.gateOutRequested@1 · Gatepass.gatedOut@1.

the SDK — gatepass.gateOut
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"})
POST /gatepass/gate-out
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.

receipt · executed 2026-08-17T12:42:12.097Z · HTTP 200
{
  "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.