docs.vin

toll

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

toll 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

Nountoll
PillarData (facets: 5 data · 4 services · 5 commerce)
Capabilities14 — 0 live · 14 sandbox · 0 declared
EntitiesUsage
Doorsaggregator.vin
SDKVin.toll.* from apis.vin
Address/catalog/toll#{action} — the anchor IS the wire name minus toll.

Events

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

Discover & read

history

toll.history · GET /tolls/history · gate none · sandbox · answers TollHistory@1

FieldTypeRequiredNotes
vinstringno

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

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

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:18.342Z · HTTP 200
{
  "type": "OK",
  "answers": "TollHistory@1",
  "value": {
    "vin": "1FA6P8AM4G5250155",
    "noun": "toll",
    "asOf": "2026-08-10",
    "transactions": [
      {
        "id": "TX-c79155c4",
        "plaza": "PLZ-49",
        "date": "2026-08-08",
        "amountCents": 611
      },
      {
        "id": "TX-c8915757",
        "plaza": "PLZ-48",
        "date": "2026-08-09",
        "amountCents": 1192
      }
    ],
    "accruedCents": 1803,
    "currency": "USD"
  },
  "evidence": {
    "vin": "1FA6P8AM4G5250155",
    "noun": "toll",
    "asOf": "2026-08-10",
    "transactions": [
      {
        "id": "TX-c79155c4",
        "plaza": "PLZ-49",
        "date": "2026-08-08",
        "amountCents": 611
      },
      {
        "id": "TX-c8915757",
        "plaza": "PLZ-48",
        "date": "2026-08-09",
        "amountCents": 1192
      }
    ],
    "accruedCents": 1803,
    "currency": "USD"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "long-haul-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

assess

toll.assess · POST /tolls/assess · gate offer · sandbox · answers TollAssess@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) · /1FA6P8AM4G5250155 (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.

EmitsToll.assessRequested@1 · Toll.assessed@1.

the SDK — toll.assess
import { toll } from 'apis.vin'

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

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:18.336Z · HTTP 200
{
  "type": "OK",
  "answers": "TollAssess@1",
  "value": {
    "vin": "1FA6P8AM4G5250155",
    "noun": "toll",
    "asOf": "2026-08-10",
    "assessment": {
      "tagId": "TAG-1bfe615a",
      "crossings": 2,
      "accruedCents": 1803,
      "currency": "USD"
    }
  },
  "evidence": {
    "vin": "1FA6P8AM4G5250155",
    "noun": "toll",
    "asOf": "2026-08-10",
    "assessment": {
      "tagId": "TAG-1bfe615a",
      "crossings": 2,
      "accruedCents": 1803,
      "currency": "USD"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "long-haul-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

transactionLookup

toll.transactionLookup · GET /tolls/transaction-lookup · gate none · sandbox · answers TollTransactionLookup@1

FieldTypeRequiredNotes
vinstringno

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

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

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:18.358Z · HTTP 200
{
  "type": "OK",
  "answers": "TollTransactionLookup@1",
  "value": {
    "vin": "1FA6P8AM4G5250155",
    "noun": "toll",
    "asOf": "2026-08-10",
    "transactions": [
      {
        "id": "TX-c79155c4",
        "plaza": "PLZ-49",
        "date": "2026-08-08",
        "amountCents": 611
      },
      {
        "id": "TX-c8915757",
        "plaza": "PLZ-48",
        "date": "2026-08-09",
        "amountCents": 1192
      }
    ],
    "accruedCents": 1803,
    "currency": "USD"
  },
  "evidence": {
    "vin": "1FA6P8AM4G5250155",
    "noun": "toll",
    "asOf": "2026-08-10",
    "transactions": [
      {
        "id": "TX-c79155c4",
        "plaza": "PLZ-49",
        "date": "2026-08-08",
        "amountCents": 611
      },
      {
        "id": "TX-c8915757",
        "plaza": "PLZ-48",
        "date": "2026-08-09",
        "amountCents": 1192
      }
    ],
    "accruedCents": 1803,
    "currency": "USD"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "long-haul-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

violationCheck

toll.violationCheck · GET /tolls/violation-check · gate none · sandbox · answers TollViolationCheck@1

FieldTypeRequiredNotes
vinstringno

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

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await toll.violationCheck({"vin":"1FA6P8AM4G5250155"})
GET /tolls/violation-check
curl 'https://apis.vin/tolls/violation-check?vin=1FA6P8AM4G5250155'

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:18.358Z · HTTP 200
{
  "type": "OK",
  "answers": "TollViolationCheck@1",
  "value": {
    "vin": "1FA6P8AM4G5250155",
    "noun": "toll",
    "asOf": "2026-08-10",
    "violation": {
      "status": "open",
      "id": "TV-b7496071",
      "penaltyCents": 2500,
      "currency": "USD"
    }
  },
  "evidence": {
    "vin": "1FA6P8AM4G5250155",
    "noun": "toll",
    "asOf": "2026-08-10",
    "violation": {
      "status": "open",
      "id": "TV-b7496071",
      "penaltyCents": 2500,
      "currency": "USD"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "long-haul-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Quote & price

rate

toll.rate · GET /tolls/rate · gate key · sandbox · answers TollRate@1

FieldTypeRequiredNotes
vinstringno

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

EmitsToll.rated@1.

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

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

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:18.350Z · HTTP 200
{
  "type": "OK",
  "answers": "TollRate@1",
  "value": {
    "vin": "1FA6P8AM4G5250155",
    "noun": "toll",
    "asOf": "2026-08-10",
    "rate": {
      "axle2Cents": 450,
      "axle3Cents": 675,
      "carHaulerCents": 1125,
      "currency": "USD",
      "authority": "toll-authority-sandbox"
    }
  },
  "evidence": {
    "vin": "1FA6P8AM4G5250155",
    "noun": "toll",
    "asOf": "2026-08-10",
    "rate": {
      "axle2Cents": 450,
      "axle3Cents": 675,
      "carHaulerCents": 1125,
      "currency": "USD",
      "authority": "toll-authority-sandbox"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "long-haul-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Apply & book

tagProvision

toll.tagProvision · POST /tolls/tag-provision · gate offer · sandbox · answers TollTagProvision@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) · /1FA6P8AM4G5250155 (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.

EmitsToll.tagProvisionRequested@1 · Toll.tagProvisioned@1.

the SDK — toll.tagProvision
import { toll } from 'apis.vin'

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

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:18.358Z · HTTP 200
{
  "type": "OK",
  "answers": "TollTagProvision@1",
  "value": {
    "vin": "1FA6P8AM4G5250155",
    "noun": "toll",
    "asOf": "2026-08-10",
    "tag": {
      "id": "TAG-1bfe615a",
      "status": "active",
      "prepaidCents": 5000,
      "currency": "USD"
    }
  },
  "evidence": {
    "vin": "1FA6P8AM4G5250155",
    "noun": "toll",
    "asOf": "2026-08-10",
    "tag": {
      "id": "TAG-1bfe615a",
      "status": "active",
      "prepaidCents": 5000,
      "currency": "USD"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "long-haul-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Pay & settle

pay

toll.pay · POST /tolls/pay · gate offer · sandbox · answers TollPay@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) · /1FA6P8AM4G5250155 (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.

EmitsToll.paid@1 · Toll.payFailed@1 · Toll.payRequested@1.

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

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

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:18.342Z · HTTP 200
{
  "type": "OK",
  "answers": "TollPay@1",
  "value": {
    "vin": "1FA6P8AM4G5250155",
    "noun": "toll",
    "asOf": "2026-08-10",
    "payment": {
      "id": "PAY-51c47f24",
      "status": "settled",
      "amountCents": 1803,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1FA6P8AM4G5250155",
    "noun": "toll",
    "asOf": "2026-08-10",
    "payment": {
      "id": "PAY-51c47f24",
      "status": "settled",
      "amountCents": 1803,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "long-haul-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

charge

toll.charge · POST /tolls/charge · gate offer · sandbox · answers TollCharge@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) · /1FA6P8AM4G5250155 (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.

EmitsToll.chargeRequested@1 · Toll.charged@1.

the SDK — toll.charge
import { toll } from 'apis.vin'

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

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:18.342Z · HTTP 200
{
  "type": "OK",
  "answers": "TollCharge@1",
  "value": {
    "vin": "1FA6P8AM4G5250155",
    "noun": "toll",
    "asOf": "2026-08-10",
    "charge": {
      "id": "TC-bcfce532",
      "amountCents": 1803,
      "currency": "USD",
      "status": "charged"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1FA6P8AM4G5250155",
    "noun": "toll",
    "asOf": "2026-08-10",
    "charge": {
      "id": "TC-bcfce532",
      "amountCents": 1803,
      "currency": "USD",
      "status": "charged"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "long-haul-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

settle

toll.settle · POST /tolls/settle · gate offer · sandbox · answers TollSettle@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) · /1FA6P8AM4G5250155 (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.

EmitsToll.settleFailed@1 · Toll.settleRequested@1 · Toll.settled@1.

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

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

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:18.358Z · HTTP 200
{
  "type": "OK",
  "answers": "TollSettle@1",
  "value": {
    "vin": "1FA6P8AM4G5250155",
    "noun": "toll",
    "asOf": "2026-08-10",
    "payment": {
      "id": "PAY-f900298d",
      "status": "settled",
      "amountCents": 1803,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1FA6P8AM4G5250155",
    "noun": "toll",
    "asOf": "2026-08-10",
    "payment": {
      "id": "PAY-f900298d",
      "status": "settled",
      "amountCents": 1803,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "long-haul-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

reimburse

toll.reimburse · POST /tolls/reimburse · gate offer · sandbox · answers TollReimburse@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) · /1FA6P8AM4G5250155 (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.

EmitsToll.reimburseRequested@1 · Toll.reimbursed@1.

the SDK — toll.reimburse
import { toll } from 'apis.vin'

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

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:18.350Z · HTTP 200
{
  "type": "OK",
  "answers": "TollReimburse@1",
  "value": {
    "vin": "1FA6P8AM4G5250155",
    "noun": "toll",
    "asOf": "2026-08-10",
    "reimbursement": {
      "id": "RB-2515cfb6",
      "amountCents": 1803,
      "currency": "USD",
      "status": "reimbursed"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1FA6P8AM4G5250155",
    "noun": "toll",
    "asOf": "2026-08-10",
    "reimbursement": {
      "id": "RB-2515cfb6",
      "amountCents": 1803,
      "currency": "USD",
      "status": "reimbursed"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "long-haul-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

violationPay

toll.violationPay · POST /tolls/violation-pay · gate offer · sandbox · answers TollViolationPay@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) · /1FA6P8AM4G5250155 (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.

EmitsToll.violationPaid@1 · Toll.violationPayFailed@1 · Toll.violationPayRequested@1.

the SDK — toll.violationPay
import { toll } from 'apis.vin'

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

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:18.358Z · HTTP 200
{
  "type": "OK",
  "answers": "TollViolationPay@1",
  "value": {
    "vin": "1FA6P8AM4G5250155",
    "noun": "toll",
    "asOf": "2026-08-10",
    "payment": {
      "id": "PAY-ce6b9d7d",
      "status": "settled",
      "amountCents": 2500,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1FA6P8AM4G5250155",
    "noun": "toll",
    "asOf": "2026-08-10",
    "payment": {
      "id": "PAY-ce6b9d7d",
      "status": "settled",
      "amountCents": 2500,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "long-haul-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Authorize & resolve

dispute

toll.dispute · POST /tolls/dispute · gate offer · sandbox · answers TollDispute@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) · /1FA6P8AM4G5250155 (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.

EmitsToll.disputeRequested@1 · Toll.disputed@1.

the SDK — toll.dispute
import { toll } from 'apis.vin'

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

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:18.342Z · HTTP 200
{
  "type": "OK",
  "answers": "TollDispute@1",
  "value": {
    "vin": "1FA6P8AM4G5250155",
    "noun": "toll",
    "asOf": "2026-08-10",
    "dispute": {
      "id": "TD-9b87d912",
      "transactionId": "TX-c79155c4",
      "status": "filed"
    }
  },
  "evidence": {
    "vin": "1FA6P8AM4G5250155",
    "noun": "toll",
    "asOf": "2026-08-10",
    "dispute": {
      "id": "TD-9b87d912",
      "transactionId": "TX-c79155c4",
      "status": "filed"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "long-haul-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

More actions

balance

toll.balance · GET /tolls/balance · gate none · sandbox · answers TollBalance@1

FieldTypeRequiredNotes
vinstringno

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

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

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:18.338Z · HTTP 200
{
  "type": "OK",
  "answers": "TollBalance@1",
  "value": {
    "vin": "1FA6P8AM4G5250155",
    "noun": "toll",
    "asOf": "2026-08-10",
    "balance": {
      "tagId": "TAG-1bfe615a",
      "prepaidCents": 5000,
      "accruedCents": 1803,
      "remainingCents": 3197,
      "currency": "USD"
    }
  },
  "evidence": {
    "vin": "1FA6P8AM4G5250155",
    "noun": "toll",
    "asOf": "2026-08-10",
    "balance": {
      "tagId": "TAG-1bfe615a",
      "prepaidCents": 5000,
      "accruedCents": 1803,
      "remainingCents": 3197,
      "currency": "USD"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "long-haul-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

passThrough

toll.passThrough · POST /tolls/pass-through · gate offer · sandbox · answers TollPassThrough@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) · /1FA6P8AM4G5250155 (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.

EmitsToll.passThroughRequested@1 · Toll.passedThrough@1.

the SDK — toll.passThrough
import { toll } from 'apis.vin'

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

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:18.342Z · HTTP 200
{
  "type": "OK",
  "answers": "TollPassThrough@1",
  "value": {
    "vin": "1FA6P8AM4G5250155",
    "noun": "toll",
    "asOf": "2026-08-10",
    "passThrough": {
      "amountCents": 1803,
      "currency": "USD",
      "status": "passed-through"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1FA6P8AM4G5250155",
    "noun": "toll",
    "asOf": "2026-08-10",
    "passThrough": {
      "amountCents": 1803,
      "currency": "USD",
      "status": "passed-through"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "long-haul-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.

Usage


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