fee
The fee noun — identity, lifecycle, events, and every capability as an anchored section: 11 capabilities, 3 live, 8 sandbox, 0 declared.
fee is one of the estate's 317 automotive nouns — a job a car needs done. It carries 11 capabilities: 3 live, 8 sandbox, 0 declared · doors aggregator.vin.
Identity
| Noun | fee |
| Pillar | Data (facets: 4 data · 4 services · 3 commerce) |
| Capabilities | 11 — 3 live · 8 sandbox · 0 declared |
| Entities | Invoice |
| Doors | aggregator.vin |
| SDK | Vin.fee.* from apis.vin |
| Address | /catalog/fee#{action} — the anchor IS the wire name minus fee. |
Events
The vocabulary this noun can append to the record — 8 past-tense, versioned event types, each linked to the capability that emits it:
Fee.applied@1— emitted byapplyFee.assessed@1— emitted byassessFee.charged@1— emitted bychargeFee.collected@1— emitted bycollectFee.disputed@1— emitted bydisputeFee.failed@1— emitted bycharge·collect·rebateFee.rebated@1— emitted byrebateFee.waived@1— emitted bywaive
Discover & read
read
fee.read · GET /fees/read · gate none · sandbox · answers FeeRead@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6RR7NT0HS595433 (the VIN lens).
Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.
import { fee } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await fee.read({"vin":"1C6RR7NT0HS595433"})curl 'https://apis.vin/fees/read?vin=1C6RR7NT0HS595433'Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.
{
"type": "OK",
"answers": "FeeRead@1",
"value": {
"vin": "1C6RR7NT0HS595433",
"noun": "fee",
"asOf": "2026-08-10",
"id": "FIN-45550b03",
"subjectId": "DL-db9f4aac",
"lineItems": [
{
"kind": "doc-fee",
"amountCents": 8500,
"basis": "posted-doc-fee"
},
{
"kind": "title-reg",
"amountCents": 19000,
"basis": "title-rail-posted-total"
},
{
"kind": "sales-tax",
"amountCents": 189750,
"basis": "posted-rate-on-asking-value"
}
],
"amount": 217250,
"status": "Created",
"billing": {
"standing": "drawn"
}
},
"evidence": {
"vin": "1C6RR7NT0HS595433",
"noun": "fee",
"asOf": "2026-08-10",
"id": "FIN-45550b03",
"subjectId": "DL-db9f4aac",
"lineItems": [
{
"kind": "doc-fee",
"amountCents": 8500,
"basis": "posted-doc-fee"
},
{
"kind": "title-reg",
"amountCents": 19000,
"basis": "title-rail-posted-total"
},
{
"kind": "sales-tax",
"amountCents": 189750,
"basis": "posted-rate-on-asking-value"
}
],
"amount": 217250,
"status": "Created",
"billing": {
"standing": "drawn"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "fi-back-end-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}assess
fee.assess · POST /fees/assess · gate offer · sandbox · answers FeeAssess@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6RR7NT0HS595433 (the VIN lens).
Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.
Emits — Fee.assessed@1.
import { fee } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await fee.assess({"vin":"1C6RR7NT0HS595433"})curl -X POST https://apis.vin/fees/assess \
-H 'content-type: application/json' \
-d '{"vin":"1C6RR7NT0HS595433"}'Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.
{
"type": "OK",
"answers": "FeeAssess@1",
"value": {
"vin": "1C6RR7NT0HS595433",
"noun": "fee",
"asOf": "2026-08-10",
"id": "FIN-45550b03",
"subjectId": "DL-db9f4aac",
"lineItems": [
{
"kind": "doc-fee",
"amountCents": 8500,
"basis": "posted-doc-fee"
},
{
"kind": "title-reg",
"amountCents": 19000,
"basis": "title-rail-posted-total"
},
{
"kind": "sales-tax",
"amountCents": 189750,
"basis": "posted-rate-on-asking-value"
}
],
"amount": 217250,
"status": "Created",
"assessment": {
"items": [
{
"kind": "doc-fee",
"amountCents": 8500,
"basis": "posted-doc-fee"
},
{
"kind": "title-reg",
"amountCents": 19000,
"basis": "title-rail-posted-total"
},
{
"kind": "sales-tax",
"amountCents": 189750,
"basis": "posted-rate-on-asking-value"
}
],
"totalCents": 217250,
"currency": "USD",
"basis": "ratified-anchor-derivations"
}
},
"evidence": {
"vin": "1C6RR7NT0HS595433",
"noun": "fee",
"asOf": "2026-08-10",
"id": "FIN-45550b03",
"subjectId": "DL-db9f4aac",
"lineItems": [
{
"kind": "doc-fee",
"amountCents": 8500,
"basis": "posted-doc-fee"
},
{
"kind": "title-reg",
"amountCents": 19000,
"basis": "title-rail-posted-total"
},
{
"kind": "sales-tax",
"amountCents": 189750,
"basis": "posted-rate-on-asking-value"
}
],
"amount": 217250,
"status": "Created",
"assessment": {
"items": [
{
"kind": "doc-fee",
"amountCents": 8500,
"basis": "posted-doc-fee"
},
{
"kind": "title-reg",
"amountCents": 19000,
"basis": "title-rail-posted-total"
},
{
"kind": "sales-tax",
"amountCents": 189750,
"basis": "posted-rate-on-asking-value"
}
],
"totalCents": 217250,
"currency": "USD",
"basis": "ratified-anchor-derivations"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "fi-back-end-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Quote & price
calc
fee.calc · GET /fees/calc · gate key · live · answers FeeCalc@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6RR7NT0HS595433 (the VIN lens).
Try it — live: answers on the wire today. A sandbox key still selects the deterministic simulated mode — drive the full outcome range with the magic triggers.
import { fee } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await fee.calc({"vin":"1C6RR7NT0HS595433"})curl 'https://apis.vin/fees/calc?vin=1C6RR7NT0HS595433'rebate
fee.rebate · POST /fees/rebate · gate offer · sandbox · answers FeeRebate@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6RR7NT0HS595433 (the VIN lens).
Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.
Emits — Fee.failed@1 · Fee.rebated@1.
import { fee } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await fee.rebate({"vin":"1C6RR7NT0HS595433"})curl -X POST https://apis.vin/fees/rebate \
-H 'content-type: application/json' \
-d '{"vin":"1C6RR7NT0HS595433"}'Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.
{
"type": "OK",
"answers": "FeeRebate@1",
"value": {
"vin": "1C6RR7NT0HS595433",
"noun": "fee",
"asOf": "2026-08-10",
"id": "FIN-45550b03",
"subjectId": "DL-db9f4aac",
"lineItems": [
{
"kind": "doc-fee",
"amountCents": 8500,
"basis": "posted-doc-fee"
},
{
"kind": "title-reg",
"amountCents": 19000,
"basis": "title-rail-posted-total"
},
{
"kind": "sales-tax",
"amountCents": 189750,
"basis": "posted-rate-on-asking-value"
}
],
"amount": 217250,
"status": "Created",
"rebate": {
"kind": "doc-fee",
"amountCents": 8500,
"currency": "USD",
"statutoryFees": "never-rebated",
"status": "nothing-collected-to-rebate"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "1C6RR7NT0HS595433",
"noun": "fee",
"asOf": "2026-08-10",
"id": "FIN-45550b03",
"subjectId": "DL-db9f4aac",
"lineItems": [
{
"kind": "doc-fee",
"amountCents": 8500,
"basis": "posted-doc-fee"
},
{
"kind": "title-reg",
"amountCents": 19000,
"basis": "title-rail-posted-total"
},
{
"kind": "sales-tax",
"amountCents": 189750,
"basis": "posted-rate-on-asking-value"
}
],
"amount": 217250,
"status": "Created",
"rebate": {
"kind": "doc-fee",
"amountCents": 8500,
"currency": "USD",
"statutoryFees": "never-rebated",
"status": "nothing-collected-to-rebate"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "fi-back-end-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Apply & book
apply
fee.apply · POST /fees/apply · gate offer · sandbox · answers FeeApply@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6RR7NT0HS595433 (the VIN lens).
Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.
Emits — Fee.applied@1.
import { fee } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await fee.apply({"vin":"1C6RR7NT0HS595433"})curl -X POST https://apis.vin/fees/apply \
-H 'content-type: application/json' \
-d '{"vin":"1C6RR7NT0HS595433"}'Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.
{
"type": "OK",
"answers": "FeeApply@1",
"value": {
"vin": "1C6RR7NT0HS595433",
"noun": "fee",
"asOf": "2026-08-10",
"id": "FIN-45550b03",
"subjectId": "DL-db9f4aac",
"lineItems": [
{
"kind": "doc-fee",
"amountCents": 8500,
"basis": "posted-doc-fee"
},
{
"kind": "title-reg",
"amountCents": 19000,
"basis": "title-rail-posted-total"
},
{
"kind": "sales-tax",
"amountCents": 189750,
"basis": "posted-rate-on-asking-value"
}
],
"amount": 217250,
"status": "Created",
"application": {
"invoiceId": "FIN-45550b03",
"items": [
{
"kind": "doc-fee",
"amountCents": 8500,
"basis": "posted-doc-fee"
},
{
"kind": "title-reg",
"amountCents": 19000,
"basis": "title-rail-posted-total"
},
{
"kind": "sales-tax",
"amountCents": 189750,
"basis": "posted-rate-on-asking-value"
}
],
"totalCents": 217250,
"status": "applied"
}
},
"evidence": {
"vin": "1C6RR7NT0HS595433",
"noun": "fee",
"asOf": "2026-08-10",
"id": "FIN-45550b03",
"subjectId": "DL-db9f4aac",
"lineItems": [
{
"kind": "doc-fee",
"amountCents": 8500,
"basis": "posted-doc-fee"
},
{
"kind": "title-reg",
"amountCents": 19000,
"basis": "title-rail-posted-total"
},
{
"kind": "sales-tax",
"amountCents": 189750,
"basis": "posted-rate-on-asking-value"
}
],
"amount": 217250,
"status": "Created",
"application": {
"invoiceId": "FIN-45550b03",
"items": [
{
"kind": "doc-fee",
"amountCents": 8500,
"basis": "posted-doc-fee"
},
{
"kind": "title-reg",
"amountCents": 19000,
"basis": "title-rail-posted-total"
},
{
"kind": "sales-tax",
"amountCents": 189750,
"basis": "posted-rate-on-asking-value"
}
],
"totalCents": 217250,
"status": "applied"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "fi-back-end-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}schedule
fee.schedule · GET /fees/schedule · gate none · live · answers FeeSchedule@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6RR7NT0HS595433 (the VIN lens).
Try it — live: answers on the wire today. A sandbox key still selects the deterministic simulated mode — drive the full outcome range with the magic triggers.
import { fee } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await fee.schedule({"vin":"1C6RR7NT0HS595433"})curl 'https://apis.vin/fees/schedule?vin=1C6RR7NT0HS595433'Pay & settle
charge
fee.charge · POST /fees/charge · gate offer · sandbox · answers FeeCharge@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6RR7NT0HS595433 (the VIN lens).
Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.
Emits — Fee.charged@1 · Fee.failed@1.
import { fee } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await fee.charge({"vin":"1C6RR7NT0HS595433"})curl -X POST https://apis.vin/fees/charge \
-H 'content-type: application/json' \
-d '{"vin":"1C6RR7NT0HS595433"}'Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.
{
"type": "OK",
"answers": "FeeCharge@1",
"value": {
"vin": "1C6RR7NT0HS595433",
"noun": "fee",
"asOf": "2026-08-10",
"id": "FIN-45550b03",
"subjectId": "DL-db9f4aac",
"lineItems": [
{
"kind": "doc-fee",
"amountCents": 8500,
"basis": "posted-doc-fee"
},
{
"kind": "title-reg",
"amountCents": 19000,
"basis": "title-rail-posted-total"
},
{
"kind": "sales-tax",
"amountCents": 189750,
"basis": "posted-rate-on-asking-value"
}
],
"amount": 217250,
"status": "Created",
"charge": {
"invoiceId": "FIN-45550b03",
"amountCents": 217250,
"currency": "USD",
"status": "charged"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "1C6RR7NT0HS595433",
"noun": "fee",
"asOf": "2026-08-10",
"id": "FIN-45550b03",
"subjectId": "DL-db9f4aac",
"lineItems": [
{
"kind": "doc-fee",
"amountCents": 8500,
"basis": "posted-doc-fee"
},
{
"kind": "title-reg",
"amountCents": 19000,
"basis": "title-rail-posted-total"
},
{
"kind": "sales-tax",
"amountCents": 189750,
"basis": "posted-rate-on-asking-value"
}
],
"amount": 217250,
"status": "Created",
"charge": {
"invoiceId": "FIN-45550b03",
"amountCents": 217250,
"currency": "USD",
"status": "charged"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "fi-back-end-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}collect
fee.collect · POST /fees/collect · gate offer · sandbox · answers FeeCollect@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6RR7NT0HS595433 (the VIN lens).
Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.
Emits — Fee.collected@1 · Fee.failed@1.
import { fee } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await fee.collect({"vin":"1C6RR7NT0HS595433"})curl -X POST https://apis.vin/fees/collect \
-H 'content-type: application/json' \
-d '{"vin":"1C6RR7NT0HS595433"}'Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.
{
"type": "OK",
"answers": "FeeCollect@1",
"value": {
"vin": "1C6RR7NT0HS595433",
"noun": "fee",
"asOf": "2026-08-10",
"id": "FIN-45550b03",
"subjectId": "DL-db9f4aac",
"lineItems": [
{
"kind": "doc-fee",
"amountCents": 8500,
"basis": "posted-doc-fee"
},
{
"kind": "title-reg",
"amountCents": 19000,
"basis": "title-rail-posted-total"
},
{
"kind": "sales-tax",
"amountCents": 189750,
"basis": "posted-rate-on-asking-value"
}
],
"amount": 217250,
"status": "Created",
"collection": {
"invoiceId": "FIN-45550b03",
"amountCents": 217250,
"currency": "USD",
"status": "collected"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"vin": "1C6RR7NT0HS595433",
"noun": "fee",
"asOf": "2026-08-10",
"id": "FIN-45550b03",
"subjectId": "DL-db9f4aac",
"lineItems": [
{
"kind": "doc-fee",
"amountCents": 8500,
"basis": "posted-doc-fee"
},
{
"kind": "title-reg",
"amountCents": 19000,
"basis": "title-rail-posted-total"
},
{
"kind": "sales-tax",
"amountCents": 189750,
"basis": "posted-rate-on-asking-value"
}
],
"amount": 217250,
"status": "Created",
"collection": {
"invoiceId": "FIN-45550b03",
"amountCents": 217250,
"currency": "USD",
"status": "collected"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "fi-back-end-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Authorize & resolve
dispute
fee.dispute · POST /fees/dispute · gate offer · sandbox · answers FeeDispute@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6RR7NT0HS595433 (the VIN lens).
Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.
Emits — Fee.disputed@1.
import { fee } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await fee.dispute({"vin":"1C6RR7NT0HS595433"})curl -X POST https://apis.vin/fees/dispute \
-H 'content-type: application/json' \
-d '{"vin":"1C6RR7NT0HS595433"}'Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.
{
"type": "OK",
"answers": "FeeDispute@1",
"value": {
"vin": "1C6RR7NT0HS595433",
"noun": "fee",
"asOf": "2026-08-10",
"id": "FIN-45550b03",
"subjectId": "DL-db9f4aac",
"lineItems": [
{
"kind": "doc-fee",
"amountCents": 8500,
"basis": "posted-doc-fee"
},
{
"kind": "title-reg",
"amountCents": 19000,
"basis": "title-rail-posted-total"
},
{
"kind": "sales-tax",
"amountCents": 189750,
"basis": "posted-rate-on-asking-value"
}
],
"amount": 217250,
"status": "Created",
"dispute": {
"id": "FDSP-4a8ffa78",
"invoiceId": "FIN-45550b03",
"status": "dispute-filed"
}
},
"evidence": {
"vin": "1C6RR7NT0HS595433",
"noun": "fee",
"asOf": "2026-08-10",
"id": "FIN-45550b03",
"subjectId": "DL-db9f4aac",
"lineItems": [
{
"kind": "doc-fee",
"amountCents": 8500,
"basis": "posted-doc-fee"
},
{
"kind": "title-reg",
"amountCents": 19000,
"basis": "title-rail-posted-total"
},
{
"kind": "sales-tax",
"amountCents": 189750,
"basis": "posted-rate-on-asking-value"
}
],
"amount": 217250,
"status": "Created",
"dispute": {
"id": "FDSP-4a8ffa78",
"invoiceId": "FIN-45550b03",
"status": "dispute-filed"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "fi-back-end-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}waive
fee.waive · POST /fees/waive · gate offer · sandbox · answers FeeWaive@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6RR7NT0HS595433 (the VIN lens).
Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.
Emits — Fee.waived@1.
import { fee } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await fee.waive({"vin":"1C6RR7NT0HS595433"})curl -X POST https://apis.vin/fees/waive \
-H 'content-type: application/json' \
-d '{"vin":"1C6RR7NT0HS595433"}'Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.
{
"type": "OK",
"answers": "FeeWaive@1",
"value": {
"vin": "1C6RR7NT0HS595433",
"noun": "fee",
"asOf": "2026-08-10",
"id": "FIN-45550b03",
"subjectId": "DL-db9f4aac",
"lineItems": [
{
"kind": "doc-fee",
"amountCents": 8500,
"basis": "posted-doc-fee"
},
{
"kind": "title-reg",
"amountCents": 19000,
"basis": "title-rail-posted-total"
},
{
"kind": "sales-tax",
"amountCents": 189750,
"basis": "posted-rate-on-asking-value"
}
],
"amount": 217250,
"status": "Created",
"waiver": {
"kind": "doc-fee",
"amountCents": 8500,
"statutoryFees": "never-waived",
"status": "waived"
}
},
"evidence": {
"vin": "1C6RR7NT0HS595433",
"noun": "fee",
"asOf": "2026-08-10",
"id": "FIN-45550b03",
"subjectId": "DL-db9f4aac",
"lineItems": [
{
"kind": "doc-fee",
"amountCents": 8500,
"basis": "posted-doc-fee"
},
{
"kind": "title-reg",
"amountCents": 19000,
"basis": "title-rail-posted-total"
},
{
"kind": "sales-tax",
"amountCents": 189750,
"basis": "posted-rate-on-asking-value"
}
],
"amount": 217250,
"status": "Created",
"waiver": {
"kind": "doc-fee",
"amountCents": 8500,
"statutoryFees": "never-waived",
"status": "waived"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "fi-back-end-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}More actions
breakdown
fee.breakdown · GET /fees/breakdown · gate key · live · answers FeeBreakdown@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C6RR7NT0HS595433 (the VIN lens).
Try it — live: answers on the wire today. A sandbox key still selects the deterministic simulated mode — drive the full outcome range with the magic triggers.
import { fee } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await fee.breakdown({"vin":"1C6RR7NT0HS595433"})curl 'https://apis.vin/fees/breakdown?vin=1C6RR7NT0HS595433'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.
Invoice
Modeled
The noun drawn out — its record shape, its lifecycle, and how it is exercised end to end. 2 diagrams, rendered from the estate model.
Fee · Class model
Fee · State machine
Generated from the catalog. Every capability, answer, gate, and entity on this page is a rendered descriptor — it cannot drift from the wire.
features
The features noun — identity, lifecycle, events, and every capability as an anchored section: 11 capabilities, 1 live, 10 sandbox, 0 declared.
feeSchedule
The feeSchedule noun — identity, lifecycle, events, and every capability as an anchored section: 6 capabilities, 2 live, 4 sandbox, 0 declared.