rdr
The rdr noun — identity, lifecycle, events, and every capability as an anchored section: 11 capabilities, 0 live, 11 sandbox, 0 declared.
rdr is one of the estate's 317 automotive nouns — a job a car needs done. It carries 11 capabilities: 0 live, 11 sandbox, 0 declared · doors oem.vin.
Identity
| Noun | rdr |
| Pillar | Services (facets: 4 data · 5 services · 2 commerce) |
| Capabilities | 11 — 0 live · 11 sandbox · 0 declared |
| Entities | Deal |
| Doors | oem.vin |
| SDK | Vin.rdr.* from apis.vin |
| Address | /catalog/rdr#{action} — the anchor IS the wire name minus rdr. |
Events
The vocabulary this noun can append to the record — 10 past-tense, versioned event types, each linked to the capability that emits it:
Rdr.accepted@1— emitted byreportRdr.corrected@1— emitted bycorrectRdr.failed@1— emitted bysettle·triggerIncentiveRdr.incentiveTriggered@1— emitted bytriggerIncentiveRdr.reconciled@1— emitted byreconcileRdr.rejected@1— emitted byreportRdr.reported@1— emitted byreportRdr.reversed@1— emitted byreverseRdr.settled@1— emitted bysettleRdr.validated@1— emitted byvalidate
Discover & read
read
rdr.read · GET /rdrs/read · gate none · sandbox · answers RdrRead@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — oem.vin serves this noun on its two routes: / (the landing) · /1C6SRFU96MN807021 (the VIN lens).
Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.
import { rdr } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await rdr.read({"vin":"1C6SRFU96MN807021"})curl 'https://apis.vin/rdrs/read?vin=1C6SRFU96MN807021'Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.
{
"type": "OK",
"answers": "RdrRead@1",
"value": {
"vin": "1C6SRFU96MN807021",
"noun": "rdr",
"asOf": "2026-08-10",
"rdr": {
"status": "no-rdr-on-file",
"reason": "not-delivered",
"position": "QUOTED"
}
},
"evidence": {
"vin": "1C6SRFU96MN807021",
"noun": "rdr",
"asOf": "2026-08-10",
"rdr": {
"status": "no-rdr-on-file",
"reason": "not-delivered",
"position": "QUOTED"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "deal-paper-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}status
rdr.status · GET /rdrs/status · gate none · sandbox · answers RdrStatus@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — oem.vin serves this noun on its two routes: / (the landing) · /1C6SRFU96MN807021 (the VIN lens).
Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.
import { rdr } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await rdr.status({"vin":"1C6SRFU96MN807021"})curl 'https://apis.vin/rdrs/status?vin=1C6SRFU96MN807021'Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.
{
"type": "OK",
"answers": "RdrStatus@1",
"value": {
"vin": "1C6SRFU96MN807021",
"noun": "rdr",
"asOf": "2026-08-10",
"rdr": {
"status": "no-rdr-on-file",
"reason": "not-delivered",
"position": "QUOTED"
}
},
"evidence": {
"vin": "1C6SRFU96MN807021",
"noun": "rdr",
"asOf": "2026-08-10",
"rdr": {
"status": "no-rdr-on-file",
"reason": "not-delivered",
"position": "QUOTED"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "deal-paper-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}eligibility
rdr.eligibility · GET /rdrs/eligibility · gate key · sandbox · answers RdrEligibility@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — oem.vin serves this noun on its two routes: / (the landing) · /1C6SRFU96MN807021 (the VIN lens).
Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.
import { rdr } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await rdr.eligibility({"vin":"1C6SRFU96MN807021"})curl 'https://apis.vin/rdrs/eligibility?vin=1C6SRFU96MN807021'Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.
{
"type": "OK",
"answers": "RdrEligibility@1",
"value": {
"vin": "1C6SRFU96MN807021",
"noun": "rdr",
"asOf": "2026-08-10",
"eligibility": {
"eligible": false,
"standing": "not-delivered",
"position": "QUOTED",
"reason": "vehicle-not-delivered"
}
},
"evidence": {
"vin": "1C6SRFU96MN807021",
"noun": "rdr",
"asOf": "2026-08-10",
"eligibility": {
"eligible": false,
"standing": "not-delivered",
"position": "QUOTED",
"reason": "vehicle-not-delivered"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "deal-paper-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}validate
rdr.validate · POST /rdrs/validate · gate offer · sandbox · answers RdrValidate@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.
Door — oem.vin serves this noun on its two routes: / (the landing) · /1C6SRFU96MN807021 (the VIN lens).
Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.
Emits — Rdr.validated@1.
import { rdr } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await rdr.validate({"vin":"1C6SRFU96MN807021"})curl -X POST https://apis.vin/rdrs/validate \
-H 'content-type: application/json' \
-d '{"vin":"1C6SRFU96MN807021"}'Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.
{
"type": "OK",
"answers": "RdrValidate@1",
"value": {
"vin": "1C6SRFU96MN807021",
"noun": "rdr",
"asOf": "2026-08-10",
"validation": {
"status": "invalid",
"reason": "not-delivered",
"position": "QUOTED"
}
},
"evidence": {
"vin": "1C6SRFU96MN807021",
"noun": "rdr",
"asOf": "2026-08-10",
"validation": {
"status": "invalid",
"reason": "not-delivered",
"position": "QUOTED"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "deal-paper-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}report
rdr.report · POST /rdrs/report · gate key · sandbox · answers RdrReport@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | yes | length 11–17 |
dealer | string | yes | dealer ref dlr_… |
deal | string | no | deal ref deal_… |
Door — oem.vin serves this noun on its two routes: / (the landing) · /1C6SRFU96MN807021 (the VIN lens).
Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.
Emits — Rdr.accepted@1 · Rdr.rejected@1 · Rdr.reported@1.
import { rdr } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await rdr.report({"vin":"1C6SRFU96MN807021","dealer":"dealer"})curl -X POST https://apis.vin/rdrs/report \
-H 'content-type: application/json' \
-d '{"vin":"1C6SRFU96MN807021","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.
{
"type": "OK",
"answers": "RdrReport@1",
"value": {
"vin": "1C6SRFU96MN807021",
"noun": "rdr",
"asOf": "2026-08-10",
"report": {
"status": "vehicle-not-delivered",
"position": "QUOTED"
}
},
"evidence": {
"vin": "1C6SRFU96MN807021",
"noun": "rdr",
"asOf": "2026-08-10",
"report": {
"status": "vehicle-not-delivered",
"position": "QUOTED"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "deal-paper-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}audit
rdr.audit · GET /rdrs/audit · gate key · sandbox · answers RdrAudit@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — oem.vin serves this noun on its two routes: / (the landing) · /1C6SRFU96MN807021 (the VIN lens).
Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.
import { rdr } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await rdr.audit({"vin":"1C6SRFU96MN807021"})curl 'https://apis.vin/rdrs/audit?vin=1C6SRFU96MN807021'Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.
{
"type": "OK",
"answers": "RdrAudit@1",
"value": {
"vin": "1C6SRFU96MN807021",
"noun": "rdr",
"asOf": "2026-08-10",
"audit": {
"standing": "not-delivered",
"checks": [
{
"check": "deal-on-file",
"pass": true
},
{
"check": "vehicle-delivered",
"pass": false
},
{
"check": "report-on-file",
"pass": false
},
{
"check": "report-standing",
"pass": false
}
]
}
},
"evidence": {
"vin": "1C6SRFU96MN807021",
"noun": "rdr",
"asOf": "2026-08-10",
"audit": {
"standing": "not-delivered",
"checks": [
{
"check": "deal-on-file",
"pass": true
},
{
"check": "vehicle-delivered",
"pass": false
},
{
"check": "report-on-file",
"pass": false
},
{
"check": "report-standing",
"pass": false
}
]
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "deal-paper-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Pay & settle
settle
rdr.settle · POST /rdrs/settle · gate offer · sandbox · answers RdrSettle@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.
Door — oem.vin serves this noun on its two routes: / (the landing) · /1C6SRFU96MN807021 (the VIN lens).
Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.
Emits — Rdr.failed@1 · Rdr.settled@1.
import { rdr } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await rdr.settle({"vin":"1C6SRFU96MN807021"})curl -X POST https://apis.vin/rdrs/settle \
-H 'content-type: application/json' \
-d '{"vin":"1C6SRFU96MN807021"}'Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.
{
"type": "OK",
"answers": "RdrSettle@1",
"value": {
"vin": "1C6SRFU96MN807021",
"noun": "rdr",
"asOf": "2026-08-10",
"settlement": {
"status": "nothing-to-pay",
"amountCents": 0,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "1C6SRFU96MN807021",
"noun": "rdr",
"asOf": "2026-08-10",
"settlement": {
"status": "nothing-to-pay",
"amountCents": 0,
"currency": "USD"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "deal-paper-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}reconcile
rdr.reconcile · POST /rdrs/reconcile · gate offer · sandbox · answers RdrReconcile@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.
Door — oem.vin serves this noun on its two routes: / (the landing) · /1C6SRFU96MN807021 (the VIN lens).
Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.
Emits — Rdr.reconciled@1.
import { rdr } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await rdr.reconcile({"vin":"1C6SRFU96MN807021"})curl -X POST https://apis.vin/rdrs/reconcile \
-H 'content-type: application/json' \
-d '{"vin":"1C6SRFU96MN807021"}'Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.
{
"type": "OK",
"answers": "RdrReconcile@1",
"value": {
"vin": "1C6SRFU96MN807021",
"noun": "rdr",
"asOf": "2026-08-10",
"reconciliation": {
"claimStanding": "no-claim",
"rdrStanding": "not-delivered",
"position": "QUOTED",
"claimedCents": 0,
"paidCents": 0,
"chargebackCents": 0,
"netCents": 0,
"currency": "USD",
"basis": "one-total-law"
}
},
"evidence": {
"vin": "1C6SRFU96MN807021",
"noun": "rdr",
"asOf": "2026-08-10",
"reconciliation": {
"claimStanding": "no-claim",
"rdrStanding": "not-delivered",
"position": "QUOTED",
"claimedCents": 0,
"paidCents": 0,
"chargebackCents": 0,
"netCents": 0,
"currency": "USD",
"basis": "one-total-law"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "deal-paper-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}More actions
correct
rdr.correct · POST /rdrs/correct · gate offer · sandbox · answers RdrCorrect@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.
Door — oem.vin serves this noun on its two routes: / (the landing) · /1C6SRFU96MN807021 (the VIN lens).
Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.
Emits — Rdr.corrected@1.
import { rdr } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await rdr.correct({"vin":"1C6SRFU96MN807021"})curl -X POST https://apis.vin/rdrs/correct \
-H 'content-type: application/json' \
-d '{"vin":"1C6SRFU96MN807021"}'Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.
{
"type": "OK",
"answers": "RdrCorrect@1",
"value": {
"vin": "1C6SRFU96MN807021",
"noun": "rdr",
"asOf": "2026-08-10",
"correction": {
"status": "no-rdr-on-file",
"reason": "not-delivered"
}
},
"evidence": {
"vin": "1C6SRFU96MN807021",
"noun": "rdr",
"asOf": "2026-08-10",
"correction": {
"status": "no-rdr-on-file",
"reason": "not-delivered"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "deal-paper-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}reverse
rdr.reverse · POST /rdrs/reverse · gate offer · sandbox · answers RdrReverse@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.
Door — oem.vin serves this noun on its two routes: / (the landing) · /1C6SRFU96MN807021 (the VIN lens).
Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.
Emits — Rdr.reversed@1.
import { rdr } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await rdr.reverse({"vin":"1C6SRFU96MN807021"})curl -X POST https://apis.vin/rdrs/reverse \
-H 'content-type: application/json' \
-d '{"vin":"1C6SRFU96MN807021"}'Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.
{
"type": "OK",
"answers": "RdrReverse@1",
"value": {
"vin": "1C6SRFU96MN807021",
"noun": "rdr",
"asOf": "2026-08-10",
"reversal": {
"status": "no-rdr-on-file",
"reason": "not-delivered"
}
},
"evidence": {
"vin": "1C6SRFU96MN807021",
"noun": "rdr",
"asOf": "2026-08-10",
"reversal": {
"status": "no-rdr-on-file",
"reason": "not-delivered"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "deal-paper-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}triggerIncentive
rdr.triggerIncentive · POST /rdrs/trigger-incentive · gate offer · sandbox · answers RdrTriggerIncentive@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.
Door — oem.vin serves this noun on its two routes: / (the landing) · /1C6SRFU96MN807021 (the VIN lens).
Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.
Emits — Rdr.failed@1 · Rdr.incentiveTriggered@1.
import { rdr } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await rdr.triggerIncentive({"vin":"1C6SRFU96MN807021"})curl -X POST https://apis.vin/rdrs/trigger-incentive \
-H 'content-type: application/json' \
-d '{"vin":"1C6SRFU96MN807021"}'Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.
{
"type": "OK",
"answers": "RdrTriggerIncentive@1",
"value": {
"vin": "1C6SRFU96MN807021",
"noun": "rdr",
"asOf": "2026-08-10",
"claim": {
"status": "no-retail-delivery-reported",
"rdrStanding": "not-delivered",
"position": "QUOTED"
}
},
"evidence": {
"vin": "1C6SRFU96MN807021",
"noun": "rdr",
"asOf": "2026-08-10",
"claim": {
"status": "no-retail-delivery-reported",
"rdrStanding": "not-delivered",
"position": "QUOTED"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "deal-paper-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.
Deal
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.
Rdr · Class model
Rdr · State machine
Rdr · State machine
Rdr · Sequence
Generated from the catalog. Every capability, answer, gate, and entity on this page is a rendered descriptor — it cannot drift from the wire.
qualityCheck
The qualityCheck noun — identity, lifecycle, events, and every capability as an anchored section: 11 capabilities, 0 live, 11 sandbox, 0 declared.
record
The record noun — identity, lifecycle, events, and every capability as an anchored section: 11 capabilities, 0 live, 11 sandbox, 0 declared.