docs.vin

tsb

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

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

Identity

Nountsb
PillarData (facets: 5 data · 2 services · 2 commerce)
Capabilities9 — 0 live · 9 sandbox · 0 declared
EntitiesRepairOrder
Doorsaggregator.vin · tsb.vin
SDKVin.tsb.* from apis.vin
Address/catalog/tsb#{action} — the anchor IS the wire name minus tsb.

Events

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

Discover & read

lookup

tsb.lookup · GET /tsbs/lookup · gate none · sandbox · answers TsbLookup@1

FieldTypeRequiredNotes
vinstringno

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

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

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.735Z · HTTP 200
{
  "type": "OK",
  "answers": "TsbLookup@1",
  "value": {
    "vin": "1FTFW1RG7LFB41048",
    "noun": "tsb",
    "asOf": "2026-08-10",
    "id": "RO-4d81fb51",
    "concerns": [
      {
        "system": "electrical",
        "verdict": "fail"
      },
      {
        "system": "brakes",
        "verdict": "attention"
      }
    ],
    "payType": "warranty",
    "lines": [
      {
        "line": 1,
        "kind": "labor",
        "description": "labor operation",
        "amountCents": 16500
      },
      {
        "line": 2,
        "kind": "part",
        "description": "replacement part",
        "amountCents": 17233
      }
    ],
    "technicianId": "TECH-45cb9acd",
    "estimateId": "EST-0920f34a",
    "status": "InProgress",
    "bulletins": [
      {
        "id": "TSB-7cd4184b",
        "subject": "electrical service bulletin"
      },
      {
        "id": "TSB-7bd416b8",
        "subject": "electrical service bulletin"
      },
      {
        "id": "TSB-7ed41b71",
        "subject": "electrical service bulletin"
      }
    ]
  },
  "evidence": {
    "vin": "1FTFW1RG7LFB41048",
    "noun": "tsb",
    "asOf": "2026-08-10",
    "id": "RO-4d81fb51",
    "concerns": [
      {
        "system": "electrical",
        "verdict": "fail"
      },
      {
        "system": "brakes",
        "verdict": "attention"
      }
    ],
    "payType": "warranty",
    "lines": [
      {
        "line": 1,
        "kind": "labor",
        "description": "labor operation",
        "amountCents": 16500
      },
      {
        "line": 2,
        "kind": "part",
        "description": "replacement part",
        "amountCents": 17233
      }
    ],
    "technicianId": "TECH-45cb9acd",
    "estimateId": "EST-0920f34a",
    "status": "InProgress",
    "bulletins": [
      {
        "id": "TSB-7cd4184b",
        "subject": "electrical service bulletin"
      },
      {
        "id": "TSB-7bd416b8",
        "subject": "electrical service bulletin"
      },
      {
        "id": "TSB-7ed41b71",
        "subject": "electrical service bulletin"
      }
    ]
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "bulletin-board-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

decode

tsb.decode · GET /tsbs/decode · gate none · sandbox · answers TsbDecode@1

FieldTypeRequiredNotes
vinstringno

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

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

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.735Z · HTTP 200
{
  "type": "OK",
  "answers": "TsbDecode@1",
  "value": {
    "vin": "1FTFW1RG7LFB41048",
    "noun": "tsb",
    "asOf": "2026-08-10",
    "id": "RO-4d81fb51",
    "concerns": [
      {
        "system": "electrical",
        "verdict": "fail"
      },
      {
        "system": "brakes",
        "verdict": "attention"
      }
    ],
    "payType": "warranty",
    "lines": [
      {
        "line": 1,
        "kind": "labor",
        "description": "labor operation",
        "amountCents": 16500
      },
      {
        "line": 2,
        "kind": "part",
        "description": "replacement part",
        "amountCents": 17233
      }
    ],
    "technicianId": "TECH-45cb9acd",
    "estimateId": "EST-0920f34a",
    "status": "InProgress",
    "decoded": {
      "bulletinId": "TSB-7cd4184b",
      "subject": "electrical service bulletin",
      "code": "P0562",
      "system": "electrical"
    }
  },
  "evidence": {
    "vin": "1FTFW1RG7LFB41048",
    "noun": "tsb",
    "asOf": "2026-08-10",
    "id": "RO-4d81fb51",
    "concerns": [
      {
        "system": "electrical",
        "verdict": "fail"
      },
      {
        "system": "brakes",
        "verdict": "attention"
      }
    ],
    "payType": "warranty",
    "lines": [
      {
        "line": 1,
        "kind": "labor",
        "description": "labor operation",
        "amountCents": 16500
      },
      {
        "line": 2,
        "kind": "part",
        "description": "replacement part",
        "amountCents": 17233
      }
    ],
    "technicianId": "TECH-45cb9acd",
    "estimateId": "EST-0920f34a",
    "status": "InProgress",
    "decoded": {
      "bulletinId": "TSB-7cd4184b",
      "subject": "electrical service bulletin",
      "code": "P0562",
      "system": "electrical"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "bulletin-board-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

applicableCheck

tsb.applicableCheck · GET /tsbs/applicable-check · gate none · sandbox · answers TsbApplicableCheck@1

FieldTypeRequiredNotes
vinstringno

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

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await tsb.applicableCheck({"vin":"1FTFW1RG7LFB41048"})
GET /tsbs/applicable-check
curl 'https://apis.vin/tsbs/applicable-check?vin=1FTFW1RG7LFB41048'

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.730Z · HTTP 200
{
  "type": "OK",
  "answers": "TsbApplicableCheck@1",
  "value": {
    "vin": "1FTFW1RG7LFB41048",
    "noun": "tsb",
    "asOf": "2026-08-10",
    "id": "RO-4d81fb51",
    "concerns": [
      {
        "system": "electrical",
        "verdict": "fail"
      },
      {
        "system": "brakes",
        "verdict": "attention"
      }
    ],
    "payType": "warranty",
    "lines": [
      {
        "line": 1,
        "kind": "labor",
        "description": "labor operation",
        "amountCents": 16500
      },
      {
        "line": 2,
        "kind": "part",
        "description": "replacement part",
        "amountCents": 17233
      }
    ],
    "technicianId": "TECH-45cb9acd",
    "estimateId": "EST-0920f34a",
    "status": "InProgress",
    "applicability": {
      "applicable": true,
      "count": 3,
      "basis": "bulletin-board",
      "bulletinIds": [
        "TSB-7cd4184b",
        "TSB-7bd416b8",
        "TSB-7ed41b71"
      ]
    }
  },
  "evidence": {
    "vin": "1FTFW1RG7LFB41048",
    "noun": "tsb",
    "asOf": "2026-08-10",
    "id": "RO-4d81fb51",
    "concerns": [
      {
        "system": "electrical",
        "verdict": "fail"
      },
      {
        "system": "brakes",
        "verdict": "attention"
      }
    ],
    "payType": "warranty",
    "lines": [
      {
        "line": 1,
        "kind": "labor",
        "description": "labor operation",
        "amountCents": 16500
      },
      {
        "line": 2,
        "kind": "part",
        "description": "replacement part",
        "amountCents": 17233
      }
    ],
    "technicianId": "TECH-45cb9acd",
    "estimateId": "EST-0920f34a",
    "status": "InProgress",
    "applicability": {
      "applicable": true,
      "count": 3,
      "basis": "bulletin-board",
      "bulletinIds": [
        "TSB-7cd4184b",
        "TSB-7bd416b8",
        "TSB-7ed41b71"
      ]
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "bulletin-board-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

symptomMatch

tsb.symptomMatch · GET /tsbs/symptom-match · gate none · sandbox · answers TsbSymptomMatch@1

FieldTypeRequiredNotes
vinstringno

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

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await tsb.symptomMatch({"vin":"1FTFW1RG7LFB41048"})
GET /tsbs/symptom-match
curl 'https://apis.vin/tsbs/symptom-match?vin=1FTFW1RG7LFB41048'

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.751Z · HTTP 200
{
  "type": "OK",
  "answers": "TsbSymptomMatch@1",
  "value": {
    "vin": "1FTFW1RG7LFB41048",
    "noun": "tsb",
    "asOf": "2026-08-10",
    "id": "RO-4d81fb51",
    "concerns": [
      {
        "system": "electrical",
        "verdict": "fail"
      },
      {
        "system": "brakes",
        "verdict": "attention"
      }
    ],
    "payType": "warranty",
    "lines": [
      {
        "line": 1,
        "kind": "labor",
        "description": "labor operation",
        "amountCents": 16500
      },
      {
        "line": 2,
        "kind": "part",
        "description": "replacement part",
        "amountCents": 17233
      }
    ],
    "technicianId": "TECH-45cb9acd",
    "estimateId": "EST-0920f34a",
    "status": "InProgress",
    "match": {
      "system": "electrical",
      "code": "P0562",
      "bulletinIds": [
        "TSB-7cd4184b",
        "TSB-7bd416b8",
        "TSB-7ed41b71"
      ]
    }
  },
  "evidence": {
    "vin": "1FTFW1RG7LFB41048",
    "noun": "tsb",
    "asOf": "2026-08-10",
    "id": "RO-4d81fb51",
    "concerns": [
      {
        "system": "electrical",
        "verdict": "fail"
      },
      {
        "system": "brakes",
        "verdict": "attention"
      }
    ],
    "payType": "warranty",
    "lines": [
      {
        "line": 1,
        "kind": "labor",
        "description": "labor operation",
        "amountCents": 16500
      },
      {
        "line": 2,
        "kind": "part",
        "description": "replacement part",
        "amountCents": 17233
      }
    ],
    "technicianId": "TECH-45cb9acd",
    "estimateId": "EST-0920f34a",
    "status": "InProgress",
    "match": {
      "system": "electrical",
      "code": "P0562",
      "bulletinIds": [
        "TSB-7cd4184b",
        "TSB-7bd416b8",
        "TSB-7ed41b71"
      ]
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "bulletin-board-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Apply & book

apply

tsb.apply · POST /tsbs/apply · gate offer · sandbox · answers TsbApply@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.

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

EmitsTsb.applied@1.

the SDK — tsb.apply
import { tsb } from 'apis.vin'

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

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.730Z · HTTP 200
{
  "type": "OK",
  "answers": "TsbApply@1",
  "value": {
    "vin": "1FTFW1RG7LFB41048",
    "noun": "tsb",
    "asOf": "2026-08-10",
    "id": "RO-4d81fb51",
    "concerns": [
      {
        "system": "electrical",
        "verdict": "fail"
      },
      {
        "system": "brakes",
        "verdict": "attention"
      }
    ],
    "payType": "warranty",
    "lines": [
      {
        "line": 1,
        "kind": "labor",
        "description": "labor operation",
        "amountCents": 16500
      },
      {
        "line": 2,
        "kind": "part",
        "description": "replacement part",
        "amountCents": 17233
      }
    ],
    "technicianId": "TECH-45cb9acd",
    "estimateId": "EST-0920f34a",
    "status": "InProgress",
    "work": {
      "operation": "apply",
      "status": "in-progress",
      "bulletinId": "TSB-7cd4184b"
    }
  },
  "evidence": {
    "vin": "1FTFW1RG7LFB41048",
    "noun": "tsb",
    "asOf": "2026-08-10",
    "id": "RO-4d81fb51",
    "concerns": [
      {
        "system": "electrical",
        "verdict": "fail"
      },
      {
        "system": "brakes",
        "verdict": "attention"
      }
    ],
    "payType": "warranty",
    "lines": [
      {
        "line": 1,
        "kind": "labor",
        "description": "labor operation",
        "amountCents": 16500
      },
      {
        "line": 2,
        "kind": "part",
        "description": "replacement part",
        "amountCents": 17233
      }
    ],
    "technicianId": "TECH-45cb9acd",
    "estimateId": "EST-0920f34a",
    "status": "InProgress",
    "work": {
      "operation": "apply",
      "status": "in-progress",
      "bulletinId": "TSB-7cd4184b"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "bulletin-board-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

subscribe

tsb.subscribe · POST /tsbs/subscribe · gate offer · sandbox · answers TsbSubscribe@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.

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

EmitsTsb.subscribed@1.

the SDK — tsb.subscribe
import { tsb } from 'apis.vin'

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

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.743Z · HTTP 200
{
  "type": "OK",
  "answers": "TsbSubscribe@1",
  "value": {
    "vin": "1FTFW1RG7LFB41048",
    "noun": "tsb",
    "asOf": "2026-08-10",
    "id": "RO-4d81fb51",
    "concerns": [
      {
        "system": "electrical",
        "verdict": "fail"
      },
      {
        "system": "brakes",
        "verdict": "attention"
      }
    ],
    "payType": "warranty",
    "lines": [
      {
        "line": 1,
        "kind": "labor",
        "description": "labor operation",
        "amountCents": 16500
      },
      {
        "line": 2,
        "kind": "part",
        "description": "replacement part",
        "amountCents": 17233
      }
    ],
    "technicianId": "TECH-45cb9acd",
    "estimateId": "EST-0920f34a",
    "status": "InProgress",
    "subscription": {
      "id": "TSBSUB-9cf9e7ed",
      "status": "active",
      "scope": "vin"
    }
  },
  "evidence": {
    "vin": "1FTFW1RG7LFB41048",
    "noun": "tsb",
    "asOf": "2026-08-10",
    "id": "RO-4d81fb51",
    "concerns": [
      {
        "system": "electrical",
        "verdict": "fail"
      },
      {
        "system": "brakes",
        "verdict": "attention"
      }
    ],
    "payType": "warranty",
    "lines": [
      {
        "line": 1,
        "kind": "labor",
        "description": "labor operation",
        "amountCents": 16500
      },
      {
        "line": 2,
        "kind": "part",
        "description": "replacement part",
        "amountCents": 17233
      }
    ],
    "technicianId": "TECH-45cb9acd",
    "estimateId": "EST-0920f34a",
    "status": "InProgress",
    "subscription": {
      "id": "TSBSUB-9cf9e7ed",
      "status": "active",
      "scope": "vin"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "bulletin-board-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Pay & settle

warrantyBill

tsb.warrantyBill · POST /tsbs/warranty-bill · gate offer · sandbox · answers TsbWarrantyBill@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.

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

EmitsTsb.warrantyBilled@1.

the SDK — tsb.warrantyBill
import { tsb } from 'apis.vin'

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

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.760Z · HTTP 200
{
  "type": "OK",
  "answers": "TsbWarrantyBill@1",
  "value": {
    "vin": "1FTFW1RG7LFB41048",
    "noun": "tsb",
    "asOf": "2026-08-10",
    "id": "RO-4d81fb51",
    "concerns": [
      {
        "system": "electrical",
        "verdict": "fail"
      },
      {
        "system": "brakes",
        "verdict": "attention"
      }
    ],
    "payType": "warranty",
    "lines": [
      {
        "line": 1,
        "kind": "labor",
        "description": "labor operation",
        "amountCents": 16500
      },
      {
        "line": 2,
        "kind": "part",
        "description": "replacement part",
        "amountCents": 17233
      }
    ],
    "technicianId": "TECH-45cb9acd",
    "estimateId": "EST-0920f34a",
    "status": "InProgress",
    "bill": {
      "id": "TSBWB-bab12381",
      "billable": true,
      "status": "billable-to-warranty",
      "warranty": "active",
      "rate": {
        "status": "no-remedy-rate-posted"
      }
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1FTFW1RG7LFB41048",
    "noun": "tsb",
    "asOf": "2026-08-10",
    "id": "RO-4d81fb51",
    "concerns": [
      {
        "system": "electrical",
        "verdict": "fail"
      },
      {
        "system": "brakes",
        "verdict": "attention"
      }
    ],
    "payType": "warranty",
    "lines": [
      {
        "line": 1,
        "kind": "labor",
        "description": "labor operation",
        "amountCents": 16500
      },
      {
        "line": 2,
        "kind": "part",
        "description": "replacement part",
        "amountCents": 17233
      }
    ],
    "technicianId": "TECH-45cb9acd",
    "estimateId": "EST-0920f34a",
    "status": "InProgress",
    "bill": {
      "id": "TSBWB-bab12381",
      "billable": true,
      "status": "billable-to-warranty",
      "warranty": "active",
      "rate": {
        "status": "no-remedy-rate-posted"
      }
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "bulletin-board-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Fulfill & operate

perform

tsb.perform · POST /tsbs/perform · gate offer · sandbox · answers TsbPerform@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.

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

EmitsTsb.performed@1.

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

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

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.735Z · HTTP 200
{
  "type": "OK",
  "answers": "TsbPerform@1",
  "value": {
    "vin": "1FTFW1RG7LFB41048",
    "noun": "tsb",
    "asOf": "2026-08-10",
    "id": "RO-4d81fb51",
    "concerns": [
      {
        "system": "electrical",
        "verdict": "fail"
      },
      {
        "system": "brakes",
        "verdict": "attention"
      }
    ],
    "payType": "warranty",
    "lines": [
      {
        "line": 1,
        "kind": "labor",
        "description": "labor operation",
        "amountCents": 16500
      },
      {
        "line": 2,
        "kind": "part",
        "description": "replacement part",
        "amountCents": 17233
      }
    ],
    "technicianId": "TECH-45cb9acd",
    "estimateId": "EST-0920f34a",
    "status": "InProgress",
    "work": {
      "operation": "perform",
      "status": "in-progress",
      "bulletinId": "TSB-7cd4184b"
    }
  },
  "evidence": {
    "vin": "1FTFW1RG7LFB41048",
    "noun": "tsb",
    "asOf": "2026-08-10",
    "id": "RO-4d81fb51",
    "concerns": [
      {
        "system": "electrical",
        "verdict": "fail"
      },
      {
        "system": "brakes",
        "verdict": "attention"
      }
    ],
    "payType": "warranty",
    "lines": [
      {
        "line": 1,
        "kind": "labor",
        "description": "labor operation",
        "amountCents": 16500
      },
      {
        "line": 2,
        "kind": "part",
        "description": "replacement part",
        "amountCents": 17233
      }
    ],
    "technicianId": "TECH-45cb9acd",
    "estimateId": "EST-0920f34a",
    "status": "InProgress",
    "work": {
      "operation": "perform",
      "status": "in-progress",
      "bulletinId": "TSB-7cd4184b"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "bulletin-board-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

More actions

dtcCorrelate

tsb.dtcCorrelate · GET /tsbs/dtc-correlate · gate none · sandbox · answers TsbDtcCorrelate@1

No input — this capability takes no request body.

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

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await tsb.dtcCorrelate()
GET /tsbs/dtc-correlate
curl 'https://apis.vin/tsbs/dtc-correlate'

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:10.084Z · HTTP 200
{
  "type": "OK",
  "answers": "TsbDtcCorrelate@1",
  "value": {
    "vin": "1HGCM82633A004352",
    "noun": "tsb",
    "asOf": "2026-08-10",
    "id": "RO-1f2a3746",
    "concerns": [],
    "payType": "warranty",
    "lines": [
      {
        "line": 1,
        "kind": "labor",
        "description": "labor operation",
        "amountCents": 16500
      }
    ],
    "technicianId": "TECH-3f68cc26",
    "estimateId": "EST-feef6ee9",
    "status": "Open",
    "correlation": {
      "codes": [],
      "status": "no-stored-codes"
    }
  },
  "evidence": {
    "vin": "1HGCM82633A004352",
    "noun": "tsb",
    "asOf": "2026-08-10",
    "id": "RO-1f2a3746",
    "concerns": [],
    "payType": "warranty",
    "lines": [
      {
        "line": 1,
        "kind": "labor",
        "description": "labor operation",
        "amountCents": 16500
      }
    ],
    "technicianId": "TECH-3f68cc26",
    "estimateId": "EST-feef6ee9",
    "status": "Open",
    "correlation": {
      "codes": [],
      "status": "no-stored-codes"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "bulletin-board-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.

RepairOrder

Modeled

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

Tsb · Class model


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