wholesaleParts
The wholesaleParts noun — identity, lifecycle, events, and every capability as an anchored section: 13 capabilities, 0 live, 13 sandbox, 0 declared.
wholesaleParts 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 | wholesaleParts |
| Pillar | Commerce (facets: 4 data · 3 services · 6 commerce) |
| Capabilities | 13 — 0 live · 13 sandbox · 0 declared |
| Entities | Part |
| Doors | aggregator.vin |
| SDK | Vin.wholesaleParts.* from apis.vin |
| Address | /catalog/wholesaleParts#{action} — the anchor IS the wire name minus wholesaleParts. |
Events
The vocabulary this noun can append to the record — 23 past-tense, versioned event types, each linked to the capability that emits it:
ServiceOrder.settled@1— emitted byorderWholesaleParts.completed@1— emitted byorderWholesaleParts.deliverFailed@1— emitted bydeliverWholesaleParts.deliverRequested@1— emitted bydeliverWholesaleParts.delivered@1— emitted bydeliverWholesaleParts.dispatched@1— emitted byorderWholesaleParts.invoiceFailed@1— emitted byinvoiceWholesaleParts.invoiceRequested@1— emitted byinvoiceWholesaleParts.invoiced@1— emitted byinvoiceWholesaleParts.netTermsRequested@1— emitted bynetTermsWholesaleParts.netTermsSet@1— emitted bynetTermsWholesaleParts.ordered@1— emitted byorderWholesaleParts.paid@1— emitted bypayWholesaleParts.payFailed@1— emitted bypayWholesaleParts.payRequested@1— emitted bypayWholesaleParts.pickRequested@1— emitted bypickWholesaleParts.picked@1— emitted bypickWholesaleParts.quoteRequested@1— emitted byquoteWholesaleParts.quoted@1— emitted byquoteWholesaleParts.rebateRequested@1— emitted byrebateWholesaleParts.rebated@1— emitted byrebateWholesaleParts.returnRequested@1— emitted byreturnWholesaleParts.returned@1— emitted byreturn
Discover & read
availability
wholesaleParts.availability · GET /wholesale-parts/availability · gate none · sandbox · answers WholesalePartsAvailability@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /2C4RC1BG5RR140322 (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 { wholesaleParts } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await wholesaleParts.availability({"vin":"2C4RC1BG5RR140322"})curl 'https://apis.vin/wholesale-parts/availability?vin=2C4RC1BG5RR140322'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": "WholesalePartsAvailability@1",
"value": {
"vin": "2C4RC1BG5RR140322",
"noun": "wholesaleParts",
"asOf": "2026-08-10",
"partNumber": "P-d64ee488",
"onHand": 13,
"binLocation": "B-31",
"status": "counted"
},
"evidence": {
"vin": "2C4RC1BG5RR140322",
"noun": "wholesaleParts",
"asOf": "2026-08-10",
"partNumber": "P-d64ee488",
"onHand": 13,
"binLocation": "B-31",
"status": "counted"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counter-and-ledger-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}accountLookup
wholesaleParts.accountLookup · GET /wholesale-parts/account-lookup · gate none · sandbox · answers WholesalePartsAccountLookup@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /2C4RC1BG5RR140322 (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 { wholesaleParts } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await wholesaleParts.accountLookup({"vin":"2C4RC1BG5RR140322"})curl 'https://apis.vin/wholesale-parts/account-lookup?vin=2C4RC1BG5RR140322'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": "WholesalePartsAccountLookup@1",
"value": {
"vin": "2C4RC1BG5RR140322",
"noun": "wholesaleParts",
"asOf": "2026-08-10",
"partNumber": "P-d64ee488",
"account": {
"id": "WPA-7586ccd6",
"name": "Ava Good",
"tier": "super-prime",
"netTermsDays": 45,
"standing": "open-terms"
}
},
"evidence": {
"vin": "2C4RC1BG5RR140322",
"noun": "wholesaleParts",
"asOf": "2026-08-10",
"partNumber": "P-d64ee488",
"account": {
"id": "WPA-7586ccd6",
"name": "Ava Good",
"tier": "super-prime",
"netTermsDays": 45,
"standing": "open-terms"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counter-and-ledger-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Quote & price
quote
wholesaleParts.quote · POST /wholesale-parts/quote · gate offer · sandbox · answers WholesalePartsQuote@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) · /2C4RC1BG5RR140322 (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 — WholesaleParts.quoteRequested@1 · WholesaleParts.quoted@1.
import { wholesaleParts } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await wholesaleParts.quote({"vin":"2C4RC1BG5RR140322"})curl -X POST https://apis.vin/wholesale-parts/quote \
-H 'content-type: application/json' \
-d '{"vin":"2C4RC1BG5RR140322"}'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": "WholesalePartsQuote@1",
"value": {
"vin": "2C4RC1BG5RR140322",
"noun": "wholesaleParts",
"asOf": "2026-08-10",
"partNumber": "P-d64ee488",
"quote": {
"id": "WQ-2559094c",
"amountCents": 16800,
"netTermsDays": 45,
"currency": "USD",
"status": "extended"
}
},
"evidence": {
"vin": "2C4RC1BG5RR140322",
"noun": "wholesaleParts",
"asOf": "2026-08-10",
"partNumber": "P-d64ee488",
"quote": {
"id": "WQ-2559094c",
"amountCents": 16800,
"netTermsDays": 45,
"currency": "USD",
"status": "extended"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counter-and-ledger-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}price
wholesaleParts.price · GET /wholesale-parts/price · gate none · sandbox · answers WholesalePartsPrice@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /2C4RC1BG5RR140322 (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 { wholesaleParts } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await wholesaleParts.price({"vin":"2C4RC1BG5RR140322"})curl 'https://apis.vin/wholesale-parts/price?vin=2C4RC1BG5RR140322'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": "WholesalePartsPrice@1",
"value": {
"vin": "2C4RC1BG5RR140322",
"noun": "wholesaleParts",
"asOf": "2026-08-10",
"partNumber": "P-d64ee488",
"unitPriceCents": 16800,
"retailCents": 24000,
"currency": "USD",
"priceLevel": "wholesale"
},
"evidence": {
"vin": "2C4RC1BG5RR140322",
"noun": "wholesaleParts",
"asOf": "2026-08-10",
"partNumber": "P-d64ee488",
"unitPriceCents": 16800,
"retailCents": 24000,
"currency": "USD",
"priceLevel": "wholesale"
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counter-and-ledger-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}rebate
wholesaleParts.rebate · POST /wholesale-parts/rebate · gate offer · sandbox · answers WholesalePartsRebate@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) · /2C4RC1BG5RR140322 (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 — WholesaleParts.rebateRequested@1 · WholesaleParts.rebated@1.
import { wholesaleParts } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await wholesaleParts.rebate({"vin":"2C4RC1BG5RR140322"})curl -X POST https://apis.vin/wholesale-parts/rebate \
-H 'content-type: application/json' \
-d '{"vin":"2C4RC1BG5RR140322"}'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": "WholesalePartsRebate@1",
"value": {
"vin": "2C4RC1BG5RR140322",
"noun": "wholesaleParts",
"asOf": "2026-08-10",
"partNumber": "P-d64ee488",
"rebate": {
"id": "RB-7014f123",
"pct": 2,
"amountCents": 336,
"currency": "USD",
"status": "accrued"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "2C4RC1BG5RR140322",
"noun": "wholesaleParts",
"asOf": "2026-08-10",
"partNumber": "P-d64ee488",
"rebate": {
"id": "RB-7014f123",
"pct": 2,
"amountCents": 336,
"currency": "USD",
"status": "accrued"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counter-and-ledger-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}netTerms
wholesaleParts.netTerms · POST /wholesale-parts/net-terms · gate offer · sandbox · answers WholesalePartsNetTerms@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) · /2C4RC1BG5RR140322 (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 — WholesaleParts.netTermsRequested@1 · WholesaleParts.netTermsSet@1.
import { wholesaleParts } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await wholesaleParts.netTerms({"vin":"2C4RC1BG5RR140322"})curl -X POST https://apis.vin/wholesale-parts/net-terms \
-H 'content-type: application/json' \
-d '{"vin":"2C4RC1BG5RR140322"}'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": "WholesalePartsNetTerms@1",
"value": {
"vin": "2C4RC1BG5RR140322",
"noun": "wholesaleParts",
"asOf": "2026-08-10",
"partNumber": "P-d64ee488",
"netTerms": {
"accountId": "WPA-7586ccd6",
"days": 45,
"basis": "credit-tier",
"tier": "super-prime",
"status": "extended"
}
},
"evidence": {
"vin": "2C4RC1BG5RR140322",
"noun": "wholesaleParts",
"asOf": "2026-08-10",
"partNumber": "P-d64ee488",
"netTerms": {
"accountId": "WPA-7586ccd6",
"days": 45,
"basis": "credit-tier",
"tier": "super-prime",
"status": "extended"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counter-and-ledger-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Apply & book
order
wholesaleParts.order · POST /wholesale-parts/order · gate offer · sandbox · answers WholesalePartsOrder@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) · /2C4RC1BG5RR140322 (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 · WholesaleParts.completed@1 · WholesaleParts.dispatched@1 · WholesaleParts.ordered@1.
import { wholesaleParts } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await wholesaleParts.order({"vin":"2C4RC1BG5RR140322"})curl -X POST https://apis.vin/wholesale-parts/order \
-H 'content-type: application/json' \
-d '{"vin":"2C4RC1BG5RR140322"}'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": "WholesalePartsOrder@1",
"value": {
"vin": "2C4RC1BG5RR140322",
"noun": "wholesaleParts",
"asOf": "2026-08-10",
"partNumber": "P-d64ee488",
"order": {
"id": "ORD-dae6b8b0",
"item": "replacement component",
"status": "placed",
"amountCents": 16800,
"netTermsDays": 45,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "2C4RC1BG5RR140322",
"noun": "wholesaleParts",
"asOf": "2026-08-10",
"partNumber": "P-d64ee488",
"order": {
"id": "ORD-dae6b8b0",
"item": "replacement component",
"status": "placed",
"amountCents": 16800,
"netTermsDays": 45,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counter-and-ledger-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Pay & settle
pay
wholesaleParts.pay · POST /wholesale-parts/pay · gate offer · sandbox · answers WholesalePartsPay@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) · /2C4RC1BG5RR140322 (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 — WholesaleParts.paid@1 · WholesaleParts.payFailed@1 · WholesaleParts.payRequested@1.
import { wholesaleParts } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await wholesaleParts.pay({"vin":"2C4RC1BG5RR140322"})curl -X POST https://apis.vin/wholesale-parts/pay \
-H 'content-type: application/json' \
-d '{"vin":"2C4RC1BG5RR140322"}'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": "WholesalePartsPay@1",
"value": {
"vin": "2C4RC1BG5RR140322",
"noun": "wholesaleParts",
"asOf": "2026-08-10",
"partNumber": "P-d64ee488",
"payment": {
"id": "PAY-e353b5e6",
"status": "settled",
"amountCents": 16800,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "2C4RC1BG5RR140322",
"noun": "wholesaleParts",
"asOf": "2026-08-10",
"partNumber": "P-d64ee488",
"payment": {
"id": "PAY-e353b5e6",
"status": "settled",
"amountCents": 16800,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counter-and-ledger-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}invoice
wholesaleParts.invoice · POST /wholesale-parts/invoice · gate offer · sandbox · answers WholesalePartsInvoice@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) · /2C4RC1BG5RR140322 (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 — WholesaleParts.invoiceFailed@1 · WholesaleParts.invoiceRequested@1 · WholesaleParts.invoiced@1.
import { wholesaleParts } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await wholesaleParts.invoice({"vin":"2C4RC1BG5RR140322"})curl -X POST https://apis.vin/wholesale-parts/invoice \
-H 'content-type: application/json' \
-d '{"vin":"2C4RC1BG5RR140322"}'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": "WholesalePartsInvoice@1",
"value": {
"vin": "2C4RC1BG5RR140322",
"noun": "wholesaleParts",
"asOf": "2026-08-10",
"partNumber": "P-d64ee488",
"invoice": {
"id": "INV-d0e649ab",
"status": "issued",
"amountCents": 16800,
"netTermsDays": 45,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "2C4RC1BG5RR140322",
"noun": "wholesaleParts",
"asOf": "2026-08-10",
"partNumber": "P-d64ee488",
"invoice": {
"id": "INV-d0e649ab",
"status": "issued",
"amountCents": 16800,
"netTermsDays": 45,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counter-and-ledger-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Fulfill & operate
deliver
wholesaleParts.deliver · POST /wholesale-parts/deliver · gate offer · sandbox · answers WholesalePartsDeliver@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) · /2C4RC1BG5RR140322 (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 — WholesaleParts.deliverFailed@1 · WholesaleParts.deliverRequested@1 · WholesaleParts.delivered@1.
import { wholesaleParts } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await wholesaleParts.deliver({"vin":"2C4RC1BG5RR140322"})curl -X POST https://apis.vin/wholesale-parts/deliver \
-H 'content-type: application/json' \
-d '{"vin":"2C4RC1BG5RR140322"}'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": "WholesalePartsDeliver@1",
"value": {
"vin": "2C4RC1BG5RR140322",
"noun": "wholesaleParts",
"asOf": "2026-08-10",
"partNumber": "P-d64ee488",
"delivery": {
"id": "DLV-121d19a9",
"status": "delivered"
}
},
"evidence": {
"vin": "2C4RC1BG5RR140322",
"noun": "wholesaleParts",
"asOf": "2026-08-10",
"partNumber": "P-d64ee488",
"delivery": {
"id": "DLV-121d19a9",
"status": "delivered"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counter-and-ledger-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Lifecycle & state
return
wholesaleParts.return · POST /wholesale-parts/return · gate offer · sandbox · answers WholesalePartsReturn@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) · /2C4RC1BG5RR140322 (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 — WholesaleParts.returnRequested@1 · WholesaleParts.returned@1.
import { wholesaleParts } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await wholesaleParts.return({"vin":"2C4RC1BG5RR140322"})curl -X POST https://apis.vin/wholesale-parts/return \
-H 'content-type: application/json' \
-d '{"vin":"2C4RC1BG5RR140322"}'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": "WholesalePartsReturn@1",
"value": {
"vin": "2C4RC1BG5RR140322",
"noun": "wholesaleParts",
"asOf": "2026-08-10",
"partNumber": "P-d64ee488",
"refund": {
"id": "RF-e49fca4e",
"kind": "return",
"status": "issued",
"amountCents": 16800,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "2C4RC1BG5RR140322",
"noun": "wholesaleParts",
"asOf": "2026-08-10",
"partNumber": "P-d64ee488",
"refund": {
"id": "RF-e49fca4e",
"kind": "return",
"status": "issued",
"amountCents": 16800,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counter-and-ledger-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}More actions
pick
wholesaleParts.pick · POST /wholesale-parts/pick · gate offer · sandbox · answers WholesalePartsPick@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) · /2C4RC1BG5RR140322 (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 — WholesaleParts.pickRequested@1 · WholesaleParts.picked@1.
import { wholesaleParts } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await wholesaleParts.pick({"vin":"2C4RC1BG5RR140322"})curl -X POST https://apis.vin/wholesale-parts/pick \
-H 'content-type: application/json' \
-d '{"vin":"2C4RC1BG5RR140322"}'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": "WholesalePartsPick@1",
"value": {
"vin": "2C4RC1BG5RR140322",
"noun": "wholesaleParts",
"asOf": "2026-08-10",
"partNumber": "P-d64ee488",
"movement": {
"id": "MV-fac822b1",
"operation": "pick",
"status": "completed"
}
},
"evidence": {
"vin": "2C4RC1BG5RR140322",
"noun": "wholesaleParts",
"asOf": "2026-08-10",
"partNumber": "P-d64ee488",
"movement": {
"id": "MV-fac822b1",
"operation": "pick",
"status": "completed"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counter-and-ledger-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}tier
wholesaleParts.tier · GET /wholesale-parts/tier · gate none · sandbox · answers WholesalePartsTier@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /2C4RC1BG5RR140322 (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 { wholesaleParts } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await wholesaleParts.tier({"vin":"2C4RC1BG5RR140322"})curl 'https://apis.vin/wholesale-parts/tier?vin=2C4RC1BG5RR140322'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": "WholesalePartsTier@1",
"value": {
"vin": "2C4RC1BG5RR140322",
"noun": "wholesaleParts",
"asOf": "2026-08-10",
"partNumber": "P-d64ee488",
"tier": {
"accountId": "WPA-7586ccd6",
"tier": "super-prime",
"netTermsDays": 45,
"rebatePct": 2
}
},
"evidence": {
"vin": "2C4RC1BG5RR140322",
"noun": "wholesaleParts",
"asOf": "2026-08-10",
"partNumber": "P-d64ee488",
"tier": {
"accountId": "WPA-7586ccd6",
"tier": "super-prime",
"netTermsDays": 45,
"rebatePct": 2
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "counter-and-ledger-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.
Part
Modeled
The noun drawn out — its record shape, its lifecycle, and how it is exercised end to end. 3 diagrams, rendered from the estate model.
WholesaleParts · Class model
WholesaleParts · State machine
WholesaleParts · State machine
Generated from the catalog. Every capability, answer, gate, and entity on this page is a rendered descriptor — it cannot drift from the wire.