salesTax
The salesTax noun — identity, lifecycle, events, and every capability as an anchored section: 6 capabilities, 1 live, 5 sandbox, 0 declared.
salesTax is one of the estate's 317 automotive nouns — a job a car needs done. It carries 6 capabilities: 1 live, 5 sandbox, 0 declared · doors aggregator.vin.
Identity
| Noun | salesTax |
| Pillar | Commerce (facets: 1 data · 2 services · 3 commerce) |
| Capabilities | 6 — 1 live · 5 sandbox · 0 declared |
| Entities | Deal |
| Doors | aggregator.vin |
| SDK | Vin.salesTax.* from apis.vin |
| Address | /catalog/salesTax#{action} — the anchor IS the wire name minus salesTax. |
Events
The vocabulary this noun can append to the record — 6 past-tense, versioned event types, each linked to the capability that emits it:
SalesTax.collected@1— emitted bycollectSalesTax.exempted@1— emitted byexemptSalesTax.failed@1— emitted bycollect·refund·remitSalesTax.refunded@1— emitted byrefundSalesTax.remitted@1— emitted byremitSalesTax.reported@1— emitted byreport
Discover & read
report
salesTax.report · POST /sales-taxes/report · gate offer · sandbox · answers SalesTaxReport@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) · /JM3KKCHA6S1201830 (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 — SalesTax.reported@1.
import { salesTax } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await salesTax.report({"vin":"JM3KKCHA6S1201830"})curl -X POST https://apis.vin/sales-taxes/report \
-H 'content-type: application/json' \
-d '{"vin":"JM3KKCHA6S1201830"}'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": "SalesTaxReport@1",
"value": {
"dealId": "salesTax_7eccbdc7",
"workflow": "workflow-19869ae9",
"dealType": "Deal-01",
"vehicleId": "vehicle_e38b6fc9",
"buyerId": "party_a72040f6",
"sellerId": "party_5e840b3a",
"dealerOfRecordId": "dealer_2017ba10",
"authority": "mandate_9364bae9",
"structure": "Deal-01",
"state": "Deal-01",
"correlationId": "W0-EVT-01",
"dependsOn": []
},
"evidence": {
"dealId": "salesTax_7eccbdc7",
"workflow": "workflow-19869ae9",
"dealType": "Deal-01",
"vehicleId": "vehicle_e38b6fc9",
"buyerId": "party_a72040f6",
"sellerId": "party_5e840b3a",
"dealerOfRecordId": "dealer_2017ba10",
"authority": "mandate_9364bae9",
"structure": "Deal-01",
"state": "Deal-01",
"correlationId": "W0-EVT-01",
"dependsOn": []
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "sales-tax-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Quote & price
calc
salesTax.calc · GET /sales-taxes/calc · gate key · live · answers SalesTaxCalc@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /JM3KKCHA6S1201830 (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 { salesTax } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await salesTax.calc({"vin":"JM3KKCHA6S1201830"})curl 'https://apis.vin/sales-taxes/calc?vin=JM3KKCHA6S1201830'Pay & settle
collect
salesTax.collect · POST /sales-taxes/collect · gate offer · sandbox · answers SalesTaxCollect@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) · /JM3KKCHA6S1201830 (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 — SalesTax.collected@1 · SalesTax.failed@1.
import { salesTax } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await salesTax.collect({"vin":"JM3KKCHA6S1201830"})curl -X POST https://apis.vin/sales-taxes/collect \
-H 'content-type: application/json' \
-d '{"vin":"JM3KKCHA6S1201830"}'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": "SalesTaxCollect@1",
"value": {
"dealId": "salesTax_066d2be2",
"workflow": "workflow-080514a8",
"dealType": "Deal-01",
"vehicleId": "vehicle_c9f0d342",
"buyerId": "party_5d0e4835",
"sellerId": "party_bdb004cb",
"dealerOfRecordId": "dealer_33166a91",
"authority": "mandate_100cbf46",
"structure": "Deal-01",
"state": "Deal-01",
"correlationId": "W0-EVT-01",
"dependsOn": []
},
"evidence": {
"dealId": "salesTax_066d2be2",
"workflow": "workflow-080514a8",
"dealType": "Deal-01",
"vehicleId": "vehicle_c9f0d342",
"buyerId": "party_5d0e4835",
"sellerId": "party_bdb004cb",
"dealerOfRecordId": "dealer_33166a91",
"authority": "mandate_100cbf46",
"structure": "Deal-01",
"state": "Deal-01",
"correlationId": "W0-EVT-01",
"dependsOn": []
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "sales-tax-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}refund
salesTax.refund · POST /sales-taxes/refund · gate offer · sandbox · answers SalesTaxRefund@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) · /JM3KKCHA6S1201830 (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 — SalesTax.failed@1 · SalesTax.refunded@1.
import { salesTax } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await salesTax.refund({"vin":"JM3KKCHA6S1201830"})curl -X POST https://apis.vin/sales-taxes/refund \
-H 'content-type: application/json' \
-d '{"vin":"JM3KKCHA6S1201830"}'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": "SalesTaxRefund@1",
"value": {
"dealId": "salesTax_e7cbccef",
"workflow": "workflow-d8041d51",
"dealType": "Deal-01",
"vehicleId": "vehicle_64148b61",
"buyerId": "party_d05eb6ae",
"sellerId": "party_523c3bd2",
"dealerOfRecordId": "dealer_7e9ad818",
"authority": "mandate_2f23ec61",
"structure": "Deal-01",
"state": "Deal-01",
"correlationId": "W0-EVT-01",
"dependsOn": []
},
"evidence": {
"dealId": "salesTax_e7cbccef",
"workflow": "workflow-d8041d51",
"dealType": "Deal-01",
"vehicleId": "vehicle_64148b61",
"buyerId": "party_d05eb6ae",
"sellerId": "party_523c3bd2",
"dealerOfRecordId": "dealer_7e9ad818",
"authority": "mandate_2f23ec61",
"structure": "Deal-01",
"state": "Deal-01",
"correlationId": "W0-EVT-01",
"dependsOn": []
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "sales-tax-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}remit
salesTax.remit · POST /sales-taxes/remit · gate offer · sandbox · answers SalesTaxRemit@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) · /JM3KKCHA6S1201830 (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 — SalesTax.failed@1 · SalesTax.remitted@1.
import { salesTax } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await salesTax.remit({"vin":"JM3KKCHA6S1201830"})curl -X POST https://apis.vin/sales-taxes/remit \
-H 'content-type: application/json' \
-d '{"vin":"JM3KKCHA6S1201830"}'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": "SalesTaxRemit@1",
"value": {
"dealId": "salesTax_cc24bc48",
"workflow": "workflow-482d6dba",
"dealType": "Deal-01",
"vehicleId": "vehicle_7ee3ef94",
"buyerId": "party_a6c7fe17",
"sellerId": "party_0a9aa179",
"dealerOfRecordId": "dealer_c2a2ed3b",
"authority": "mandate_8c896228",
"structure": "Deal-01",
"state": "Deal-01",
"correlationId": "W0-EVT-01",
"dependsOn": []
},
"evidence": {
"dealId": "salesTax_cc24bc48",
"workflow": "workflow-482d6dba",
"dealType": "Deal-01",
"vehicleId": "vehicle_7ee3ef94",
"buyerId": "party_a6c7fe17",
"sellerId": "party_0a9aa179",
"dealerOfRecordId": "dealer_c2a2ed3b",
"authority": "mandate_8c896228",
"structure": "Deal-01",
"state": "Deal-01",
"correlationId": "W0-EVT-01",
"dependsOn": []
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "sales-tax-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}More actions
exempt
salesTax.exempt · POST /sales-taxes/exempt · gate offer · sandbox · answers SalesTaxExempt@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) · /JM3KKCHA6S1201830 (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 — SalesTax.exempted@1.
import { salesTax } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await salesTax.exempt({"vin":"JM3KKCHA6S1201830"})curl -X POST https://apis.vin/sales-taxes/exempt \
-H 'content-type: application/json' \
-d '{"vin":"JM3KKCHA6S1201830"}'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": "SalesTaxExempt@1",
"value": {
"dealId": "salesTax_a5304388",
"workflow": "workflow-836227fa",
"dealType": "Deal-01",
"vehicleId": "vehicle_9b51e6d4",
"buyerId": "party_1172b557",
"sellerId": "party_883867b9",
"dealerOfRecordId": "dealer_125d087b",
"authority": "mandate_6b1e9968",
"structure": "Deal-01",
"state": "Deal-01",
"correlationId": "W0-EVT-01",
"dependsOn": []
},
"evidence": {
"dealId": "salesTax_a5304388",
"workflow": "workflow-836227fa",
"dealType": "Deal-01",
"vehicleId": "vehicle_9b51e6d4",
"buyerId": "party_1172b557",
"sellerId": "party_883867b9",
"dealerOfRecordId": "dealer_125d087b",
"authority": "mandate_6b1e9968",
"structure": "Deal-01",
"state": "Deal-01",
"correlationId": "W0-EVT-01",
"dependsOn": []
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "sales-tax-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Data model
The record shape behind this noun — one entity, each property an evidence field. See the whole estate model on the data model page.
Deal
Modeled
The noun drawn out — its record shape, its lifecycle, and how it is exercised end to end. 2 diagrams, rendered from the estate model.
SalesTax · Class model
SalesTax · 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.