docs.vin

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

NounwholesaleParts
PillarCommerce (facets: 4 data · 3 services · 6 commerce)
Capabilities13 — 0 live · 13 sandbox · 0 declared
EntitiesPart
Doorsaggregator.vin
SDKVin.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:

Discover & read

availability

wholesaleParts.availability · GET /wholesale-parts/availability · gate none · sandbox · answers WholesalePartsAvailability@1

FieldTypeRequiredNotes
vinstringno

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

the SDK — wholesaleParts.availability
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"})
GET /wholesale-parts/availability
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.

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

FieldTypeRequiredNotes
vinstringno

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

the SDK — wholesaleParts.accountLookup
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"})
GET /wholesale-parts/account-lookup
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.

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

FieldTypeRequiredNotes
vinstringno

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

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

EmitsWholesaleParts.quoteRequested@1 · WholesaleParts.quoted@1.

the SDK — wholesaleParts.quote
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"})
POST /wholesale-parts/quote
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.

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

FieldTypeRequiredNotes
vinstringno

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

the SDK — wholesaleParts.price
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"})
GET /wholesale-parts/price
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.

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

FieldTypeRequiredNotes
vinstringno

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

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

EmitsWholesaleParts.rebateRequested@1 · WholesaleParts.rebated@1.

the SDK — wholesaleParts.rebate
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"})
POST /wholesale-parts/rebate
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.

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

FieldTypeRequiredNotes
vinstringno

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

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

EmitsWholesaleParts.netTermsRequested@1 · WholesaleParts.netTermsSet@1.

the SDK — wholesaleParts.netTerms
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"})
POST /wholesale-parts/net-terms
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.

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

FieldTypeRequiredNotes
vinstringno

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

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

EmitsServiceOrder.settled@1 · WholesaleParts.completed@1 · WholesaleParts.dispatched@1 · WholesaleParts.ordered@1.

the SDK — wholesaleParts.order
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"})
POST /wholesale-parts/order
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.

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

FieldTypeRequiredNotes
vinstringno

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

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

EmitsWholesaleParts.paid@1 · WholesaleParts.payFailed@1 · WholesaleParts.payRequested@1.

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

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

FieldTypeRequiredNotes
vinstringno

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

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

EmitsWholesaleParts.invoiceFailed@1 · WholesaleParts.invoiceRequested@1 · WholesaleParts.invoiced@1.

the SDK — wholesaleParts.invoice
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"})
POST /wholesale-parts/invoice
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.

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

FieldTypeRequiredNotes
vinstringno

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

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

EmitsWholesaleParts.deliverFailed@1 · WholesaleParts.deliverRequested@1 · WholesaleParts.delivered@1.

the SDK — wholesaleParts.deliver
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"})
POST /wholesale-parts/deliver
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.

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

FieldTypeRequiredNotes
vinstringno

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

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

EmitsWholesaleParts.returnRequested@1 · WholesaleParts.returned@1.

the SDK — wholesaleParts.return
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"})
POST /wholesale-parts/return
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.

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

FieldTypeRequiredNotes
vinstringno

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

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

EmitsWholesaleParts.pickRequested@1 · WholesaleParts.picked@1.

the SDK — wholesaleParts.pick
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"})
POST /wholesale-parts/pick
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.

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

FieldTypeRequiredNotes
vinstringno

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

the SDK — wholesaleParts.tier
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"})
GET /wholesale-parts/tier
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.

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