docs.vin

arbitration

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

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

Identity

Nounarbitration
PillarServices (facets: 4 data · 6 services · 4 commerce)
Capabilities14 — 0 live · 14 sandbox · 0 declared
EntitiesArbitration
Doorsaggregator.vin
SDKVin.arbitration.* from apis.vin
Address/catalog/arbitration#{action} — the anchor IS the wire name minus arbitration.

Lifecycle

ArbitrationArbitrationFSM: 4 states, 3 transitions — Filed · UnderReview · Resolved · Denied. Each transition is a past-tense event on the record.

Events

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

Discover & read

read

arbitration.read · GET /arbitrations/read · gate none · sandbox · answers ArbitrationRead@1

FieldTypeRequiredNotes
vinstringno

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

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

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:07.685Z · HTTP 200
{
  "type": "OK",
  "answers": "ArbitrationRead@1",
  "value": {
    "vin": "KL4CJ2SM5GB607431",
    "noun": "arbitration",
    "asOf": "2026-08-10",
    "claim": {
      "status": "no-arbitration-on-file"
    }
  },
  "evidence": {
    "vin": "KL4CJ2SM5GB607431",
    "noun": "arbitration",
    "asOf": "2026-08-10",
    "claim": {
      "status": "no-arbitration-on-file"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "auction-aftermath-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

status

arbitration.status · GET /arbitrations/status · gate none · sandbox · answers ArbitrationStatus@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /KL4CJ2SM5GB607431 (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 — arbitration.status
import { arbitration } from 'apis.vin'

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

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:07.725Z · HTTP 200
{
  "type": "OK",
  "answers": "ArbitrationStatus@1",
  "value": {
    "vin": "KL4CJ2SM5GB607431",
    "noun": "arbitration",
    "asOf": "2026-08-10",
    "claim": {
      "status": "no-arbitration-on-file"
    }
  },
  "evidence": {
    "vin": "KL4CJ2SM5GB607431",
    "noun": "arbitration",
    "asOf": "2026-08-10",
    "claim": {
      "status": "no-arbitration-on-file"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "auction-aftermath-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Apply & book

file

arbitration.file · POST /arbitrations/file · gate offer · sandbox · answers ArbitrationFile@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) · /KL4CJ2SM5GB607431 (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.

EmitsArbitration.filed@1 · Arbitration.requested@1.

the SDK — arbitration.file
import { arbitration } from 'apis.vin'

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

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:07.676Z · HTTP 200
{
  "type": "OK",
  "answers": "ArbitrationFile@1",
  "value": {
    "vin": "KL4CJ2SM5GB607431",
    "noun": "arbitration",
    "asOf": "2026-08-10",
    "filing": {
      "status": "filed",
      "id": "ARB-3447788f",
      "saleId": "SL-8bab660d",
      "basis": "undisclosed-condition",
      "windowDays": 7
    }
  },
  "evidence": {
    "vin": "KL4CJ2SM5GB607431",
    "noun": "arbitration",
    "asOf": "2026-08-10",
    "filing": {
      "status": "filed",
      "id": "ARB-3447788f",
      "saleId": "SL-8bab660d",
      "basis": "undisclosed-condition",
      "windowDays": 7
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "auction-aftermath-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Pay & settle

settle

arbitration.settle · POST /arbitrations/settle · gate offer · sandbox · answers ArbitrationSettle@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) · /KL4CJ2SM5GB607431 (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.

EmitsArbitration.failed@1 · Arbitration.settled@1.

the SDK — arbitration.settle
import { arbitration } from 'apis.vin'

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

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:07.725Z · HTTP 200
{
  "type": "OK",
  "answers": "ArbitrationSettle@1",
  "value": {
    "vin": "KL4CJ2SM5GB607431",
    "noun": "arbitration",
    "asOf": "2026-08-10",
    "settlement": {
      "status": "no-arbitration-on-file"
    }
  },
  "evidence": {
    "vin": "KL4CJ2SM5GB607431",
    "noun": "arbitration",
    "asOf": "2026-08-10",
    "settlement": {
      "status": "no-arbitration-on-file"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "auction-aftermath-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

refund

arbitration.refund · POST /arbitrations/refund · gate offer · sandbox · answers ArbitrationRefund@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) · /KL4CJ2SM5GB607431 (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.

EmitsArbitration.failed@1 · Arbitration.refunded@1.

the SDK — arbitration.refund
import { arbitration } from 'apis.vin'

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

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:07.706Z · HTTP 200
{
  "type": "OK",
  "answers": "ArbitrationRefund@1",
  "value": {
    "vin": "KL4CJ2SM5GB607431",
    "noun": "arbitration",
    "asOf": "2026-08-10",
    "refund": {
      "status": "no-arbitration-on-file"
    }
  },
  "evidence": {
    "vin": "KL4CJ2SM5GB607431",
    "noun": "arbitration",
    "asOf": "2026-08-10",
    "refund": {
      "status": "no-arbitration-on-file"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "auction-aftermath-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Authorize & resolve

appeal

arbitration.appeal · POST /arbitrations/appeal · gate offer · sandbox · answers ArbitrationAppeal@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) · /KL4CJ2SM5GB607431 (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.

EmitsArbitration.appealed@1.

the SDK — arbitration.appeal
import { arbitration } from 'apis.vin'

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

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:07.675Z · HTTP 200
{
  "type": "OK",
  "answers": "ArbitrationAppeal@1",
  "value": {
    "vin": "KL4CJ2SM5GB607431",
    "noun": "arbitration",
    "asOf": "2026-08-10",
    "appeal": {
      "status": "no-arbitration-on-file"
    }
  },
  "evidence": {
    "vin": "KL4CJ2SM5GB607431",
    "noun": "arbitration",
    "asOf": "2026-08-10",
    "appeal": {
      "status": "no-arbitration-on-file"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "auction-aftermath-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

More actions

credit

arbitration.credit · POST /arbitrations/credit · gate offer · sandbox · answers ArbitrationCredit@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) · /KL4CJ2SM5GB607431 (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.

EmitsArbitration.creditIssued@1 · Arbitration.failed@1.

the SDK — arbitration.credit
import { arbitration } from 'apis.vin'

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

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:07.676Z · HTTP 200
{
  "type": "OK",
  "answers": "ArbitrationCredit@1",
  "value": {
    "vin": "KL4CJ2SM5GB607431",
    "noun": "arbitration",
    "asOf": "2026-08-10",
    "credit": {
      "status": "no-arbitration-on-file"
    }
  },
  "evidence": {
    "vin": "KL4CJ2SM5GB607431",
    "noun": "arbitration",
    "asOf": "2026-08-10",
    "credit": {
      "status": "no-arbitration-on-file"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "auction-aftermath-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

evidence

arbitration.evidence · GET /arbitrations/evidence · gate key · sandbox · answers ArbitrationEvidence@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /KL4CJ2SM5GB607431 (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 — arbitration.evidence
import { arbitration } from 'apis.vin'

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

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:07.676Z · HTTP 200
{
  "type": "OK",
  "answers": "ArbitrationEvidence@1",
  "value": {
    "vin": "KL4CJ2SM5GB607431",
    "noun": "arbitration",
    "asOf": "2026-08-10",
    "evidence": {
      "status": "no-arbitration-on-file"
    }
  },
  "evidence": {
    "vin": "KL4CJ2SM5GB607431",
    "noun": "arbitration",
    "asOf": "2026-08-10",
    "evidence": {
      "status": "no-arbitration-on-file"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "auction-aftermath-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

mediate

arbitration.mediate · POST /arbitrations/mediate · gate offer · sandbox · answers ArbitrationMediate@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) · /KL4CJ2SM5GB607431 (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.

EmitsArbitration.mediated@1.

the SDK — arbitration.mediate
import { arbitration } from 'apis.vin'

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

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:07.676Z · HTTP 200
{
  "type": "OK",
  "answers": "ArbitrationMediate@1",
  "value": {
    "vin": "KL4CJ2SM5GB607431",
    "noun": "arbitration",
    "asOf": "2026-08-10",
    "mediation": {
      "status": "no-arbitration-on-file"
    }
  },
  "evidence": {
    "vin": "KL4CJ2SM5GB607431",
    "noun": "arbitration",
    "asOf": "2026-08-10",
    "mediation": {
      "status": "no-arbitration-on-file"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "auction-aftermath-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

policy

arbitration.policy · GET /arbitrations/policy · gate none · sandbox · answers ArbitrationPolicy@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /KL4CJ2SM5GB607431 (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 — arbitration.policy
import { arbitration } from 'apis.vin'

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

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:07.681Z · HTTP 200
{
  "type": "OK",
  "answers": "ArbitrationPolicy@1",
  "value": {
    "vin": "KL4CJ2SM5GB607431",
    "noun": "arbitration",
    "asOf": "2026-08-10",
    "policy": {
      "windowDays": 7,
      "grounds": [
        "transit-damage",
        "undisclosed-condition"
      ],
      "forum": "lane-arbitration",
      "feeCents": 0,
      "currency": "USD"
    }
  },
  "evidence": {
    "vin": "KL4CJ2SM5GB607431",
    "noun": "arbitration",
    "asOf": "2026-08-10",
    "policy": {
      "windowDays": 7,
      "grounds": [
        "transit-damage",
        "undisclosed-condition"
      ],
      "forum": "lane-arbitration",
      "feeCents": 0,
      "currency": "USD"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "auction-aftermath-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

repairAllowance

arbitration.repairAllowance · POST /arbitrations/repair-allowance · gate offer · sandbox · answers ArbitrationRepairAllowance@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) · /KL4CJ2SM5GB607431 (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.

EmitsArbitration.failed@1 · Arbitration.repairAllowanceIssued@1.

the SDK — arbitration.repairAllowance
import { arbitration } from 'apis.vin'

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

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:07.718Z · HTTP 200
{
  "type": "OK",
  "answers": "ArbitrationRepairAllowance@1",
  "value": {
    "vin": "KL4CJ2SM5GB607431",
    "noun": "arbitration",
    "asOf": "2026-08-10",
    "allowance": {
      "status": "no-arbitration-on-file"
    }
  },
  "evidence": {
    "vin": "KL4CJ2SM5GB607431",
    "noun": "arbitration",
    "asOf": "2026-08-10",
    "allowance": {
      "status": "no-arbitration-on-file"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "auction-aftermath-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

resolve

arbitration.resolve · POST /arbitrations/resolve · gate offer · sandbox · answers ArbitrationResolve@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) · /KL4CJ2SM5GB607431 (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.

EmitsArbitration.resolved@1.

the SDK — arbitration.resolve
import { arbitration } from 'apis.vin'

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

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:07.718Z · HTTP 200
{
  "type": "OK",
  "answers": "ArbitrationResolve@1",
  "value": {
    "vin": "KL4CJ2SM5GB607431",
    "noun": "arbitration",
    "asOf": "2026-08-10",
    "resolution": {
      "status": "no-arbitration-on-file"
    }
  },
  "evidence": {
    "vin": "KL4CJ2SM5GB607431",
    "noun": "arbitration",
    "asOf": "2026-08-10",
    "resolution": {
      "status": "no-arbitration-on-file"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "auction-aftermath-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

review

arbitration.review · POST /arbitrations/review · gate offer · sandbox · answers ArbitrationReview@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) · /KL4CJ2SM5GB607431 (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.

EmitsArbitration.reviewed@1.

the SDK — arbitration.review
import { arbitration } from 'apis.vin'

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

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:07.718Z · HTTP 200
{
  "type": "OK",
  "answers": "ArbitrationReview@1",
  "value": {
    "vin": "KL4CJ2SM5GB607431",
    "noun": "arbitration",
    "asOf": "2026-08-10",
    "review": {
      "status": "no-arbitration-on-file"
    }
  },
  "evidence": {
    "vin": "KL4CJ2SM5GB607431",
    "noun": "arbitration",
    "asOf": "2026-08-10",
    "review": {
      "status": "no-arbitration-on-file"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "auction-aftermath-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

rule

arbitration.rule · POST /arbitrations/rule · gate offer · sandbox · answers ArbitrationRule@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) · /KL4CJ2SM5GB607431 (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.

EmitsArbitration.ruled@1.

the SDK — arbitration.rule
import { arbitration } from 'apis.vin'

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

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:07.720Z · HTTP 200
{
  "type": "OK",
  "answers": "ArbitrationRule@1",
  "value": {
    "vin": "KL4CJ2SM5GB607431",
    "noun": "arbitration",
    "asOf": "2026-08-10",
    "ruling": {
      "status": "no-arbitration-on-file"
    }
  },
  "evidence": {
    "vin": "KL4CJ2SM5GB607431",
    "noun": "arbitration",
    "asOf": "2026-08-10",
    "ruling": {
      "status": "no-arbitration-on-file"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "auction-aftermath-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.

Arbitration

Schema

PropertyTypeNotes
ididarb_
saleIdref→Sale
vinstring
filedByref→Party
claimstring
statusArbitrationFSM

Relationships

FromToCardinalityAs
arbitrationsale*:1disputes

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