docs.vin

consignment

The consignment noun — identity, lifecycle, events, and every capability as an anchored section: 1 capability, 0 live, 1 sandbox, 0 declared.

consignment is one of the estate's 317 automotive nouns — a job a car needs done. It carries 1 capability: 0 live, 1 sandbox, 0 declared · doors aggregator.vin.

Identity

Nounconsignment
PillarCommerce (facets: 1 commerce)
Capabilities1 — 0 live · 1 sandbox · 0 declared
EntitiesListing
Doorsaggregator.vin
SDKVin.consignment.* from apis.vin
Address/catalog/consignment#{action} — the anchor IS the wire name minus consignment.

Events

The vocabulary this noun can append to the record — 1 past-tense, versioned event type, each linked to the capability that emits it:

Discover & read

list

consignment.list · POST /consignments/list · gate key · sandbox · answers ConsignmentList@1

No input — this capability takes no request body.

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

EmitsConsignment.listed@1.

the SDK — consignment.list
import { consignment } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await consignment.list()
POST /consignments/list
curl -X POST https://apis.vin/consignments/list \
  -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.

receipt · executed 2026-08-16T14:50:09.707Z · HTTP 200
{
  "type": "OK",
  "answers": "ConsignmentList@1",
  "value": {
    "vin": "1HGCM82633A004352",
    "noun": "consignment",
    "asOf": "2026-08-10",
    "listingId": "LST-e15977c4",
    "venue": "estate-storefront",
    "price": 499500,
    "odometer": 32490,
    "photos": [
      {
        "setId": "PH-8340ca96",
        "kind": "exterior",
        "shots": 8
      },
      {
        "setId": "PH-8340ca96",
        "kind": "interior",
        "shots": 4
      }
    ],
    "daysOnLot": 0,
    "commercialState": "retail",
    "consignment": {
      "id": "CSG-abfa7ae3",
      "status": "listed-on-consignment",
      "consignor": {
        "identityId": "ID-11f17424",
        "name": "Ava Good",
        "castRow": "super-prime",
        "tier": "super-prime",
        "score": 843
      },
      "store": {
        "id": "DLR-b9066ade",
        "name": "The Estate Store",
        "licenseId": "DL-7bcdd2ef"
      },
      "terms": {
        "successFeeCents": 9990,
        "currency": "USD",
        "basis": "listing-success-fee"
      }
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1HGCM82633A004352",
    "noun": "consignment",
    "asOf": "2026-08-10",
    "listingId": "LST-e15977c4",
    "venue": "estate-storefront",
    "price": 499500,
    "odometer": 32490,
    "photos": [
      {
        "setId": "PH-8340ca96",
        "kind": "exterior",
        "shots": 8
      },
      {
        "setId": "PH-8340ca96",
        "kind": "interior",
        "shots": 4
      }
    ],
    "daysOnLot": 0,
    "commercialState": "retail",
    "consignment": {
      "id": "CSG-abfa7ae3",
      "status": "listed-on-consignment",
      "consignor": {
        "identityId": "ID-11f17424",
        "name": "Ava Good",
        "castRow": "super-prime",
        "tier": "super-prime",
        "score": 843
      },
      "store": {
        "id": "DLR-b9066ade",
        "name": "The Estate Store",
        "licenseId": "DL-7bcdd2ef"
      },
      "terms": {
        "successFeeCents": 9990,
        "currency": "USD",
        "basis": "listing-success-fee"
      }
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "window-papers-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.

Listing

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.

Consignment · Class model

Consignment · State machine

Consignment · State machine

The consignment workflow

consignment · GET /workflows/consignment · gate key · sandbox · answers Deal@1

The workflow shares this address because its name IS this noun's slug — one namespace, one page (the wire name is the DOI). It is a composition of standalone acts over the grid: delete the workflow and every leaf still transacts on its own address.

FieldTypeRequiredNotes
workflowstringyesconst consignment
vinstringyes
dealTypestringnoconst CONSIGNMENT
consignorobjectnoparty ref pty_…
authoritystringnomnd_… — required when delegated

Modeled end to end — the stategraph it advances, the actors and messages it sequences, its decision logic, and its flow of funds:

Stategraph (dealLifecycle@1 · Consignment variant)

Sequence

Flow of funds (sankey)

EmitsDeal.opened@1 · Deal.advanced@1 · Deal.settled@1.

the SDK — consignment(vin)
import { consignment } from 'apis.vin'

// consignment is a workflow — a composition of standalone acts.
// Run it end-to-end, or call each leaf act directly.
const run = await consignment('1C4AJWAG4GL100417')
GET /workflows/consignment
curl 'https://apis.vin/workflows/consignment?workflow=consignment&vin=1C4AJWAG4GL100417'

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.348Z · HTTP 200
{
  "type": "OK",
  "answers": "Deal@1",
  "value": {
    "workflow": "consignment",
    "dealId": "DEAL-0JY44EO",
    "vin": "1C4AJWAG4GL100417",
    "state": "accepted",
    "currentStep": "intake",
    "steps": [
      {
        "name": "intake",
        "state": "active"
      },
      {
        "name": "list",
        "state": "pending"
      },
      {
        "name": "market",
        "state": "pending"
      },
      {
        "name": "sell",
        "state": "pending"
      },
      {
        "name": "remit",
        "state": "pending"
      }
    ],
    "stepCount": 5,
    "asOf": "2026-08-10"
  },
  "evidence": {
    "workflow": "consignment",
    "dealId": "DEAL-0JY44EO",
    "vin": "1C4AJWAG4GL100417",
    "state": "accepted",
    "currentStep": "intake",
    "steps": [
      {
        "name": "intake",
        "state": "active"
      },
      {
        "name": "list",
        "state": "pending"
      },
      {
        "name": "market",
        "state": "pending"
      },
      {
        "name": "sell",
        "state": "pending"
      },
      {
        "name": "remit",
        "state": "pending"
      }
    ],
    "stepCount": 5,
    "asOf": "2026-08-10"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "workflow-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": true
  }
}

Generated from the catalog. Every capability, answer, gate, and entity on this page is a rendered descriptor — it cannot drift from the wire.