transport
The transport noun — identity, lifecycle, events, and every capability as an anchored section: 41 capabilities, 5 live, 36 sandbox, 0 declared.
transport is one of the estate's 317 automotive nouns — a job a car needs done. It carries 41 capabilities: 5 live, 36 sandbox, 0 declared · doors transport.vin · aggregator.vin.
Identity
| Noun | transport |
| Pillar | Services (facets: 14 data · 16 services · 11 commerce) |
| Capabilities | 41 — 5 live · 36 sandbox · 0 declared |
| Entities | Transport |
| Doors | aggregator.vin · transport.vin |
| SDK | Vin.transport.* from apis.vin |
| Address | /catalog/transport#{action} — the anchor IS the wire name minus transport. |
Lifecycle
Transport — TransportFSM: 6 states, 6 transitions — Booked · Dispatched · InTransit · Delivered · Proven · Exception. Each transition is a past-tense event on the record.
Events
The vocabulary this noun can append to the record — 64 past-tense, versioned event types, each linked to the capability that emits it:
Deal.delivered@1— emitted bydeliverServiceOrder.settled@1— emitted bybook·order·tenderTransport.accessorialBilled@1— emitted byaccessorialBillTransport.assignCarrierRequested@1— emitted byassignCarrierTransport.booked@1— emitted bybookTransport.captured@1— emitted bybookTransport.carrierAssigned@1— emitted byassignCarrierTransport.chargebackRequested@1— emitted bychargebackTransport.chargebacked@1— emitted bychargebackTransport.completed@1— emitted bybook·order·tenderTransport.consolidateRequested@1— emitted byconsolidateTransport.consolidated@1— emitted byconsolidateTransport.deconsolidateRequested@1— emitted bydeconsolidateTransport.deconsolidated@1— emitted bydeconsolidateTransport.deliverFailed@1— emitted bydeliverTransport.deliverRequested@1— emitted bydeliverTransport.delivered@1— emitted bybook·deliverTransport.detentionBillRequested@1— emitted bydetentionBillTransport.detentionBilled@1— emitted bydetentionBillTransport.dispatchFailed@1— emitted bydispatchTransport.dispatchRequested@1— emitted bydispatchTransport.dispatched@1— emitted bybook·dispatch·order·tenderTransport.etaUpdated@1— emitted byetaTransport.expediteRequested@1— emitted byexpediteTransport.expedited@1— emitted byexpediteTransport.factorRequested@1— emitted byfactorTransport.factored@1— emitted byfactorTransport.geofenceTriggered@1— emitted bygeofenceTriggerTransport.held@1— emitted byholdTransport.holdRequested@1— emitted byholdTransport.inspectAtDeliveryRequested@1— emitted byinspectAtDeliveryTransport.inspectAtPickupRequested@1— emitted byinspectAtPickupTransport.inspectedAtDelivery@1— emitted byinspectAtDeliveryTransport.inspectedAtPickup@1— emitted byinspectAtPickupTransport.invoiceFailed@1— emitted byinvoiceTransport.invoiceRequested@1— emitted byinvoiceTransport.invoiced@1— emitted byinvoiceTransport.ordered@1— emitted bybook·order·tenderTransport.osdClaimed@1— emitted byosdClaimTransport.paid@1— emitted bypayTransport.payFailed@1— emitted bypayTransport.payRequested@1— emitted bypayTransport.pickedUp@1— emitted bypickupTransport.pickupRequested@1— emitted bypickupTransport.pickuped@1— emitted bypickupTransport.podCaptureFailed@1— emitted bypodCaptureTransport.podCaptureRequested@1— emitted bypodCaptureTransport.podCaptured@1— emitted bypodCaptureTransport.quoted@1— emitted byquoteTransport.rated@1— emitted byrateTransport.refundFailed@1— emitted byrefundTransport.refundRequested@1— emitted byrefundTransport.refunded@1— emitted byrefundTransport.requested@1— emitted bybookTransport.rerouteRequested@1— emitted byrerouteTransport.rerouted@1— emitted byrerouteTransport.scheduleRequested@1— emitted byscheduleTransport.scheduled@1— emitted byscheduleTransport.settleFailed@1— emitted bysettleTransport.settleRequested@1— emitted bysettleTransport.settled@1— emitted bysettleTransport.transferFailed@1— emitted bytransferTransport.transferRequested@1— emitted bytransferTransport.transferred@1— emitted bytransfer
Discover & read
history
transport.history · GET /transports/history · gate none · sandbox · answers TransportHistory@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.history({"vin":"1C4RJFN95MC841539"})curl 'https://apis.vin/transports/history?vin=1C4RJFN95MC841539'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": "TransportHistory@1",
"value": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"events": [
{
"date": "2024-03-14",
"kind": "routine",
"description": "routine transport move record"
},
{
"date": "2024-11-02",
"kind": "routine",
"description": "routine transport move record"
}
]
},
"evidence": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"events": [
{
"date": "2024-03-14",
"kind": "routine",
"description": "routine transport move record"
},
{
"date": "2024-11-02",
"kind": "routine",
"description": "routine transport move record"
}
]
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}status
transport.status · GET /transports/status · gate none · sandbox · answers TransportStatus@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.status({"vin":"1C4RJFN95MC841539"})curl 'https://apis.vin/transports/status?vin=1C4RJFN95MC841539'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": "TransportStatus@1",
"value": {
"orderId": "serviceorder_EMVh3MmY1dFQ",
"bookingNumber": "TR-1",
"status": "EnRoute",
"step": "in_transit",
"serviceType": "long-haul",
"etaMaxDays": 1
},
"evidence": {
"orderId": "serviceorder_EMVh3MmY1dFQ",
"bookingNumber": "TR-1",
"status": "EnRoute",
"step": "in_transit",
"serviceType": "long-haul",
"etaMaxDays": 1
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "transport-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}track
transport.track · GET /transports/track · gate none · sandbox · answers TransportTrack@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.track({"vin":"1C4RJFN95MC841539"})curl 'https://apis.vin/transports/track?vin=1C4RJFN95MC841539'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": "TransportTrack@1",
"value": {
"orderId": "serviceorder_EMVh3MmY1dFQ",
"bookingNumber": "TR-1",
"timeline": [
{
"step": "dispatched",
"bizStep": "dispatching",
"status": "Dispatched"
},
{
"step": "picked_up",
"bizStep": "departing",
"status": "EnRoute"
},
{
"step": "in_transit",
"bizStep": "transporting",
"status": "EnRoute"
}
],
"currentStatus": "EnRoute"
},
"evidence": {
"orderId": "serviceorder_EMVh3MmY1dFQ",
"bookingNumber": "TR-1",
"timeline": [
{
"step": "dispatched",
"bizStep": "dispatching",
"status": "Dispatched"
},
{
"step": "picked_up",
"bizStep": "departing",
"status": "EnRoute"
},
{
"step": "in_transit",
"bizStep": "transporting",
"status": "EnRoute"
}
],
"currentStatus": "EnRoute"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "transport-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}eta
transport.eta · GET /transports/eta · gate key · live · answers TransportEta@1
Promoted — earned its own page: /catalog/transport.eta (computed on every regen: live on the wire + carries its own stateSet).
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (the VIN lens).
Try it — live: answers on the wire today. A sandbox key still selects the deterministic simulated mode — drive the full outcome range with the magic triggers.
Emits — Transport.etaUpdated@1.
import { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.eta({"vin":"1C4RJFN95MC841539"})curl 'https://apis.vin/transports/eta?vin=1C4RJFN95MC841539'capacity
transport.capacity · GET /transports/capacity · gate none · sandbox · answers TransportCapacity@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.capacity({"vin":"1C4RJFN95MC841539"})curl 'https://apis.vin/transports/capacity?vin=1C4RJFN95MC841539'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": "TransportCapacity@1",
"value": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"lanesOpen": 7,
"loadsPerWeek": 27
},
"evidence": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"lanesOpen": 7,
"loadsPerWeek": 27
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}geolocate
transport.geolocate · GET /transports/geolocate · gate none · sandbox · answers TransportGeolocate@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.geolocate({"vin":"1C4RJFN95MC841539"})curl 'https://apis.vin/transports/geolocate?vin=1C4RJFN95MC841539'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": "TransportGeolocate@1",
"value": {
"orderId": "serviceorder_EMVh3MmY1dFQ",
"bookingNumber": "TR-1",
"located": true,
"position": {
"lat": 25.15,
"lon": -92.85
},
"originZip": "90001",
"destinationZip": "10001",
"status": "EnRoute"
},
"evidence": {
"orderId": "serviceorder_EMVh3MmY1dFQ",
"bookingNumber": "TR-1",
"located": true,
"position": {
"lat": 25.15,
"lon": -92.85
},
"originZip": "90001",
"destinationZip": "10001",
"status": "EnRoute"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "transport-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}modeCompare
transport.modeCompare · GET /transports/mode-compare · gate none · sandbox · answers TransportModeCompare@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.modeCompare({"vin":"1C4RJFN95MC841539"})curl 'https://apis.vin/transports/mode-compare?vin=1C4RJFN95MC841539'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": "TransportModeCompare@1",
"value": {
"modes": [
{
"serviceType": "long-haul",
"priceCents": 68877,
"etaMaxDays": 1,
"distanceMiles": 356
},
{
"serviceType": "last-mile",
"priceCents": 18563,
"etaMaxDays": 1,
"distanceMiles": 39
},
{
"serviceType": "tow",
"priceCents": 28485,
"etaMaxDays": 1,
"distanceMiles": 32
},
{
"serviceType": "valet",
"priceCents": 10827,
"etaMaxDays": 1,
"distanceMiles": 26
}
],
"currency": "USD",
"cheapest": "valet",
"fastest": "long-haul"
},
"evidence": {
"modes": [
{
"serviceType": "long-haul",
"priceCents": 68877,
"etaMaxDays": 1,
"distanceMiles": 356
},
{
"serviceType": "last-mile",
"priceCents": 18563,
"etaMaxDays": 1,
"distanceMiles": 39
},
{
"serviceType": "tow",
"priceCents": 28485,
"etaMaxDays": 1,
"distanceMiles": 32
},
{
"serviceType": "valet",
"priceCents": 10827,
"etaMaxDays": 1,
"distanceMiles": 26
}
],
"currency": "USD",
"cheapest": "valet",
"fastest": "long-haul"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "transport-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}conditionMonitor
transport.conditionMonitor · GET /transports/condition-monitor · gate none · sandbox · answers TransportConditionMonitor@1
No input — this capability takes no request body.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.conditionMonitor()curl 'https://apis.vin/transports/condition-monitor'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": "TransportConditionMonitor@1",
"value": {
"vin": "1HGCM82633A004352",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "Booked",
"condition": "clean",
"alerts": 0
},
"evidence": {
"vin": "1HGCM82633A004352",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "Booked",
"condition": "clean",
"alerts": 0
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Quote & price
quote
transport.quote · GET /transports/quote · gate none · live · answers TransportQuote@1
Promoted — earned its own page: /catalog/transport.quote (computed on every regen: live on the wire + price posted + carries its own stateSet).
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | yes | — |
from | string | yes | origin zip |
to | string | yes | destination zip |
product | string | no | one of long-haul, last-mile, tow |
enclosed | boolean | no | — |
operable | boolean | no | — |
Door — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (the VIN lens).
Try it — live: answers on the wire today. A sandbox key still selects the deterministic simulated mode — drive the full outcome range with the magic triggers.
Emits — Transport.quoted@1.
import { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.quote({"vin":"1C4RJFN95MC841539","from":"from","to":"to"})curl 'https://apis.vin/transports/quote?vin=1C4RJFN95MC841539&from=from&to=to'rate
transport.rate · GET /transports/rate · gate key · live · answers TransportRate@1
Promoted — earned its own page: /catalog/transport.rate (computed on every regen: live on the wire + carries its own stateSet).
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (the VIN lens).
Try it — live: answers on the wire today. A sandbox key still selects the deterministic simulated mode — drive the full outcome range with the magic triggers.
Emits — Transport.rated@1.
import { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.rate({"vin":"1C4RJFN95MC841539"})curl 'https://apis.vin/transports/rate?vin=1C4RJFN95MC841539'Apply & book
order
transport.order · POST /transports/order · gate offer · sandbox · answers TransportOrder@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 — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 — ServiceOrder.settled@1 · Transport.completed@1 · Transport.dispatched@1 · Transport.ordered@1.
import { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.order({"vin":"1C4RJFN95MC841539"})curl -X POST https://apis.vin/transports/order \
-H 'content-type: application/json' \
-d '{"vin":"1C4RJFN95MC841539"}'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": "TransportOrder@1",
"value": {
"orderId": "serviceorder_EMVh3MmY1dFQ",
"bookingNumber": "TR-1",
"status": "Active",
"serviceType": "long-haul",
"priceCents": 68877,
"currency": "USD",
"etaMaxDays": 1,
"expires": "2026-08-17T00:00:00.000Z"
},
"evidence": {
"orderId": "serviceorder_EMVh3MmY1dFQ",
"bookingNumber": "TR-1",
"status": "Active",
"serviceType": "long-haul",
"priceCents": 68877,
"currency": "USD",
"etaMaxDays": 1,
"expires": "2026-08-17T00:00:00.000Z"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "transport-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}book
transport.book · POST /transports/book · gate offer · sandbox · answers TransportOrder@1
Promoted — earned its own page: /catalog/transport.book (computed on every regen: price posted + carries its own stateSet).
| Field | Type | Required | Notes |
|---|---|---|---|
quoteId | string | yes | — |
product | string | yes | one of long-haul, last-mile, tow |
subject | string | no | optional deal_ to attach |
authority | string | no | mnd_ when delegated |
pickup | object | no | — |
dropoff | object | 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: posted at /pricing.
Delegated calls require a typed Mandate — { ceiling, perAction, expires, tripwires }; the ceiling is a field, not a conversation.
Door — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 — ServiceOrder.settled@1 · Transport.booked@1 · Transport.captured@1 · Transport.completed@1 · Transport.delivered@1 · Transport.dispatched@1 · Transport.ordered@1 · Transport.requested@1.
import { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.book({"quoteId":"quoteid","product":"long-haul"})curl -X POST https://apis.vin/transports/book \
-H 'content-type: application/json' \
-d '{"quoteId":"quoteid","product":"long-haul"}'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": "TransportOrder@1",
"value": {
"vin": "1HGCM82633A004352",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "Booked",
"move": {
"id": "TR-aded4704",
"action": "book",
"status": "booked",
"rateCents": 89500,
"currency": "USD"
}
},
"evidence": {
"vin": "1HGCM82633A004352",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "Booked",
"move": {
"id": "TR-aded4704",
"action": "book",
"status": "booked",
"rateCents": 89500,
"currency": "USD"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": true
},
"connect": {
"type": "OFFER",
"kind": "connect",
"reason": "CONNECTION_ABSENT",
"portClass": "transport",
"state": "absent",
"url": "https://integrates.vin/connect/transport",
"message": "transport.book is live via connection — certified, connect to activate: complete the transport link ceremony at https://integrates.vin/connect/transport. The credential vault (auth.vin) holds the token, and the same call answers simulated:false — activation is the token, never a deploy."
}
}schedule
transport.schedule · POST /transports/schedule · gate offer · sandbox · answers TransportSchedule@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 — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 — Transport.scheduleRequested@1 · Transport.scheduled@1.
import { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.schedule({"vin":"1C4RJFN95MC841539"})curl -X POST https://apis.vin/transports/schedule \
-H 'content-type: application/json' \
-d '{"vin":"1C4RJFN95MC841539"}'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": "TransportSchedule@1",
"value": {
"orderId": "serviceorder_EMVh3MmY1dFQ",
"bookingNumber": "TR-1",
"scheduled": true,
"pickupWindow": "2026-07-18",
"serviceType": "long-haul",
"etaMaxDays": 1,
"status": "Active"
},
"evidence": {
"orderId": "serviceorder_EMVh3MmY1dFQ",
"bookingNumber": "TR-1",
"scheduled": true,
"pickupWindow": "2026-07-18",
"serviceType": "long-haul",
"etaMaxDays": 1,
"status": "Active"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "transport-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}dispatch
transport.dispatch · POST /transports/dispatch · gate offer · sandbox · answers TransportDispatch@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 — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 — Transport.dispatchFailed@1 · Transport.dispatchRequested@1 · Transport.dispatched@1.
import { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.dispatch({"vin":"1C4RJFN95MC841539"})curl -X POST https://apis.vin/transports/dispatch \
-H 'content-type: application/json' \
-d '{"vin":"1C4RJFN95MC841539"}'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": "TransportDispatch@1",
"value": {
"orderId": "serviceorder_EMVh3MmY1dFQ",
"bookingNumber": "TR-1",
"dispatched": true,
"step": "dispatched",
"bizStep": "dispatching",
"status": "Dispatched"
},
"evidence": {
"orderId": "serviceorder_EMVh3MmY1dFQ",
"bookingNumber": "TR-1",
"dispatched": true,
"step": "dispatched",
"bizStep": "dispatching",
"status": "Dispatched"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "transport-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Pay & settle
pay
transport.pay · POST /transports/pay · gate offer · sandbox · answers TransportPay@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 — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 — Transport.paid@1 · Transport.payFailed@1 · Transport.payRequested@1.
import { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.pay({"vin":"1C4RJFN95MC841539"})curl -X POST https://apis.vin/transports/pay \
-H 'content-type: application/json' \
-d '{"vin":"1C4RJFN95MC841539"}'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": "TransportPay@1",
"value": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"payment": {
"id": "PAY-9c742954",
"status": "settled",
"amountCents": 89500,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"payment": {
"id": "PAY-9c742954",
"status": "settled",
"amountCents": 89500,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}invoice
transport.invoice · POST /transports/invoice · gate offer · sandbox · answers TransportInvoice@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 — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 — Transport.invoiceFailed@1 · Transport.invoiceRequested@1 · Transport.invoiced@1.
import { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.invoice({"vin":"1C4RJFN95MC841539"})curl -X POST https://apis.vin/transports/invoice \
-H 'content-type: application/json' \
-d '{"vin":"1C4RJFN95MC841539"}'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": "TransportInvoice@1",
"value": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"invoice": {
"id": "INV-0313ca01",
"status": "issued",
"amountCents": 89500,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"invoice": {
"id": "INV-0313ca01",
"status": "issued",
"amountCents": 89500,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}settle
transport.settle · POST /transports/settle · gate offer · sandbox · answers TransportSettle@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 — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 — Transport.settleFailed@1 · Transport.settleRequested@1 · Transport.settled@1.
import { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.settle({"vin":"1C4RJFN95MC841539"})curl -X POST https://apis.vin/transports/settle \
-H 'content-type: application/json' \
-d '{"vin":"1C4RJFN95MC841539"}'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": "TransportSettle@1",
"value": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"payment": {
"id": "PAY-ec5384fd",
"status": "settled",
"amountCents": 89500,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"payment": {
"id": "PAY-ec5384fd",
"status": "settled",
"amountCents": 89500,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}refund
transport.refund · POST /transports/refund · gate offer · sandbox · answers TransportRefund@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 — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 — Transport.refundFailed@1 · Transport.refundRequested@1 · Transport.refunded@1.
import { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.refund({"vin":"1C4RJFN95MC841539"})curl -X POST https://apis.vin/transports/refund \
-H 'content-type: application/json' \
-d '{"vin":"1C4RJFN95MC841539"}'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": "TransportRefund@1",
"value": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"refund": {
"id": "RFD-af8f9a58",
"status": "issued",
"amountCents": 0,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"refund": {
"id": "RFD-af8f9a58",
"status": "issued",
"amountCents": 0,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}chargeback
transport.chargeback · POST /transports/chargeback · gate offer · sandbox · answers TransportChargeback@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 — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 — Transport.chargebackRequested@1 · Transport.chargebacked@1.
import { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.chargeback({"vin":"1C4RJFN95MC841539"})curl -X POST https://apis.vin/transports/chargeback \
-H 'content-type: application/json' \
-d '{"vin":"1C4RJFN95MC841539"}'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": "TransportChargeback@1",
"value": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"chargeback": {
"id": "CBK-5d732981",
"status": "no-grounds",
"amountCents": 0,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"chargeback": {
"id": "CBK-5d732981",
"status": "no-grounds",
"amountCents": 0,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}podCapture
transport.podCapture · POST /transports/pod-capture · gate offer · sandbox · answers TransportPodCapture@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 — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 — Transport.podCaptureFailed@1 · Transport.podCaptureRequested@1 · Transport.podCaptured@1.
import { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.podCapture({"vin":"1C4RJFN95MC841539"})curl -X POST https://apis.vin/transports/pod-capture \
-H 'content-type: application/json' \
-d '{"vin":"1C4RJFN95MC841539"}'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": "TransportPodCapture@1",
"value": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"pod": {
"captured": false,
"reason": "not-yet-delivered"
}
},
"evidence": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"pod": {
"captured": false,
"reason": "not-yet-delivered"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}accessorialBill
transport.accessorialBill · POST /transports/accessorial-bill · gate key · sandbox · answers TransportAccessorialBill@1
No input — this capability takes no request body.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 — Transport.accessorialBilled@1.
import { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.accessorialBill()curl -X POST https://apis.vin/transports/accessorial-bill \
-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": "TransportAccessorialBill@1",
"value": {
"vin": "1HGCM82633A004352",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "Booked",
"bill": {
"id": "AB-d5560c4c",
"kind": "accessorial",
"amountCents": 4500,
"currency": "USD",
"status": "issued"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "1HGCM82633A004352",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "Booked",
"bill": {
"id": "AB-d5560c4c",
"kind": "accessorial",
"amountCents": 4500,
"currency": "USD",
"status": "issued"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}detentionBill
transport.detentionBill · POST /transports/detention-bill · gate offer · sandbox · answers TransportDetentionBill@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 — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 — Transport.detentionBillRequested@1 · Transport.detentionBilled@1.
import { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.detentionBill({"vin":"1C4RJFN95MC841539"})curl -X POST https://apis.vin/transports/detention-bill \
-H 'content-type: application/json' \
-d '{"vin":"1C4RJFN95MC841539"}'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": "TransportDetentionBill@1",
"value": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"bill": {
"id": "DB-38012c26",
"kind": "detention",
"amountCents": 7500,
"currency": "USD",
"status": "issued"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"bill": {
"id": "DB-38012c26",
"kind": "detention",
"amountCents": 7500,
"currency": "USD",
"status": "issued"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Fulfill & operate
deliver
transport.deliver · POST /transports/deliver · gate offer · sandbox · answers TransportDeliver@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 — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 — Deal.delivered@1 · Transport.deliverFailed@1 · Transport.deliverRequested@1 · Transport.delivered@1.
import { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.deliver({"vin":"1C4RJFN95MC841539"})curl -X POST https://apis.vin/transports/deliver \
-H 'content-type: application/json' \
-d '{"vin":"1C4RJFN95MC841539"}'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": "TransportDeliver@1",
"value": {
"orderId": "serviceorder_EMVh3MmY1dFQ",
"bookingNumber": "TR-1",
"delivered": true,
"status": "Complete",
"podRef": "pod:serviceorder_EMVh3MmY1dFQ"
},
"evidence": {
"orderId": "serviceorder_EMVh3MmY1dFQ",
"bookingNumber": "TR-1",
"delivered": true,
"status": "Complete",
"podRef": "pod:serviceorder_EMVh3MmY1dFQ"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "transport-rail-sandbox"
},
"events": [
"Deal.delivered@1",
"Transport.delivered@1"
],
"meter": {
"charged": "0.00",
"posted": false
}
}Authorize & resolve
hold
transport.hold · POST /transports/hold · gate offer · sandbox · answers TransportHold@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 — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 — Transport.held@1 · Transport.holdRequested@1.
import { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.hold({"vin":"1C4RJFN95MC841539"})curl -X POST https://apis.vin/transports/hold \
-H 'content-type: application/json' \
-d '{"vin":"1C4RJFN95MC841539"}'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": "TransportHold@1",
"value": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"move": {
"id": "TR-3d05c84f",
"status": "held",
"reason": "caller-requested"
}
},
"evidence": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"move": {
"id": "TR-3d05c84f",
"status": "held",
"reason": "caller-requested"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}osdClaim
transport.osdClaim · POST /transports/osd-claim · gate key · sandbox · answers TransportOsdClaim@1
No input — this capability takes no request body.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 — Transport.osdClaimed@1.
import { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.osdClaim()curl -X POST https://apis.vin/transports/osd-claim \
-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": "TransportOsdClaim@1",
"value": {
"vin": "1HGCM82633A004352",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "Booked",
"claim": {
"status": "no-damage-recorded",
"amountCents": 0,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "1HGCM82633A004352",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "Booked",
"claim": {
"status": "no-damage-recorded",
"amountCents": 0,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Lifecycle & state
transfer
transport.transfer · POST /transports/transfer · gate offer · sandbox · answers TransportTransfer@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 — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 — Transport.transferFailed@1 · Transport.transferRequested@1 · Transport.transferred@1.
import { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.transfer({"vin":"1C4RJFN95MC841539"})curl -X POST https://apis.vin/transports/transfer \
-H 'content-type: application/json' \
-d '{"vin":"1C4RJFN95MC841539"}'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": "TransportTransfer@1",
"value": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"move": {
"id": "TR-3d05c84f",
"operation": "transfer",
"status": "completed"
}
},
"evidence": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"move": {
"id": "TR-3d05c84f",
"operation": "transfer",
"status": "completed"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}More actions
assignCarrier
transport.assignCarrier · POST /transports/assign-carrier · gate offer · sandbox · answers TransportAssignCarrier@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 — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 — Transport.assignCarrierRequested@1 · Transport.carrierAssigned@1.
import { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.assignCarrier({"vin":"1C4RJFN95MC841539"})curl -X POST https://apis.vin/transports/assign-carrier \
-H 'content-type: application/json' \
-d '{"vin":"1C4RJFN95MC841539"}'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": "TransportAssignCarrier@1",
"value": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"move": {
"id": "TR-3d05c84f",
"status": "carrier-assigned"
},
"carrierId": "CARR-e57fab28"
},
"evidence": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"move": {
"id": "TR-3d05c84f",
"status": "carrier-assigned"
},
"carrierId": "CARR-e57fab28"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}consolidate
transport.consolidate · POST /transports/consolidate · gate offer · sandbox · answers TransportConsolidate@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 — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 — Transport.consolidateRequested@1 · Transport.consolidated@1.
import { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.consolidate({"vin":"1C4RJFN95MC841539"})curl -X POST https://apis.vin/transports/consolidate \
-H 'content-type: application/json' \
-d '{"vin":"1C4RJFN95MC841539"}'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": "TransportConsolidate@1",
"value": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"move": {
"id": "TR-3d05c84f",
"operation": "consolidate",
"status": "completed"
}
},
"evidence": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"move": {
"id": "TR-3d05c84f",
"operation": "consolidate",
"status": "completed"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}deconsolidate
transport.deconsolidate · POST /transports/deconsolidate · gate offer · sandbox · answers TransportDeconsolidate@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 — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 — Transport.deconsolidateRequested@1 · Transport.deconsolidated@1.
import { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.deconsolidate({"vin":"1C4RJFN95MC841539"})curl -X POST https://apis.vin/transports/deconsolidate \
-H 'content-type: application/json' \
-d '{"vin":"1C4RJFN95MC841539"}'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": "TransportDeconsolidate@1",
"value": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"move": {
"id": "TR-3d05c84f",
"operation": "deconsolidate",
"status": "completed"
}
},
"evidence": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"move": {
"id": "TR-3d05c84f",
"operation": "deconsolidate",
"status": "completed"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}distance
transport.distance · GET /transports/distance · gate none · live · answers TransportDistance@1
Promoted — earned its own page: /catalog/transport.distance (computed on every regen: live on the wire + carries its own stateSet).
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (the VIN lens).
Try it — live: answers on the wire today. A sandbox key still selects the deterministic simulated mode — drive the full outcome range with the magic triggers.
import { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.distance({"vin":"1C4RJFN95MC841539"})curl 'https://apis.vin/transports/distance?vin=1C4RJFN95MC841539'expedite
transport.expedite · POST /transports/expedite · gate offer · sandbox · answers TransportExpedite@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 — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 — Transport.expediteRequested@1 · Transport.expedited@1.
import { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.expedite({"vin":"1C4RJFN95MC841539"})curl -X POST https://apis.vin/transports/expedite \
-H 'content-type: application/json' \
-d '{"vin":"1C4RJFN95MC841539"}'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": "TransportExpedite@1",
"value": {
"serviceType": "long-haul",
"standard": {
"priceCents": 68877,
"etaMaxDays": 1
},
"expedited": {
"priceCents": 92984,
"etaMaxDays": 1
},
"upliftCents": 24107,
"currency": "USD"
},
"evidence": {
"serviceType": "long-haul",
"standard": {
"priceCents": 68877,
"etaMaxDays": 1
},
"expedited": {
"priceCents": 92984,
"etaMaxDays": 1
},
"upliftCents": 24107,
"currency": "USD"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "transport-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}factor
transport.factor · POST /transports/factor · gate offer · sandbox · answers TransportFactor@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 — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 — Transport.factorRequested@1 · Transport.factored@1.
import { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.factor({"vin":"1C4RJFN95MC841539"})curl -X POST https://apis.vin/transports/factor \
-H 'content-type: application/json' \
-d '{"vin":"1C4RJFN95MC841539"}'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": "TransportFactor@1",
"value": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"factoring": {
"id": "FC-0159ab35",
"advancePct": 97,
"amountCents": 86815,
"currency": "USD",
"status": "advanced"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"factoring": {
"id": "FC-0159ab35",
"advancePct": 97,
"amountCents": 86815,
"currency": "USD",
"status": "advanced"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}geofenceTrigger
transport.geofenceTrigger · POST /transports/geofence-trigger · gate key · sandbox · answers TransportGeofenceTrigger@1
No input — this capability takes no request body.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 — Transport.geofenceTriggered@1.
import { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.geofenceTrigger()curl -X POST https://apis.vin/transports/geofence-trigger \
-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": "TransportGeofenceTrigger@1",
"value": {
"vin": "1HGCM82633A004352",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "Booked",
"event": {
"kind": "no-active-trip"
}
},
"evidence": {
"vin": "1HGCM82633A004352",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "Booked",
"event": {
"kind": "no-active-trip"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}inspectAtDelivery
transport.inspectAtDelivery · POST /transports/inspect-at-delivery · gate offer · sandbox · answers TransportInspectAtDelivery@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 — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 — Transport.inspectedAtDelivery@1 · Transport.inspectAtDeliveryRequested@1.
import { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.inspectAtDelivery({"vin":"1C4RJFN95MC841539"})curl -X POST https://apis.vin/transports/inspect-at-delivery \
-H 'content-type: application/json' \
-d '{"vin":"1C4RJFN95MC841539"}'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": "TransportInspectAtDelivery@1",
"value": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"inspection": {
"point": "delivery",
"grade": "clean",
"damageFound": false,
"newDamage": false
}
},
"evidence": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"inspection": {
"point": "delivery",
"grade": "clean",
"damageFound": false,
"newDamage": false
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}inspectAtPickup
transport.inspectAtPickup · POST /transports/inspect-at-pickup · gate offer · sandbox · answers TransportInspectAtPickup@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 — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 — Transport.inspectAtPickupRequested@1 · Transport.inspectedAtPickup@1.
import { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.inspectAtPickup({"vin":"1C4RJFN95MC841539"})curl -X POST https://apis.vin/transports/inspect-at-pickup \
-H 'content-type: application/json' \
-d '{"vin":"1C4RJFN95MC841539"}'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": "TransportInspectAtPickup@1",
"value": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"inspection": {
"point": "pickup",
"grade": "clean",
"damageFound": false,
"newDamage": false
}
},
"evidence": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"inspection": {
"point": "pickup",
"grade": "clean",
"damageFound": false,
"newDamage": false
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}pickup
transport.pickup · POST /transports/pickup · gate offer · sandbox · answers TransportPickup@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 — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 — Transport.pickupRequested@1 · Transport.pickedUp@1 · Transport.pickuped@1.
import { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.pickup({"vin":"1C4RJFN95MC841539"})curl -X POST https://apis.vin/transports/pickup \
-H 'content-type: application/json' \
-d '{"vin":"1C4RJFN95MC841539"}'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": "TransportPickup@1",
"value": {
"orderId": "serviceorder_EMVh3MmY1dFQ",
"bookingNumber": "TR-1",
"pickedUp": true,
"step": "picked_up",
"bizStep": "departing",
"status": "EnRoute"
},
"evidence": {
"orderId": "serviceorder_EMVh3MmY1dFQ",
"bookingNumber": "TR-1",
"pickedUp": true,
"step": "picked_up",
"bizStep": "departing",
"status": "EnRoute"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "transport-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}reroute
transport.reroute · POST /transports/reroute · gate offer · sandbox · answers TransportReroute@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 — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 — Transport.rerouteRequested@1 · Transport.rerouted@1.
import { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.reroute({"vin":"1C4RJFN95MC841539"})curl -X POST https://apis.vin/transports/reroute \
-H 'content-type: application/json' \
-d '{"vin":"1C4RJFN95MC841539"}'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": "TransportReroute@1",
"value": {
"rerouted": true,
"fromZip": "10001",
"toZip": "60601",
"serviceType": "long-haul",
"priceCents": 73676,
"currency": "USD",
"etaMaxDays": 1,
"distanceMiles": 435
},
"evidence": {
"rerouted": true,
"fromZip": "10001",
"toZip": "60601",
"serviceType": "long-haul",
"priceCents": 73676,
"currency": "USD",
"etaMaxDays": 1,
"distanceMiles": 435
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "transport-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}route
transport.route · GET /transports/route · gate none · sandbox · answers TransportRoute@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.route({"vin":"1C4RJFN95MC841539"})curl 'https://apis.vin/transports/route?vin=1C4RJFN95MC841539'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": "TransportRoute@1",
"value": {
"serviceType": "long-haul",
"distanceMiles": 356,
"originZip": "90001",
"destinationZip": "10001",
"etaMaxDays": 1
},
"evidence": {
"serviceType": "long-haul",
"distanceMiles": 356,
"originZip": "90001",
"destinationZip": "10001",
"etaMaxDays": 1
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "transport-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}tender
transport.tender · POST /transports/tender · gate offer · sandbox · answers TransportTender@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 — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 — ServiceOrder.settled@1 · Transport.completed@1 · Transport.dispatched@1 · Transport.ordered@1.
import { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.tender({"vin":"1C4RJFN95MC841539"})curl -X POST https://apis.vin/transports/tender \
-H 'content-type: application/json' \
-d '{"vin":"1C4RJFN95MC841539"}'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": "TransportTender@1",
"value": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"move": {
"id": "TR-3d05c84f",
"action": "tender",
"status": "tendered",
"rateCents": 89500,
"currency": "USD"
}
},
"evidence": {
"vin": "1C4RJFN95MC841539",
"noun": "transport",
"asOf": "2026-08-10",
"phase": "InTransit",
"move": {
"id": "TR-3d05c84f",
"action": "tender",
"status": "tendered",
"rateCents": 89500,
"currency": "USD"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counterparty-logistics-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}trace
transport.trace · GET /transports/trace · gate none · sandbox · answers TransportTrace@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (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 { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.trace({"vin":"1C4RJFN95MC841539"})curl 'https://apis.vin/transports/trace?vin=1C4RJFN95MC841539'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": "TransportTrace@1",
"value": {
"orderId": "serviceorder_EMVh3MmY1dFQ",
"bookingNumber": "TR-1",
"trace": [
{
"step": "dispatched",
"bizStep": "dispatching",
"event": "Transport.dispatched@1",
"status": "Dispatched"
},
{
"step": "picked_up",
"bizStep": "departing",
"event": "Transport.captured@1",
"status": "EnRoute"
},
{
"step": "in_transit",
"bizStep": "transporting",
"event": "Transport.captured@1",
"status": "EnRoute"
},
{
"step": "delivered",
"bizStep": "receiving",
"event": "Transport.delivered@1",
"status": "Complete"
}
],
"currentStatus": "Complete"
},
"evidence": {
"orderId": "serviceorder_EMVh3MmY1dFQ",
"bookingNumber": "TR-1",
"trace": [
{
"step": "dispatched",
"bizStep": "dispatching",
"event": "Transport.dispatched@1",
"status": "Dispatched"
},
{
"step": "picked_up",
"bizStep": "departing",
"event": "Transport.captured@1",
"status": "EnRoute"
},
{
"step": "in_transit",
"bizStep": "transporting",
"event": "Transport.captured@1",
"status": "EnRoute"
},
{
"step": "delivered",
"bizStep": "receiving",
"event": "Transport.delivered@1",
"status": "Complete"
}
],
"currentStatus": "Complete"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "transport-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}transitTime
transport.transitTime · GET /transports/transit-time · gate none · live · answers TransportTransitTime@1
Promoted — earned its own page: /catalog/transport.transitTime (computed on every regen: live on the wire + carries its own stateSet).
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — transport.vin serves this noun on its two routes: / (the landing) · /1C4RJFN95MC841539 (the VIN lens).
Try it — live: answers on the wire today. A sandbox key still selects the deterministic simulated mode — drive the full outcome range with the magic triggers.
import { transport } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await transport.transitTime({"vin":"1C4RJFN95MC841539"})curl 'https://apis.vin/transports/transit-time?vin=1C4RJFN95MC841539'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.
Transport
Schema
| Property | Type | Notes |
|---|---|---|
id | id | — |
subjectId | ref→Deal | — |
pickup | Location | — |
dropoff | Location | — |
product | enum | open|enclosed |
carrierId | ref→Carrier | — |
legs | Leg[] | — |
eta | datetime | — |
pod | ref→ProofOfDelivery | — |
status | TransportFSM | — |
Relationships
| From | To | Cardinality | As |
|---|---|---|---|
deal | transport | 1:0..* | moved |
transport | carrier | *:1 | carried by |
transport | bol | 1:0..1 | proven by |
Modeled
The noun drawn out — its record shape, its lifecycle, and how it is exercised end to end. 4 diagrams, rendered from the estate model.
Transport · Class model
Transport · State machine
Transport · State machine
Transport · Sequence
Generated from the catalog. Every capability, answer, gate, and entity on this page is a rendered descriptor — it cannot drift from the wire.