docs.vin

oem

The oem noun — identity, lifecycle, events, and every capability as an anchored section: 22 capabilities, 4 live, 18 sandbox, 0 declared.

oem is one of the estate's 317 automotive nouns — a job a car needs done. It carries 22 capabilities: 4 live, 18 sandbox, 0 declared · doors oem.vin.

Identity

Nounoem
PillarData (facets: 9 data · 6 services · 7 commerce)
Capabilities22 — 4 live · 18 sandbox · 0 declared
EntitiesOem
Doorsoem.vin
SDKVin.oem.* from apis.vin
Address/catalog/oem#{action} — the anchor IS the wire name minus oem.

Events

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

Discover & read

lookup

oem.lookup · GET /oems/lookup · gate none · sandbox · answers OemLookup@1

FieldTypeRequiredNotes
vinstringno

Dooroem.vin serves this noun on its two routes: / (the landing) · /W1W4DBHY5MT050798 (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 — oem.lookup
import { oem } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await oem.lookup({"vin":"W1W4DBHY5MT050798"})
GET /oems/lookup
curl 'https://apis.vin/oems/lookup?vin=W1W4DBHY5MT050798'

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:14.488Z · HTTP 200
{
  "type": "OK",
  "answers": "OemLookup@1",
  "value": {
    "partyId": "pty_119BACG",
    "type": "organization",
    "name": "OEM-0EI2ZAL",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "W1W"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "vin": "W1W4DBHY5MT050798",
    "noun": "oem",
    "asOf": "2026-08-10",
    "oem": {
      "wmi": "W1W",
      "dealerNetwork": {
        "dealerId": "DLR-b9066ade",
        "authorized": true
      }
    }
  },
  "evidence": {
    "partyId": "pty_119BACG",
    "type": "organization",
    "name": "OEM-0EI2ZAL",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "W1W"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "vin": "W1W4DBHY5MT050798",
    "noun": "oem",
    "asOf": "2026-08-10",
    "oem": {
      "wmi": "W1W",
      "dealerNetwork": {
        "dealerId": "DLR-b9066ade",
        "authorized": true
      }
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "oem-factory-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

read

oem.read · GET /oems/read · gate none · sandbox · answers OemRead@1

FieldTypeRequiredNotes
vinstringno

Dooroem.vin serves this noun on its two routes: / (the landing) · /W1W4DBHY5MT050798 (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 — oem.read
import { oem } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await oem.read({"vin":"W1W4DBHY5MT050798"})
GET /oems/read
curl 'https://apis.vin/oems/read?vin=W1W4DBHY5MT050798'

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:14.527Z · HTTP 200
{
  "type": "OK",
  "answers": "OemRead@1",
  "value": {
    "partyId": "pty_119BACG",
    "type": "organization",
    "name": "OEM-0EI2ZAL",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "W1W"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "vin": "W1W4DBHY5MT050798",
    "noun": "oem",
    "asOf": "2026-08-10",
    "oem": {
      "wmi": "W1W",
      "dealerNetwork": {
        "dealerId": "DLR-b9066ade",
        "authorized": true
      }
    }
  },
  "evidence": {
    "partyId": "pty_119BACG",
    "type": "organization",
    "name": "OEM-0EI2ZAL",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "W1W"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "vin": "W1W4DBHY5MT050798",
    "noun": "oem",
    "asOf": "2026-08-10",
    "oem": {
      "wmi": "W1W",
      "dealerNetwork": {
        "dealerId": "DLR-b9066ade",
        "authorized": true
      }
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "oem-factory-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

recallLookup

oem.recallLookup · GET /oems/recall-lookup · gate none · live · answers OemRecallLookup@1

FieldTypeRequiredNotes
vinstringno

Dooroem.vin serves this noun on its two routes: / (the landing) · /W1W4DBHY5MT050798 (the VIN lens).

Try it — live: answers on the wire today. A sandbox key still selects the deterministic simulated mode — drive the full outcome range with the magic triggers.

the SDK — oem.recallLookup
import { oem } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await oem.recallLookup({"vin":"W1W4DBHY5MT050798"})
GET /oems/recall-lookup
curl 'https://apis.vin/oems/recall-lookup?vin=W1W4DBHY5MT050798'

allocate

oem.allocate · POST /oems/allocate · gate key · sandbox · answers OemAllocation@1

FieldTypeRequiredNotes
dealerstringyesdealer ref dlr_…
modelstringno
regionstringno

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

EmitsAllocation.accepted@1 · Allocation.assigned@1 · Allocation.declined@1.

the SDK — oem.allocate
import { oem } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await oem.allocate({"dealer":"dealer"})
POST /oems/allocate
curl -X POST https://apis.vin/oems/allocate \
  -H 'content-type: application/json' \
  -d '{"dealer":"dealer"}'

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.940Z · HTTP 200
{
  "type": "OK",
  "answers": "OemAllocation@1",
  "value": {
    "partyId": "pty_0RFY7S7",
    "type": "organization",
    "name": "OEM-1RT3ZBO",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "1HG"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "vin": "1HGCM82633A004352",
    "noun": "oem",
    "asOf": "2026-08-10",
    "allocation": {
      "status": "no-allocation-on-file"
    }
  },
  "evidence": {
    "partyId": "pty_0RFY7S7",
    "type": "organization",
    "name": "OEM-1RT3ZBO",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "1HG"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "vin": "1HGCM82633A004352",
    "noun": "oem",
    "asOf": "2026-08-10",
    "allocation": {
      "status": "no-allocation-on-file"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "oem-factory-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Quote & price

warrantyTerms

oem.warrantyTerms · GET /oems/warranty-terms · gate key · sandbox · answers OemWarrantyTerms@1

FieldTypeRequiredNotes
vinstringno

Dooroem.vin serves this noun on its two routes: / (the landing) · /W1W4DBHY5MT050798 (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 — oem.warrantyTerms
import { oem } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await oem.warrantyTerms({"vin":"W1W4DBHY5MT050798"})
GET /oems/warranty-terms
curl 'https://apis.vin/oems/warranty-terms?vin=W1W4DBHY5MT050798'

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:14.527Z · HTTP 200
{
  "type": "OK",
  "answers": "OemWarrantyTerms@1",
  "value": {
    "partyId": "pty_119BACG",
    "type": "organization",
    "name": "OEM-0EI2ZAL",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "W1W"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "vin": "W1W4DBHY5MT050798",
    "programRef": "PGM-13S3Y26",
    "basicMonths": 36,
    "basicMiles": 50000,
    "powertrainMonths": 72,
    "powertrainMiles": 60000,
    "transferable": true,
    "asOf": "2026-08-10"
  },
  "evidence": {
    "partyId": "pty_119BACG",
    "type": "organization",
    "name": "OEM-0EI2ZAL",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "W1W"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "vin": "W1W4DBHY5MT050798",
    "programRef": "PGM-13S3Y26",
    "basicMonths": 36,
    "basicMiles": 50000,
    "powertrainMonths": 72,
    "powertrainMiles": 60000,
    "transferable": true,
    "asOf": "2026-08-10"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "market-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Apply & book

order

oem.order · POST /oems/order · gate offer · sandbox · answers FactoryOrder@1

FieldTypeRequiredNotes
configurationstringyesbuild configuration ref cfg_…
dealerstringnodealer ref dlr_…
allocationstringnoallocation ref alo_…

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.

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

EmitsFactoryOrder.confirmed@1 · FactoryOrder.placed@1 · FactoryOrder.produced@1 · FactoryOrder.shipped@1.

the SDK — oem.order
import { oem } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await oem.order({"configuration":"configuration"})
POST /oems/order
curl -X POST https://apis.vin/oems/order \
  -H 'content-type: application/json' \
  -d '{"configuration":"configuration"}'

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.941Z · HTTP 200
{
  "type": "OK",
  "answers": "FactoryOrder@1",
  "value": {
    "partyId": "pty_0RFY7S7",
    "type": "organization",
    "name": "OEM-1RT3ZBO",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "1HG"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "vin": "1HGCM82633A004352",
    "noun": "oem",
    "asOf": "2026-08-10",
    "order": {
      "status": "no-factory-order-on-file"
    }
  },
  "evidence": {
    "partyId": "pty_0RFY7S7",
    "type": "organization",
    "name": "OEM-1RT3ZBO",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "1HG"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "vin": "1HGCM82633A004352",
    "noun": "oem",
    "asOf": "2026-08-10",
    "order": {
      "status": "no-factory-order-on-file"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "oem-factory-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

register

oem.register · POST /oems/register · gate offer · sandbox · answers OemRegister@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.

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

EmitsOem.registered@1.

the SDK — oem.register
import { oem } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await oem.register({"vin":"W1W4DBHY5MT050798"})
POST /oems/register
curl -X POST https://apis.vin/oems/register \
  -H 'content-type: application/json' \
  -d '{"vin":"W1W4DBHY5MT050798"}'

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:14.527Z · HTTP 200
{
  "type": "OK",
  "answers": "OemRegister@1",
  "value": {
    "partyId": "pty_119BACG",
    "type": "organization",
    "name": "OEM-0EI2ZAL",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "W1W"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "vin": "W1W4DBHY5MT050798",
    "noun": "oem",
    "asOf": "2026-08-10",
    "authorization": {
      "dealerId": "DLR-b9066ade",
      "dealerName": "The Estate Store",
      "status": "authorized"
    }
  },
  "evidence": {
    "partyId": "pty_119BACG",
    "type": "organization",
    "name": "OEM-0EI2ZAL",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "W1W"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "vin": "W1W4DBHY5MT050798",
    "noun": "oem",
    "asOf": "2026-08-10",
    "authorization": {
      "dealerId": "DLR-b9066ade",
      "dealerName": "The Estate Store",
      "status": "authorized"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "oem-factory-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

credential

oem.credential · POST /oems/credential · gate offer · sandbox · answers OemCredential@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.

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

EmitsOem.credentialed@1.

the SDK — oem.credential
import { oem } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await oem.credential({"vin":"W1W4DBHY5MT050798"})
POST /oems/credential
curl -X POST https://apis.vin/oems/credential \
  -H 'content-type: application/json' \
  -d '{"vin":"W1W4DBHY5MT050798"}'

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:14.487Z · HTTP 200
{
  "type": "OK",
  "answers": "OemCredential@1",
  "value": {
    "partyId": "pty_119BACG",
    "type": "organization",
    "name": "OEM-0EI2ZAL",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "W1W"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "vin": "W1W4DBHY5MT050798",
    "noun": "oem",
    "asOf": "2026-08-10",
    "credential": {
      "id": "CRD-ccbdfd7c",
      "dealerId": "DLR-b9066ade",
      "status": "active"
    }
  },
  "evidence": {
    "partyId": "pty_119BACG",
    "type": "organization",
    "name": "OEM-0EI2ZAL",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "W1W"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "vin": "W1W4DBHY5MT050798",
    "noun": "oem",
    "asOf": "2026-08-10",
    "credential": {
      "id": "CRD-ccbdfd7c",
      "dealerId": "DLR-b9066ade",
      "status": "active"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "oem-factory-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Pay & settle

incentivePay

oem.incentivePay · POST /oems/incentive-pay · gate offer · sandbox · answers OemIncentivePay@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.

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

EmitsOem.failed@1 · Oem.incentivePaid@1.

the SDK — oem.incentivePay
import { oem } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await oem.incentivePay({"vin":"W1W4DBHY5MT050798"})
POST /oems/incentive-pay
curl -X POST https://apis.vin/oems/incentive-pay \
  -H 'content-type: application/json' \
  -d '{"vin":"W1W4DBHY5MT050798"}'

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:14.487Z · HTTP 200
{
  "type": "OK",
  "answers": "OemIncentivePay@1",
  "value": {
    "partyId": "pty_119BACG",
    "type": "organization",
    "name": "OEM-0EI2ZAL",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "W1W"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "claimRef": "OEMPAY-0R0AGHE",
    "programRef": "PGM-10Z04SO",
    "vin": "W1W4DBHY5MT050798",
    "state": "paid",
    "amount": {
      "amount": "407.00",
      "currency": "USD"
    },
    "remittedTo": "DEALER-1GM5M6N",
    "asOf": "2026-08-10"
  },
  "evidence": {
    "partyId": "pty_119BACG",
    "type": "organization",
    "name": "OEM-0EI2ZAL",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "W1W"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "claimRef": "OEMPAY-0R0AGHE",
    "programRef": "PGM-10Z04SO",
    "vin": "W1W4DBHY5MT050798",
    "state": "paid",
    "amount": {
      "amount": "407.00",
      "currency": "USD"
    },
    "remittedTo": "DEALER-1GM5M6N",
    "asOf": "2026-08-10"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "market-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

wholesaleInvoice

oem.wholesaleInvoice · POST /oems/wholesale-invoice · gate offer · sandbox · answers OemWholesaleInvoice@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.

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

EmitsOem.failed@1 · Oem.wholesaleInvoiced@1.

the SDK — oem.wholesaleInvoice
import { oem } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await oem.wholesaleInvoice({"vin":"W1W4DBHY5MT050798"})
POST /oems/wholesale-invoice
curl -X POST https://apis.vin/oems/wholesale-invoice \
  -H 'content-type: application/json' \
  -d '{"vin":"W1W4DBHY5MT050798"}'

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:14.527Z · HTTP 200
{
  "type": "OK",
  "answers": "OemWholesaleInvoice@1",
  "value": {
    "partyId": "pty_119BACG",
    "type": "organization",
    "name": "OEM-0EI2ZAL",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "W1W"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "vin": "W1W4DBHY5MT050798",
    "noun": "oem",
    "asOf": "2026-08-10",
    "invoice": {
      "id": "WI-d90f6af1",
      "amountCents": 2534052,
      "msrpCents": 2607200,
      "destinationCents": 161500,
      "holdbackCents": 78216,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "partyId": "pty_119BACG",
    "type": "organization",
    "name": "OEM-0EI2ZAL",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "W1W"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "vin": "W1W4DBHY5MT050798",
    "noun": "oem",
    "asOf": "2026-08-10",
    "invoice": {
      "id": "WI-d90f6af1",
      "amountCents": 2534052,
      "msrpCents": 2607200,
      "destinationCents": 161500,
      "holdbackCents": 78216,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "oem-factory-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

warrantyReimburse

oem.warrantyReimburse · POST /oems/warranty-reimburse · gate offer · sandbox · answers OemWarrantyReimburse@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.

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

EmitsOem.failed@1 · Oem.warrantyReimbursed@1.

the SDK — oem.warrantyReimburse
import { oem } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await oem.warrantyReimburse({"vin":"W1W4DBHY5MT050798"})
POST /oems/warranty-reimburse
curl -X POST https://apis.vin/oems/warranty-reimburse \
  -H 'content-type: application/json' \
  -d '{"vin":"W1W4DBHY5MT050798"}'

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:14.527Z · HTTP 200
{
  "type": "OK",
  "answers": "OemWarrantyReimburse@1",
  "value": {
    "partyId": "pty_119BACG",
    "type": "organization",
    "name": "OEM-0EI2ZAL",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "W1W"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "vin": "W1W4DBHY5MT050798",
    "noun": "oem",
    "asOf": "2026-08-10",
    "reimbursement": {
      "id": "WR-465077f5",
      "status": "approved",
      "warranty": "active"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "partyId": "pty_119BACG",
    "type": "organization",
    "name": "OEM-0EI2ZAL",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "W1W"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "vin": "W1W4DBHY5MT050798",
    "noun": "oem",
    "asOf": "2026-08-10",
    "reimbursement": {
      "id": "WR-465077f5",
      "status": "approved",
      "warranty": "active"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "oem-factory-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

holdbackRemit

oem.holdbackRemit · POST /oems/holdback-remit · gate offer · sandbox · answers OemHoldbackRemit@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.

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

EmitsOem.failed@1 · Oem.holdbackRemitted@1.

the SDK — oem.holdbackRemit
import { oem } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await oem.holdbackRemit({"vin":"W1W4DBHY5MT050798"})
POST /oems/holdback-remit
curl -X POST https://apis.vin/oems/holdback-remit \
  -H 'content-type: application/json' \
  -d '{"vin":"W1W4DBHY5MT050798"}'

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:14.487Z · HTTP 200
{
  "type": "OK",
  "answers": "OemHoldbackRemit@1",
  "value": {
    "partyId": "pty_119BACG",
    "type": "organization",
    "name": "OEM-0EI2ZAL",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "W1W"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "vin": "W1W4DBHY5MT050798",
    "noun": "oem",
    "asOf": "2026-08-10",
    "remittance": {
      "id": "HB-53d5fa3f",
      "dealerId": "DLR-b9066ade",
      "amountCents": 78216,
      "currency": "USD",
      "status": "remitted"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "partyId": "pty_119BACG",
    "type": "organization",
    "name": "OEM-0EI2ZAL",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "W1W"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "vin": "W1W4DBHY5MT050798",
    "noun": "oem",
    "asOf": "2026-08-10",
    "remittance": {
      "id": "HB-53d5fa3f",
      "dealerId": "DLR-b9066ade",
      "amountCents": 78216,
      "currency": "USD",
      "status": "remitted"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "oem-factory-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Fulfill & operate

publishProgram

oem.publishProgram · POST /oems/publish-program · gate offer · sandbox · answers OemPublishProgram@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.

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

EmitsOem.programPublished@1.

the SDK — oem.publishProgram
import { oem } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await oem.publishProgram({"vin":"W1W4DBHY5MT050798"})
POST /oems/publish-program
curl -X POST https://apis.vin/oems/publish-program \
  -H 'content-type: application/json' \
  -d '{"vin":"W1W4DBHY5MT050798"}'

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:14.523Z · HTTP 200
{
  "type": "OK",
  "answers": "OemPublishProgram@1",
  "value": {
    "partyId": "pty_119BACG",
    "type": "organization",
    "name": "OEM-0EI2ZAL",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "W1W"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "programRef": "PGM-1CDJE00",
    "state": "published",
    "programType": "loyalty",
    "effectiveFrom": "2026-08-10",
    "effectiveThrough": "2026-08-10",
    "asOf": "2026-08-10"
  },
  "evidence": {
    "partyId": "pty_119BACG",
    "type": "organization",
    "name": "OEM-0EI2ZAL",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "W1W"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "programRef": "PGM-1CDJE00",
    "state": "published",
    "programType": "loyalty",
    "effectiveFrom": "2026-08-10",
    "effectiveThrough": "2026-08-10",
    "asOf": "2026-08-10"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "market-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

More actions

authorizeDealer

oem.authorizeDealer · POST /oems/authorize-dealer · gate offer · sandbox · answers OemAuthorizeDealer@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.

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

EmitsOem.dealerAuthorized@1.

the SDK — oem.authorizeDealer
import { oem } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await oem.authorizeDealer({"vin":"W1W4DBHY5MT050798"})
POST /oems/authorize-dealer
curl -X POST https://apis.vin/oems/authorize-dealer \
  -H 'content-type: application/json' \
  -d '{"vin":"W1W4DBHY5MT050798"}'

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:14.482Z · HTTP 200
{
  "type": "OK",
  "answers": "OemAuthorizeDealer@1",
  "value": {
    "partyId": "pty_119BACG",
    "type": "organization",
    "name": "OEM-0EI2ZAL",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "W1W"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "vin": "W1W4DBHY5MT050798",
    "noun": "oem",
    "asOf": "2026-08-10",
    "authorization": {
      "dealerId": "DLR-b9066ade",
      "dealerName": "The Estate Store",
      "status": "authorized"
    }
  },
  "evidence": {
    "partyId": "pty_119BACG",
    "type": "organization",
    "name": "OEM-0EI2ZAL",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "W1W"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "vin": "W1W4DBHY5MT050798",
    "noun": "oem",
    "asOf": "2026-08-10",
    "authorization": {
      "dealerId": "DLR-b9066ade",
      "dealerName": "The Estate Store",
      "status": "authorized"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "oem-factory-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

brand

oem.brand · GET /oems/brand · gate none · live · answers OemBrand@1

FieldTypeRequiredNotes
vinstringno

Dooroem.vin serves this noun on its two routes: / (the landing) · /W1W4DBHY5MT050798 (the VIN lens).

Try it — live: answers on the wire today. A sandbox key still selects the deterministic simulated mode — drive the full outcome range with the magic triggers.

the SDK — oem.brand
import { oem } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await oem.brand({"vin":"W1W4DBHY5MT050798"})
GET /oems/brand
curl 'https://apis.vin/oems/brand?vin=W1W4DBHY5MT050798'

buildData

oem.buildData · GET /oems/build-data · gate key · live · answers OemBuildData@1

FieldTypeRequiredNotes
vinstringno

Dooroem.vin serves this noun on its two routes: / (the landing) · /W1W4DBHY5MT050798 (the VIN lens).

Try it — live: answers on the wire today. A sandbox key still selects the deterministic simulated mode — drive the full outcome range with the magic triggers.

the SDK — oem.buildData
import { oem } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await oem.buildData({"vin":"W1W4DBHY5MT050798"})
GET /oems/build-data
curl 'https://apis.vin/oems/build-data?vin=W1W4DBHY5MT050798'

configure

oem.configure · POST /oems/configure · gate key · sandbox · answers BuildConfiguration@1

FieldTypeRequiredNotes
modelstringyes
trimstringno
optionsarray<string>no

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

EmitsBuild.configured@1 · Build.priced@1.

the SDK — oem.configure
import { oem } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await oem.configure({"model":"model"})
POST /oems/configure
curl -X POST https://apis.vin/oems/configure \
  -H 'content-type: application/json' \
  -d '{"model":"model"}'

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.941Z · HTTP 200
{
  "type": "OK",
  "answers": "BuildConfiguration@1",
  "value": {
    "partyId": "pty_0RFY7S7",
    "type": "organization",
    "name": "OEM-1RT3ZBO",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "1HG"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "vin": "1HGCM82633A004352",
    "noun": "oem",
    "asOf": "2026-08-10",
    "build": {
      "configId": "CFG-cc225f92",
      "modelYear": 2025,
      "body": "sedan",
      "drivetrain": "fwd",
      "msrpCents": 4452500,
      "destinationCents": 131500,
      "currency": "USD"
    }
  },
  "evidence": {
    "partyId": "pty_0RFY7S7",
    "type": "organization",
    "name": "OEM-1RT3ZBO",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "1HG"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "vin": "1HGCM82633A004352",
    "noun": "oem",
    "asOf": "2026-08-10",
    "build": {
      "configId": "CFG-cc225f92",
      "modelYear": 2025,
      "body": "sedan",
      "drivetrain": "fwd",
      "msrpCents": 4452500,
      "destinationCents": 131500,
      "currency": "USD"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "oem-factory-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

modelCatalog

oem.modelCatalog · GET /oems/model-catalog · gate none · sandbox · answers OemModelCatalog@1

FieldTypeRequiredNotes
vinstringno

Dooroem.vin serves this noun on its two routes: / (the landing) · /W1W4DBHY5MT050798 (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 — oem.modelCatalog
import { oem } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await oem.modelCatalog({"vin":"W1W4DBHY5MT050798"})
GET /oems/model-catalog
curl 'https://apis.vin/oems/model-catalog?vin=W1W4DBHY5MT050798'

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:14.488Z · HTTP 200
{
  "type": "OK",
  "answers": "OemModelCatalog@1",
  "value": {
    "partyId": "pty_119BACG",
    "type": "organization",
    "name": "OEM-0EI2ZAL",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "W1W"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "programRef": "PGM-0BBHFYV",
    "modelCount": 4,
    "models": [
      {
        "modelRef": "MODEL-08N7OSZ",
        "segment": "truck",
        "baseMsrp": {
          "amount": "65267.00",
          "currency": "USD"
        },
        "trims": 3
      },
      {
        "modelRef": "MODEL-08D8340",
        "segment": "suv",
        "baseMsrp": {
          "amount": "70957.00",
          "currency": "USD"
        },
        "trims": 6
      },
      {
        "modelRef": "MODEL-0976W6X",
        "segment": "sedan",
        "baseMsrp": {
          "amount": "26436.00",
          "currency": "USD"
        },
        "trims": 2
      },
      {
        "modelRef": "MODEL-08X7AHY",
        "segment": "crossover",
        "baseMsrp": {
          "amount": "32703.00",
          "currency": "USD"
        },
        "trims": 3
      }
    ],
    "asOf": "2026-08-10"
  },
  "evidence": {
    "partyId": "pty_119BACG",
    "type": "organization",
    "name": "OEM-0EI2ZAL",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "W1W"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "programRef": "PGM-0BBHFYV",
    "modelCount": 4,
    "models": [
      {
        "modelRef": "MODEL-08N7OSZ",
        "segment": "truck",
        "baseMsrp": {
          "amount": "65267.00",
          "currency": "USD"
        },
        "trims": 3
      },
      {
        "modelRef": "MODEL-08D8340",
        "segment": "suv",
        "baseMsrp": {
          "amount": "70957.00",
          "currency": "USD"
        },
        "trims": 6
      },
      {
        "modelRef": "MODEL-0976W6X",
        "segment": "sedan",
        "baseMsrp": {
          "amount": "26436.00",
          "currency": "USD"
        },
        "trims": 2
      },
      {
        "modelRef": "MODEL-08X7AHY",
        "segment": "crossover",
        "baseMsrp": {
          "amount": "32703.00",
          "currency": "USD"
        },
        "trims": 3
      }
    ],
    "asOf": "2026-08-10"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "market-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

msrp

oem.msrp · GET /oems/msrp · gate key · live · answers OemMsrp@1

FieldTypeRequiredNotes
vinstringno

Dooroem.vin serves this noun on its two routes: / (the landing) · /W1W4DBHY5MT050798 (the VIN lens).

Try it — live: answers on the wire today. A sandbox key still selects the deterministic simulated mode — drive the full outcome range with the magic triggers.

the SDK — oem.msrp
import { oem } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await oem.msrp({"vin":"W1W4DBHY5MT050798"})
GET /oems/msrp
curl 'https://apis.vin/oems/msrp?vin=W1W4DBHY5MT050798'

publishIncentive

oem.publishIncentive · POST /oems/publish-incentive · gate offer · sandbox · answers OemPublishIncentive@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.

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

EmitsOem.incentivePublished@1.

the SDK — oem.publishIncentive
import { oem } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await oem.publishIncentive({"vin":"W1W4DBHY5MT050798"})
POST /oems/publish-incentive
curl -X POST https://apis.vin/oems/publish-incentive \
  -H 'content-type: application/json' \
  -d '{"vin":"W1W4DBHY5MT050798"}'

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:14.488Z · HTTP 200
{
  "type": "OK",
  "answers": "OemPublishIncentive@1",
  "value": {
    "partyId": "pty_119BACG",
    "type": "organization",
    "name": "OEM-0EI2ZAL",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "W1W"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "vin": "W1W4DBHY5MT050798",
    "noun": "oem",
    "asOf": "2026-08-10",
    "incentive": {
      "id": "INC-ecfa93be",
      "kind": "customer-cash",
      "amountCents": 70000,
      "currency": "USD",
      "status": "published"
    }
  },
  "evidence": {
    "partyId": "pty_119BACG",
    "type": "organization",
    "name": "OEM-0EI2ZAL",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "W1W"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "vin": "W1W4DBHY5MT050798",
    "noun": "oem",
    "asOf": "2026-08-10",
    "incentive": {
      "id": "INC-ecfa93be",
      "kind": "customer-cash",
      "amountCents": 70000,
      "currency": "USD",
      "status": "published"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "oem-factory-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

publishRecall

oem.publishRecall · POST /oems/publish-recall · gate offer · sandbox · answers OemPublishRecall@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.

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

EmitsOem.recallPublished@1.

the SDK — oem.publishRecall
import { oem } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await oem.publishRecall({"vin":"W1W4DBHY5MT050798"})
POST /oems/publish-recall
curl -X POST https://apis.vin/oems/publish-recall \
  -H 'content-type: application/json' \
  -d '{"vin":"W1W4DBHY5MT050798"}'

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:14.527Z · HTTP 200
{
  "type": "OK",
  "answers": "OemPublishRecall@1",
  "value": {
    "partyId": "pty_119BACG",
    "type": "organization",
    "name": "OEM-0EI2ZAL",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "W1W"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "vin": "W1W4DBHY5MT050798",
    "noun": "oem",
    "asOf": "2026-08-10",
    "campaign": {
      "id": "CAMP-ac5c5a7b",
      "type": "safety-recall",
      "status": "published-open",
      "remedy": "inspect and replace the affected component"
    }
  },
  "evidence": {
    "partyId": "pty_119BACG",
    "type": "organization",
    "name": "OEM-0EI2ZAL",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "W1W"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "vin": "W1W4DBHY5MT050798",
    "noun": "oem",
    "asOf": "2026-08-10",
    "campaign": {
      "id": "CAMP-ac5c5a7b",
      "type": "safety-recall",
      "status": "published-open",
      "remedy": "inspect and replace the affected component"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "oem-factory-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

tsb

oem.tsb · GET /oems/tsb · gate key · sandbox · answers OemTsb@1

FieldTypeRequiredNotes
vinstringno

Dooroem.vin serves this noun on its two routes: / (the landing) · /W1W4DBHY5MT050798 (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 — oem.tsb
import { oem } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await oem.tsb({"vin":"W1W4DBHY5MT050798"})
GET /oems/tsb
curl 'https://apis.vin/oems/tsb?vin=W1W4DBHY5MT050798'

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:14.527Z · HTTP 200
{
  "type": "OK",
  "answers": "OemTsb@1",
  "value": {
    "partyId": "pty_119BACG",
    "type": "organization",
    "name": "OEM-0EI2ZAL",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "W1W"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "vin": "W1W4DBHY5MT050798",
    "noun": "oem",
    "asOf": "2026-08-10",
    "bulletins": [
      {
        "id": "TSB-ee981a2a",
        "campaignId": "CAMP-ac5c5a7b",
        "subject": "affected component",
        "remedy": "inspect and replace the affected component"
      }
    ]
  },
  "evidence": {
    "partyId": "pty_119BACG",
    "type": "organization",
    "name": "OEM-0EI2ZAL",
    "identifiers": [
      {
        "kind": "wmi",
        "value": "W1W"
      }
    ],
    "roles": [
      {
        "role": "oem"
      }
    ],
    "status": "active",
    "vin": "W1W4DBHY5MT050798",
    "noun": "oem",
    "asOf": "2026-08-10",
    "bulletins": [
      {
        "id": "TSB-ee981a2a",
        "campaignId": "CAMP-ac5c5a7b",
        "subject": "affected component",
        "remedy": "inspect and replace the affected component"
      }
    ]
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "oem-factory-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.

Oem

Relationships

FromToCardinalityAs
partyoemISAis-a
allocationoem*:1from

Modeled

The noun drawn out — its record shape, its lifecycle, and how it is exercised end to end. 4 diagrams, rendered from the estate model.

Oem · Class model

Oem · State machine

Oem · State machine

Oem · Sequence


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