docs.vin

provider

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

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

Identity

Nounprovider
PillarServices (facets: 12 data · 13 services · 9 commerce)
Capabilities34 — 0 live · 34 sandbox · 0 declared
EntitiesProvider
Doorsaggregator.vin · services.vin
SDKVin.provider.* from apis.vin
Address/catalog/provider#{action} — the anchor IS the wire name minus provider.

Events

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

Discover & read

lookup

provider.lookup · GET /providers/lookup · gate none · sandbox · answers ProviderLookup@1

FieldTypeRequiredNotes
vinstringno

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

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

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:15.922Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderLookup@1",
  "value": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "provider": {
      "id": "PRV-9adec772",
      "class": "inspection-service",
      "standing": "good",
      "mobile": true
    }
  },
  "evidence": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "provider": {
      "id": "PRV-9adec772",
      "class": "inspection-service",
      "standing": "good",
      "mobile": true
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

read

provider.read · GET /providers/read · gate none · sandbox · answers ProviderRead@1

FieldTypeRequiredNotes
vinstringno

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

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

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:16.015Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderRead@1",
  "value": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "provider": {
      "id": "PRV-9adec772",
      "class": "inspection-service",
      "standing": "good",
      "mobile": true
    }
  },
  "evidence": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "provider": {
      "id": "PRV-9adec772",
      "class": "inspection-service",
      "standing": "good",
      "mobile": true
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

availability

provider.availability · GET /providers/availability · gate none · sandbox · answers ProviderAvailability@1

FieldTypeRequiredNotes
vinstringno

Doorservices.vin serves this noun on its two routes: / (the landing) · /1GKS2BKD0PR361110 (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 — provider.availability
import { provider } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await provider.availability({"vin":"1GKS2BKD0PR361110"})
GET /providers/availability
curl 'https://apis.vin/providers/availability?vin=1GKS2BKD0PR361110'

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:15.877Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderAvailability@1",
  "value": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "slotsOpen": 1,
    "nextSlotDate": "2026-08-12"
  },
  "evidence": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "slotsOpen": 1,
    "nextSlotDate": "2026-08-12"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

locate

provider.locate · GET /providers/locate · gate none · sandbox · answers ProviderLocate@1

FieldTypeRequiredNotes
vinstringno

Doorservices.vin serves this noun on its two routes: / (the landing) · /1GKS2BKD0PR361110 (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 — provider.locate
import { provider } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await provider.locate({"vin":"1GKS2BKD0PR361110"})
GET /providers/locate
curl 'https://apis.vin/providers/locate?vin=1GKS2BKD0PR361110'

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:15.921Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderLocate@1",
  "value": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "position": {
      "latE5": 3779800,
      "lonE5": -12241817
    }
  },
  "evidence": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "position": {
      "latE5": 3779800,
      "lonE5": -12241817
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

capacity

provider.capacity · GET /providers/capacity · gate key · sandbox · answers ProviderCapacity@1

FieldTypeRequiredNotes
vinstringno

Doorservices.vin serves this noun on its two routes: / (the landing) · /1GKS2BKD0PR361110 (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 — provider.capacity
import { provider } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await provider.capacity({"vin":"1GKS2BKD0PR361110"})
GET /providers/capacity
curl 'https://apis.vin/providers/capacity?vin=1GKS2BKD0PR361110'

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:15.883Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderCapacity@1",
  "value": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "slotsOpen": 1,
    "nextSlotDate": "2026-08-12"
  },
  "evidence": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "slotsOpen": 1,
    "nextSlotDate": "2026-08-12"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

slaHistory

provider.slaHistory · GET /providers/sla-history · gate none · sandbox · answers ProviderSlaHistory@1

FieldTypeRequiredNotes
vinstringno

Doorservices.vin serves this noun on its two routes: / (the landing) · /1GKS2BKD0PR361110 (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 — provider.slaHistory
import { provider } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await provider.slaHistory({"vin":"1GKS2BKD0PR361110"})
GET /providers/sla-history
curl 'https://apis.vin/providers/sla-history?vin=1GKS2BKD0PR361110'

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:16.016Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderSlaHistory@1",
  "value": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "onTimePct": 95,
    "jobsCompleted": 35
  },
  "evidence": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "onTimePct": 95,
    "jobsCompleted": 35
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

certificationVerify

provider.certificationVerify · GET /providers/certification-verify · gate key · sandbox · answers ProviderCertificationVerify@1

FieldTypeRequiredNotes
vinstringno

Doorservices.vin serves this noun on its two routes: / (the landing) · /1GKS2BKD0PR361110 (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 — provider.certificationVerify
import { provider } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await provider.certificationVerify({"vin":"1GKS2BKD0PR361110"})
GET /providers/certification-verify
curl 'https://apis.vin/providers/certification-verify?vin=1GKS2BKD0PR361110'

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:15.888Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderCertificationVerify@1",
  "value": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "verified": true,
    "credential": "certified-inspector",
    "standing": "good"
  },
  "evidence": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "verified": true,
    "credential": "certified-inspector",
    "standing": "good"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

credentialVerify

provider.credentialVerify · GET /providers/credential-verify · gate none · sandbox · answers ProviderCredentialVerify@1

FieldTypeRequiredNotes
vinstringno

Doorservices.vin serves this noun on its two routes: / (the landing) · /1GKS2BKD0PR361110 (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 — provider.credentialVerify
import { provider } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await provider.credentialVerify({"vin":"1GKS2BKD0PR361110"})
GET /providers/credential-verify
curl 'https://apis.vin/providers/credential-verify?vin=1GKS2BKD0PR361110'

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:15.897Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderCredentialVerify@1",
  "value": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "verified": true,
    "credential": "certified-inspector",
    "standing": "good"
  },
  "evidence": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "verified": true,
    "credential": "certified-inspector",
    "standing": "good"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Quote & price

quote

provider.quote · POST /providers/quote · gate offer · sandbox · answers ProviderQuote@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.

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

EmitsProvider.failed@1 · Provider.quoted@1.

the SDK — provider.quote
import { provider } from 'apis.vin'

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

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:16.015Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderQuote@1",
  "value": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "quote": {
      "id": "PQ-a7072e49",
      "amountCents": 12500,
      "currency": "USD",
      "status": "extended"
    }
  },
  "evidence": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "quote": {
      "id": "PQ-a7072e49",
      "amountCents": 12500,
      "currency": "USD",
      "status": "extended"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

rate

provider.rate · POST /providers/rate · gate offer · sandbox · answers ProviderRate@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.

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

EmitsProvider.rateRequested@1 · Provider.rated@1.

the SDK — provider.rate
import { provider } from 'apis.vin'

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

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:16.015Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderRate@1",
  "value": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "rateCentsPerHour": 16500,
    "currency": "USD",
    "priceLevel": "network"
  },
  "evidence": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "rateCentsPerHour": 16500,
    "currency": "USD",
    "priceLevel": "network"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

rebate

provider.rebate · POST /providers/rebate · gate offer · sandbox · answers ProviderRebate@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.

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

EmitsProvider.rebateRequested@1 · Provider.rebated@1.

the SDK — provider.rebate
import { provider } from 'apis.vin'

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

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:16.015Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderRebate@1",
  "value": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "rebate": {
      "id": "RB-2cac4a44",
      "amountCents": 2000,
      "currency": "USD",
      "status": "issued"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "rebate": {
      "id": "RB-2cac4a44",
      "amountCents": 2000,
      "currency": "USD",
      "status": "issued"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Apply & book

order

provider.order · POST /providers/order · gate offer · sandbox · answers ProviderOrder@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.

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

EmitsProvider.failed@1 · Provider.ordered@1 · Provider.requested@1.

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

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

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:15.926Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderOrder@1",
  "value": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "order": {
      "id": "ORD-e6636891",
      "service": "inspection",
      "status": "placed",
      "amountCents": 12500,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "order": {
      "id": "ORD-e6636891",
      "service": "inspection",
      "status": "placed",
      "amountCents": 12500,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

register

provider.register · POST /providers/register · gate offer · sandbox · answers ProviderRegister@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.

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

EmitsProvider.registered@1.

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

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

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:16.015Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderRegister@1",
  "value": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "enrollment": {
      "id": "EN-5c243192",
      "step": "register",
      "status": "registered"
    }
  },
  "evidence": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "enrollment": {
      "id": "EN-5c243192",
      "step": "register",
      "status": "registered"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

onboard

provider.onboard · POST /providers/onboard · gate offer · sandbox · answers ProviderOnboard@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.

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

EmitsProvider.onboardRequested@1 · Provider.onboarded@1.

the SDK — provider.onboard
import { provider } from 'apis.vin'

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

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:15.924Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderOnboard@1",
  "value": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "enrollment": {
      "id": "EN-20cbe89a",
      "step": "onboard",
      "status": "onboarded"
    }
  },
  "evidence": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "enrollment": {
      "id": "EN-20cbe89a",
      "step": "onboard",
      "status": "onboarded"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

assign

provider.assign · POST /providers/assign · gate offer · sandbox · answers ProviderAssign@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.

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

EmitsProvider.assignRequested@1 · Provider.assigned@1.

the SDK — provider.assign
import { provider } from 'apis.vin'

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

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:15.870Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderAssign@1",
  "value": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "assignment": {
      "id": "AS-0cbc7e96",
      "position": "Passed",
      "status": "completed"
    }
  },
  "evidence": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "assignment": {
      "id": "AS-0cbc7e96",
      "position": "Passed",
      "status": "completed"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

dispatch

provider.dispatch · POST /providers/dispatch · gate human · sandbox · answers DispatchJob@1

FieldTypeRequiredNotes
servicestringyesthe leaf being fulfilled, e.g. inspection|roadside|recon
vinstringyes
orderIdstringno
locationobjectno
credentialstringnorequired credential for the job

The gate is a 403 NEEDS_HUMAN — the human verb authorize (credential: provider-credential) · supply side, routed to a named, staffed, priced terminus with a poll rail. Never a dead end. Price: not posted — see /pricing.

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

EmitsJob.accepted@1 · Job.assigned@1 · Job.offered@1 · Provider.credentialed@1 · Provider.dispatchFailed@1 · Provider.dispatchRequested@1 · Provider.dispatched@1 · Provider.onboarded@1 · Provider.paid@1 · Provider.requested@1.

the SDK — provider.dispatch
import { provider } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await provider.dispatch({"service":"service","vin":"1GKS2BKD0PR361110"})
POST /providers/dispatch
curl -X POST https://apis.vin/providers/dispatch \
  -H 'content-type: application/json' \
  -d '{"service":"service","vin":"1GKS2BKD0PR361110"}'

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:15.907Z · HTTP 200
{
  "type": "OK",
  "answers": "DispatchJob@1",
  "value": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "assignment": {
      "id": "AS-0cbc7e96",
      "position": "Passed",
      "status": "completed"
    }
  },
  "evidence": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "assignment": {
      "id": "AS-0cbc7e96",
      "position": "Passed",
      "status": "completed"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

credential

provider.credential · POST /providers/credential · gate offer · sandbox · answers ProviderCredential@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.

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

EmitsProvider.credentialed@1.

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

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

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:15.897Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderCredential@1",
  "value": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "enrollment": {
      "id": "EN-c84e8516",
      "step": "credential",
      "status": "credentialed"
    }
  },
  "evidence": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "enrollment": {
      "id": "EN-c84e8516",
      "step": "credential",
      "status": "credentialed"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

quoteRequest

provider.quoteRequest · POST /providers/quote-request · gate offer · sandbox · answers ProviderQuoteRequest@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.

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

EmitsProvider.quoteRequested@1.

the SDK — provider.quoteRequest
import { provider } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await provider.quoteRequest({"vin":"1GKS2BKD0PR361110"})
POST /providers/quote-request
curl -X POST https://apis.vin/providers/quote-request \
  -H 'content-type: application/json' \
  -d '{"vin":"1GKS2BKD0PR361110"}'

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:16.015Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderQuoteRequest@1",
  "value": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "quote": {
      "id": "PQ-a7072e49",
      "amountCents": 12500,
      "currency": "USD",
      "status": "requested"
    }
  },
  "evidence": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "quote": {
      "id": "PQ-a7072e49",
      "amountCents": 12500,
      "currency": "USD",
      "status": "requested"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Pay & settle

pay

provider.pay · POST /providers/pay · gate offer · sandbox · answers ProviderPay@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.

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

EmitsProvider.failed@1 · Provider.paid@1 · Provider.payFailed@1 · Provider.payRequested@1.

the SDK — provider.pay
import { provider } from 'apis.vin'

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

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:16.015Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderPay@1",
  "value": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "payment": {
      "id": "PAY-e1f6a577",
      "status": "settled",
      "amountCents": 12500,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "payment": {
      "id": "PAY-e1f6a577",
      "status": "settled",
      "amountCents": 12500,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

invoice

provider.invoice · POST /providers/invoice · gate offer · sandbox · answers ProviderInvoice@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.

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

EmitsProvider.failed@1 · Provider.invoiced@1.

the SDK — provider.invoice
import { provider } from 'apis.vin'

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

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:15.913Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderInvoice@1",
  "value": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "invoice": {
      "id": "INV-1871eb7e",
      "status": "issued",
      "amountCents": 12500,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "invoice": {
      "id": "INV-1871eb7e",
      "status": "issued",
      "amountCents": 12500,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

settle

provider.settle · POST /providers/settle · gate offer · sandbox · answers ProviderSettle@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.

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

EmitsProvider.settleFailed@1 · Provider.settleRequested@1 · Provider.settled@1.

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

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

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:16.016Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderSettle@1",
  "value": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "payment": {
      "id": "PAY-c4adad48",
      "status": "settled",
      "amountCents": 12500,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "payment": {
      "id": "PAY-c4adad48",
      "status": "settled",
      "amountCents": 12500,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

chargeback

provider.chargeback · POST /providers/chargeback · gate offer · sandbox · answers ProviderChargeback@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.

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

EmitsProvider.chargebackRequested@1 · Provider.chargebacked@1.

the SDK — provider.chargeback
import { provider } from 'apis.vin'

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

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:15.897Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderChargeback@1",
  "value": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "chargeback": {
      "id": "CBK-42121f18",
      "status": "no-grounds",
      "amountCents": 0,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "chargeback": {
      "id": "CBK-42121f18",
      "status": "no-grounds",
      "amountCents": 0,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Fulfill & operate

perform

provider.perform · POST /providers/perform · gate offer · sandbox · answers ProviderPerform@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.

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

EmitsProvider.performed@1 · Provider.requested@1.

the SDK — provider.perform
import { provider } from 'apis.vin'

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

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:16.015Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderPerform@1",
  "value": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "work": {
      "id": "WK-f5bc0158",
      "operation": "perform",
      "status": "completed",
      "outcome": "passed"
    }
  },
  "evidence": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "work": {
      "id": "WK-f5bc0158",
      "operation": "perform",
      "status": "completed",
      "outcome": "passed"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

complete

provider.complete · POST /providers/complete · gate offer · sandbox · answers ProviderComplete@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.

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

EmitsProvider.completed@1.

the SDK — provider.complete
import { provider } from 'apis.vin'

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

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:15.897Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderComplete@1",
  "value": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "work": {
      "id": "WK-fb41f5cc",
      "operation": "complete",
      "status": "completed",
      "outcome": "passed"
    }
  },
  "evidence": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "work": {
      "id": "WK-fb41f5cc",
      "operation": "complete",
      "status": "completed",
      "outcome": "passed"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Authorize & resolve

accept

provider.accept · POST /providers/accept · gate offer · sandbox · answers ProviderAccept@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.

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

EmitsProvider.accepted@1.

the SDK — provider.accept
import { provider } from 'apis.vin'

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

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:15.870Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderAccept@1",
  "value": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "assignment": {
      "id": "AS-0cbc7e96",
      "position": "Passed",
      "status": "completed"
    }
  },
  "evidence": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "assignment": {
      "id": "AS-0cbc7e96",
      "position": "Passed",
      "status": "completed"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

oemCertify

provider.oemCertify · POST /providers/oem-certify · gate key · sandbox · answers ProviderOemCertify@1

No input — this capability takes no request body.

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

EmitsProvider.oemCertified@1.

the SDK — provider.oemCertify
import { provider } from 'apis.vin'

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

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-16T14:50:09.984Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderOemCertify@1",
  "value": {
    "vin": "1HGCM82633A004352",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-f60f1458",
    "verified": true,
    "credential": "factory-certified-inspector",
    "standing": "good"
  },
  "evidence": {
    "vin": "1HGCM82633A004352",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-f60f1458",
    "verified": true,
    "credential": "factory-certified-inspector",
    "standing": "good"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Lifecycle & state

deactivate

provider.deactivate · POST /providers/deactivate · gate offer · sandbox · answers ProviderDeactivate@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.

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

EmitsProvider.deactivateRequested@1 · Provider.deactivated@1.

the SDK — provider.deactivate
import { provider } from 'apis.vin'

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

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:15.906Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderDeactivate@1",
  "value": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "enrollment": {
      "id": "EN-fb6acc8d",
      "status": "deactivated"
    }
  },
  "evidence": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "enrollment": {
      "id": "EN-fb6acc8d",
      "status": "deactivated"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

More actions

capabilities

provider.capabilities · GET /providers/capabilities · gate key · sandbox · answers ProviderCapabilities@1

FieldTypeRequiredNotes
vinstringno

Doorservices.vin serves this noun on its two routes: / (the landing) · /1GKS2BKD0PR361110 (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 — provider.capabilities
import { provider } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await provider.capabilities({"vin":"1GKS2BKD0PR361110"})
GET /providers/capabilities
curl 'https://apis.vin/providers/capabilities?vin=1GKS2BKD0PR361110'

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:15.877Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderCapabilities@1",
  "value": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "services": [
      "inspection",
      "condition-report",
      "photo-capture"
    ],
    "mobile": true
  },
  "evidence": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "services": [
      "inspection",
      "condition-report",
      "photo-capture"
    ],
    "mobile": true
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

capability

provider.capability · GET /providers/capability · gate none · sandbox · answers ProviderCapability@1

FieldTypeRequiredNotes
vinstringno

Doorservices.vin serves this noun on its two routes: / (the landing) · /1GKS2BKD0PR361110 (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 — provider.capability
import { provider } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await provider.capability({"vin":"1GKS2BKD0PR361110"})
GET /providers/capability
curl 'https://apis.vin/providers/capability?vin=1GKS2BKD0PR361110'

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:15.877Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderCapability@1",
  "value": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "services": [
      "inspection",
      "condition-report",
      "photo-capture"
    ],
    "mobile": true
  },
  "evidence": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "services": [
      "inspection",
      "condition-report",
      "photo-capture"
    ],
    "mobile": true
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

contract

provider.contract · POST /providers/contract · gate offer · sandbox · answers ProviderContract@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.

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

EmitsProvider.contractRequested@1 · Provider.contracted@1.

the SDK — provider.contract
import { provider } from 'apis.vin'

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

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:15.897Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderContract@1",
  "value": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "enrollment": {
      "id": "EN-afd898f9",
      "step": "contract",
      "status": "contracted"
    }
  },
  "evidence": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "enrollment": {
      "id": "EN-afd898f9",
      "step": "contract",
      "status": "contracted"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

geo

provider.geo · GET /providers/geo · gate none · sandbox · answers ProviderGeo@1

FieldTypeRequiredNotes
vinstringno

Doorservices.vin serves this noun on its two routes: / (the landing) · /1GKS2BKD0PR361110 (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 — provider.geo
import { provider } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await provider.geo({"vin":"1GKS2BKD0PR361110"})
GET /providers/geo
curl 'https://apis.vin/providers/geo?vin=1GKS2BKD0PR361110'

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:15.912Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderGeo@1",
  "value": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "position": {
      "latE5": 3779800,
      "lonE5": -12241817
    }
  },
  "evidence": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "position": {
      "latE5": 3779800,
      "lonE5": -12241817
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

pricing

provider.pricing · GET /providers/pricing · gate none · sandbox · answers ProviderPricing@1

FieldTypeRequiredNotes
vinstringno

Doorservices.vin serves this noun on its two routes: / (the landing) · /1GKS2BKD0PR361110 (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 — provider.pricing
import { provider } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await provider.pricing({"vin":"1GKS2BKD0PR361110"})
GET /providers/pricing
curl 'https://apis.vin/providers/pricing?vin=1GKS2BKD0PR361110'

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:16.015Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderPricing@1",
  "value": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "rateCentsPerHour": 16500,
    "currency": "USD",
    "priceLevel": "network"
  },
  "evidence": {
    "vin": "1GKS2BKD0PR361110",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-9adec772",
    "rateCentsPerHour": 16500,
    "currency": "USD",
    "priceLevel": "network"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

privilege

provider.privilege · POST /providers/privilege · gate key · sandbox · answers ProviderPrivilege@1

No input — this capability takes no request body.

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

EmitsProvider.privileged@1.

the SDK — provider.privilege
import { provider } from 'apis.vin'

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

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-16T14:50:09.984Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderPrivilege@1",
  "value": {
    "vin": "1HGCM82633A004352",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-f60f1458",
    "privileges": [
      "inspect",
      "grade",
      "publish-report"
    ]
  },
  "evidence": {
    "vin": "1HGCM82633A004352",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-f60f1458",
    "privileges": [
      "inspect",
      "grade",
      "publish-report"
    ]
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

refer

provider.refer · POST /providers/refer · gate key · sandbox · answers ProviderRefer@1

No input — this capability takes no request body.

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

EmitsProvider.referred@1.

the SDK — provider.refer
import { provider } from 'apis.vin'

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

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-16T14:50:09.985Z · HTTP 200
{
  "type": "OK",
  "answers": "ProviderRefer@1",
  "value": {
    "vin": "1HGCM82633A004352",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-f60f1458",
    "referral": {
      "id": "RF-a9b86b4d",
      "status": "referred",
      "toProviderId": "PRV-eb047427"
    }
  },
  "evidence": {
    "vin": "1HGCM82633A004352",
    "noun": "provider",
    "asOf": "2026-08-10",
    "providerId": "PRV-f60f1458",
    "referral": {
      "id": "RF-a9b86b4d",
      "status": "referred",
      "toProviderId": "PRV-eb047427"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "counterparty-logistics-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.

Provider

Schema

PropertyType
servicesstring[]
credentialsCredential[]

Relationships

FromToCardinalityAs
orderprovider*:1dispatched to
partyproviderISAis-a

Modeled

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

Provider · Class model

Provider · State machine

Provider · State machine

Provider · Class model

Provider · State machine

Provider · State machine

Provider · Sequence


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