bol
The bol noun — identity, lifecycle, events, and every capability as an anchored section: 13 capabilities, 0 live, 13 sandbox, 0 declared.
bol is one of the estate's 317 automotive nouns — a job a car needs done. It carries 13 capabilities: 0 live, 13 sandbox, 0 declared · doors aggregator.vin.
Identity
| Noun | bol |
| Pillar | Services (facets: 5 data · 6 services · 2 commerce) |
| Capabilities | 13 — 0 live · 13 sandbox · 0 declared |
| Entities | Transport |
| Doors | aggregator.vin |
| SDK | Vin.bol.* from apis.vin |
| Address | /catalog/bol#{action} — the anchor IS the wire name minus bol. |
Events
The vocabulary this noun can append to the record — 16 past-tense, versioned event types, each linked to the capability that emits it:
Bol.amendRequested@1— emitted byamendBol.amended@1— emitted byamendBol.deliverySignRequested@1— emitted bydeliverySignBol.deliverySigned@1— emitted bydeliverySignBol.exceptionNoted@1— emitted bynoteExceptionBol.generateRequested@1— emitted bygenerateBol.generated@1— emitted bygenerateBol.noteExceptionRequested@1— emitted bynoteExceptionBol.paid@1— emitted bypayAgainstBol.payAgainstRequested@1— emitted bypayAgainstBol.pickupSignRequested@1— emitted bypickupSignBol.pickupSigned@1— emitted bypickupSignBol.releaseAgainstRequested@1— emitted byreleaseAgainstBol.released@1— emitted byreleaseAgainstBol.signRequested@1— emitted bysignBol.signed@1— emitted bysign
Discover & read
read
bol.read · GET /bols/read · gate none · sandbox · answers BolRead@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /5GAEVAKS4TJ127068 (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 { bol } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await bol.read({"vin":"5GAEVAKS4TJ127068"})curl 'https://apis.vin/bols/read?vin=5GAEVAKS4TJ127068'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": "BolRead@1",
"value": {
"vin": "5GAEVAKS4TJ127068",
"noun": "bol",
"asOf": "2026-08-10",
"bolId": "BOL-7db70a65",
"phase": "Dispatched",
"bol": {
"id": "BOL-7db70a65",
"loadId": "LD-8cc673fc",
"carrierId": "CARR-063379bd",
"status": "dispatched",
"freight": "vehicle",
"rateCents": 89500,
"currency": "USD",
"signatures": {
"pickup": {
"signed": false
},
"delivery": {
"signed": false
}
}
}
},
"evidence": {
"vin": "5GAEVAKS4TJ127068",
"noun": "bol",
"asOf": "2026-08-10",
"bolId": "BOL-7db70a65",
"phase": "Dispatched",
"bol": {
"id": "BOL-7db70a65",
"loadId": "LD-8cc673fc",
"carrierId": "CARR-063379bd",
"status": "dispatched",
"freight": "vehicle",
"rateCents": 89500,
"currency": "USD",
"signatures": {
"pickup": {
"signed": false
},
"delivery": {
"signed": false
}
}
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "paper-trail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}history
bol.history · GET /bols/history · gate none · sandbox · answers BolHistory@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /5GAEVAKS4TJ127068 (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 { bol } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await bol.history({"vin":"5GAEVAKS4TJ127068"})curl 'https://apis.vin/bols/history?vin=5GAEVAKS4TJ127068'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": "BolHistory@1",
"value": {
"vin": "5GAEVAKS4TJ127068",
"noun": "bol",
"asOf": "2026-08-10",
"bolId": "BOL-7db70a65",
"phase": "Dispatched",
"events": [
{
"at": "2026-08-03",
"on": "Transport.dispatched@1",
"from": "Booked",
"to": "Dispatched",
"status": "dispatched"
}
]
},
"evidence": {
"vin": "5GAEVAKS4TJ127068",
"noun": "bol",
"asOf": "2026-08-10",
"bolId": "BOL-7db70a65",
"phase": "Dispatched",
"events": [
{
"at": "2026-08-03",
"on": "Transport.dispatched@1",
"from": "Booked",
"to": "Dispatched",
"status": "dispatched"
}
]
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "paper-trail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}status
bol.status · GET /bols/status · gate none · sandbox · answers BolStatus@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /5GAEVAKS4TJ127068 (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 { bol } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await bol.status({"vin":"5GAEVAKS4TJ127068"})curl 'https://apis.vin/bols/status?vin=5GAEVAKS4TJ127068'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": "BolStatus@1",
"value": {
"vin": "5GAEVAKS4TJ127068",
"noun": "bol",
"asOf": "2026-08-10",
"bolId": "BOL-7db70a65",
"phase": "Dispatched",
"bol": {
"id": "BOL-7db70a65",
"loadId": "LD-8cc673fc",
"carrierId": "CARR-063379bd",
"status": "dispatched",
"freight": "vehicle",
"rateCents": 89500,
"currency": "USD",
"signatures": {
"pickup": {
"signed": false
},
"delivery": {
"signed": false
}
}
}
},
"evidence": {
"vin": "5GAEVAKS4TJ127068",
"noun": "bol",
"asOf": "2026-08-10",
"bolId": "BOL-7db70a65",
"phase": "Dispatched",
"bol": {
"id": "BOL-7db70a65",
"loadId": "LD-8cc673fc",
"carrierId": "CARR-063379bd",
"status": "dispatched",
"freight": "vehicle",
"rateCents": 89500,
"currency": "USD",
"signatures": {
"pickup": {
"signed": false
},
"delivery": {
"signed": false
}
}
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "paper-trail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}verify
bol.verify · GET /bols/verify · gate none · sandbox · answers BolVerify@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /5GAEVAKS4TJ127068 (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 { bol } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await bol.verify({"vin":"5GAEVAKS4TJ127068"})curl 'https://apis.vin/bols/verify?vin=5GAEVAKS4TJ127068'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": "BolVerify@1",
"value": {
"vin": "5GAEVAKS4TJ127068",
"noun": "bol",
"asOf": "2026-08-10",
"bolId": "BOL-7db70a65",
"phase": "Dispatched",
"verification": {
"id": "BOL-7db70a65",
"authentic": true,
"loadId": "LD-8cc673fc",
"signaturesValid": false,
"position": "Dispatched"
}
},
"evidence": {
"vin": "5GAEVAKS4TJ127068",
"noun": "bol",
"asOf": "2026-08-10",
"bolId": "BOL-7db70a65",
"phase": "Dispatched",
"verification": {
"id": "BOL-7db70a65",
"authentic": true,
"loadId": "LD-8cc673fc",
"signaturesValid": false,
"position": "Dispatched"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "paper-trail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Fulfill & operate
generate
bol.generate · POST /bols/generate · gate offer · sandbox · answers BolGenerate@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /5GAEVAKS4TJ127068 (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 — Bol.generateRequested@1 · Bol.generated@1.
import { bol } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await bol.generate({"vin":"5GAEVAKS4TJ127068"})curl -X POST https://apis.vin/bols/generate \
-H 'content-type: application/json' \
-d '{"vin":"5GAEVAKS4TJ127068"}'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": "BolGenerate@1",
"value": {
"vin": "5GAEVAKS4TJ127068",
"noun": "bol",
"asOf": "2026-08-10",
"bolId": "BOL-7db70a65",
"phase": "Dispatched",
"bol": {
"id": "BOL-7db70a65",
"loadId": "LD-8cc673fc",
"status": "already-issued"
}
},
"evidence": {
"vin": "5GAEVAKS4TJ127068",
"noun": "bol",
"asOf": "2026-08-10",
"bolId": "BOL-7db70a65",
"phase": "Dispatched",
"bol": {
"id": "BOL-7db70a65",
"loadId": "LD-8cc673fc",
"status": "already-issued"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "paper-trail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Authorize & resolve
sign
bol.sign · POST /bols/sign · gate offer · sandbox · answers BolSign@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /5GAEVAKS4TJ127068 (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 — Bol.signRequested@1 · Bol.signed@1.
import { bol } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await bol.sign({"vin":"5GAEVAKS4TJ127068"})curl -X POST https://apis.vin/bols/sign \
-H 'content-type: application/json' \
-d '{"vin":"5GAEVAKS4TJ127068"}'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": "BolSign@1",
"value": {
"vin": "5GAEVAKS4TJ127068",
"noun": "bol",
"asOf": "2026-08-10",
"bolId": "BOL-7db70a65",
"phase": "Dispatched",
"signatures": {
"id": "BOL-7db70a65",
"pickup": {
"signed": false
},
"delivery": {
"signed": false
}
}
},
"evidence": {
"vin": "5GAEVAKS4TJ127068",
"noun": "bol",
"asOf": "2026-08-10",
"bolId": "BOL-7db70a65",
"phase": "Dispatched",
"signatures": {
"id": "BOL-7db70a65",
"pickup": {
"signed": false
},
"delivery": {
"signed": false
}
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "paper-trail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}deliverySign
bol.deliverySign · POST /bols/delivery-sign · gate offer · sandbox · answers BolDeliverySign@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /5GAEVAKS4TJ127068 (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 — Bol.deliverySignRequested@1 · Bol.deliverySigned@1.
import { bol } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await bol.deliverySign({"vin":"5GAEVAKS4TJ127068"})curl -X POST https://apis.vin/bols/delivery-sign \
-H 'content-type: application/json' \
-d '{"vin":"5GAEVAKS4TJ127068"}'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": "BolDeliverySign@1",
"value": {
"vin": "5GAEVAKS4TJ127068",
"noun": "bol",
"asOf": "2026-08-10",
"bolId": "BOL-7db70a65",
"phase": "Dispatched",
"signature": {
"id": "BOL-7db70a65",
"role": "destination",
"status": "not-yet-delivered"
}
},
"evidence": {
"vin": "5GAEVAKS4TJ127068",
"noun": "bol",
"asOf": "2026-08-10",
"bolId": "BOL-7db70a65",
"phase": "Dispatched",
"signature": {
"id": "BOL-7db70a65",
"role": "destination",
"status": "not-yet-delivered"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "paper-trail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}pickupSign
bol.pickupSign · POST /bols/pickup-sign · gate offer · sandbox · answers BolPickupSign@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /5GAEVAKS4TJ127068 (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 — Bol.pickupSignRequested@1 · Bol.pickupSigned@1.
import { bol } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await bol.pickupSign({"vin":"5GAEVAKS4TJ127068"})curl -X POST https://apis.vin/bols/pickup-sign \
-H 'content-type: application/json' \
-d '{"vin":"5GAEVAKS4TJ127068"}'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": "BolPickupSign@1",
"value": {
"vin": "5GAEVAKS4TJ127068",
"noun": "bol",
"asOf": "2026-08-10",
"bolId": "BOL-7db70a65",
"phase": "Dispatched",
"signature": {
"id": "BOL-7db70a65",
"role": "origin",
"status": "signed",
"signedBy": "shipping agent"
}
},
"evidence": {
"vin": "5GAEVAKS4TJ127068",
"noun": "bol",
"asOf": "2026-08-10",
"bolId": "BOL-7db70a65",
"phase": "Dispatched",
"signature": {
"id": "BOL-7db70a65",
"role": "origin",
"status": "signed",
"signedBy": "shipping agent"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "paper-trail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}More actions
amend
bol.amend · POST /bols/amend · gate offer · sandbox · answers BolAmend@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /5GAEVAKS4TJ127068 (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 — Bol.amendRequested@1 · Bol.amended@1.
import { bol } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await bol.amend({"vin":"5GAEVAKS4TJ127068"})curl -X POST https://apis.vin/bols/amend \
-H 'content-type: application/json' \
-d '{"vin":"5GAEVAKS4TJ127068"}'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": "BolAmend@1",
"value": {
"vin": "5GAEVAKS4TJ127068",
"noun": "bol",
"asOf": "2026-08-10",
"bolId": "BOL-7db70a65",
"phase": "Dispatched",
"amendment": {
"id": "BOL-7db70a65",
"status": "amended",
"revision": 2
}
},
"evidence": {
"vin": "5GAEVAKS4TJ127068",
"noun": "bol",
"asOf": "2026-08-10",
"bolId": "BOL-7db70a65",
"phase": "Dispatched",
"amendment": {
"id": "BOL-7db70a65",
"status": "amended",
"revision": 2
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "paper-trail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}exceptions
bol.exceptions · GET /bols/exceptions · gate none · sandbox · answers BolExceptions@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /5GAEVAKS4TJ127068 (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 { bol } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await bol.exceptions({"vin":"5GAEVAKS4TJ127068"})curl 'https://apis.vin/bols/exceptions?vin=5GAEVAKS4TJ127068'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": "BolExceptions@1",
"value": {
"vin": "5GAEVAKS4TJ127068",
"noun": "bol",
"asOf": "2026-08-10",
"bolId": "BOL-7db70a65",
"phase": "Dispatched",
"exceptions": []
},
"evidence": {
"vin": "5GAEVAKS4TJ127068",
"noun": "bol",
"asOf": "2026-08-10",
"bolId": "BOL-7db70a65",
"phase": "Dispatched",
"exceptions": []
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "paper-trail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}noteException
bol.noteException · POST /bols/note-exception · gate offer · sandbox · answers BolNoteException@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /5GAEVAKS4TJ127068 (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 — Bol.noteExceptionRequested@1 · Bol.exceptionNoted@1.
import { bol } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await bol.noteException({"vin":"5GAEVAKS4TJ127068"})curl -X POST https://apis.vin/bols/note-exception \
-H 'content-type: application/json' \
-d '{"vin":"5GAEVAKS4TJ127068"}'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": "BolNoteException@1",
"value": {
"vin": "5GAEVAKS4TJ127068",
"noun": "bol",
"asOf": "2026-08-10",
"bolId": "BOL-7db70a65",
"phase": "Dispatched",
"exception": {
"status": "no-exception-on-move"
}
},
"evidence": {
"vin": "5GAEVAKS4TJ127068",
"noun": "bol",
"asOf": "2026-08-10",
"bolId": "BOL-7db70a65",
"phase": "Dispatched",
"exception": {
"status": "no-exception-on-move"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "paper-trail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}payAgainst
bol.payAgainst · POST /bols/pay-against · gate offer · sandbox · answers BolPayAgainst@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /5GAEVAKS4TJ127068 (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 — Bol.paid@1 · Bol.payAgainstRequested@1.
import { bol } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await bol.payAgainst({"vin":"5GAEVAKS4TJ127068"})curl -X POST https://apis.vin/bols/pay-against \
-H 'content-type: application/json' \
-d '{"vin":"5GAEVAKS4TJ127068"}'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": "BolPayAgainst@1",
"value": {
"vin": "5GAEVAKS4TJ127068",
"noun": "bol",
"asOf": "2026-08-10",
"bolId": "BOL-7db70a65",
"phase": "Dispatched",
"payment": {
"id": "PAY-7d4fa96e",
"status": "settled",
"amountCents": 89500,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "5GAEVAKS4TJ127068",
"noun": "bol",
"asOf": "2026-08-10",
"bolId": "BOL-7db70a65",
"phase": "Dispatched",
"payment": {
"id": "PAY-7d4fa96e",
"status": "settled",
"amountCents": 89500,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "paper-trail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}releaseAgainst
bol.releaseAgainst · POST /bols/release-against · gate offer · sandbox · answers BolReleaseAgainst@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /5GAEVAKS4TJ127068 (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 — Bol.releaseAgainstRequested@1 · Bol.released@1.
import { bol } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await bol.releaseAgainst({"vin":"5GAEVAKS4TJ127068"})curl -X POST https://apis.vin/bols/release-against \
-H 'content-type: application/json' \
-d '{"vin":"5GAEVAKS4TJ127068"}'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": "BolReleaseAgainst@1",
"value": {
"vin": "5GAEVAKS4TJ127068",
"noun": "bol",
"asOf": "2026-08-10",
"bolId": "BOL-7db70a65",
"phase": "Dispatched",
"release": {
"id": "BOL-7db70a65",
"status": "not-yet-delivered"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "5GAEVAKS4TJ127068",
"noun": "bol",
"asOf": "2026-08-10",
"bolId": "BOL-7db70a65",
"phase": "Dispatched",
"release": {
"id": "BOL-7db70a65",
"status": "not-yet-delivered"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "paper-trail-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.
Transport
Generated from the catalog. Every capability, answer, gate, and entity on this page is a rendered descriptor — it cannot drift from the wire.