docs.vin

warrantyClaim

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

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

Identity

NounwarrantyClaim
PillarServices (facets: 10 data · 11 services · 5 commerce)
Capabilities26 — 0 live · 26 sandbox · 0 declared
EntitiesWarrantyClaim
Doorsaggregator.vin
SDKVin.warrantyClaim.* from apis.vin
Address/catalog/warrantyClaim#{action} — the anchor IS the wire name minus warrantyClaim.

Lifecycle

WarrantyClaimWarrantyClaimFSM: 7 states, 8 transitions — Filed · Adjudicated · Approved · PartiallyApproved · Denied · Appealed · Paid. Each transition is a past-tense event on the record.

Events

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

Discover & read

read

warrantyClaim.read · GET /warranty-claims/read · gate none · sandbox · answers WarrantyClaimRead@1

FieldTypeRequiredNotes
vinstringno

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

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

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.969Z · HTTP 200
{
  "type": "OK",
  "answers": "WarrantyClaimRead@1",
  "value": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claimId": "WC-4f4cace5",
    "claimState": null,
    "decision": "approved"
  },
  "evidence": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claimId": "WC-4f4cace5",
    "claimState": null,
    "decision": "approved"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "aftersales-data-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

history

warrantyClaim.history · GET /warranty-claims/history · gate none · sandbox · answers WarrantyClaimHistory@1

FieldTypeRequiredNotes
vinstringno

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

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

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.930Z · HTTP 200
{
  "type": "OK",
  "answers": "WarrantyClaimHistory@1",
  "value": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "events": [
      {
        "date": "2024-03-14",
        "kind": "maintenance",
        "description": "scheduled warranty claim service"
      },
      {
        "date": "2024-11-02",
        "kind": "maintenance",
        "description": "scheduled warranty claim service"
      }
    ]
  },
  "evidence": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "events": [
      {
        "date": "2024-03-14",
        "kind": "maintenance",
        "description": "scheduled warranty claim service"
      },
      {
        "date": "2024-11-02",
        "kind": "maintenance",
        "description": "scheduled warranty claim service"
      }
    ]
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "aftersales-data-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

status

warrantyClaim.status · GET /warranty-claims/status · gate none · sandbox · answers WarrantyClaimStatus@1

FieldTypeRequiredNotes
vinstringno

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

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await warrantyClaim.status({"vin":"1C6JJTBG8RL117874"})
GET /warranty-claims/status
curl 'https://apis.vin/warranty-claims/status?vin=1C6JJTBG8RL117874'

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.970Z · HTTP 200
{
  "type": "OK",
  "answers": "WarrantyClaimStatus@1",
  "value": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claimId": "WC-4f4cace5",
    "claimState": null,
    "decision": "approved"
  },
  "evidence": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claimId": "WC-4f4cace5",
    "claimState": null,
    "decision": "approved"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "aftersales-data-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

eligibility

warrantyClaim.eligibility · GET /warranty-claims/eligibility · gate none · sandbox · answers WarrantyClaimEligibility@1

FieldTypeRequiredNotes
vinstringno

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

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await warrantyClaim.eligibility({"vin":"1C6JJTBG8RL117874"})
GET /warranty-claims/eligibility
curl 'https://apis.vin/warranty-claims/eligibility?vin=1C6JJTBG8RL117874'

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.922Z · HTTP 200
{
  "type": "OK",
  "answers": "WarrantyClaimEligibility@1",
  "value": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "eligible": true
  },
  "evidence": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "eligible": true
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "aftersales-data-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

audit

warrantyClaim.audit · GET /warranty-claims/audit · gate key · sandbox · answers WarrantyClaimAudit@1

FieldTypeRequiredNotes
vinstringno

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

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await warrantyClaim.audit({"vin":"1C6JJTBG8RL117874"})
GET /warranty-claims/audit
curl 'https://apis.vin/warranty-claims/audit?vin=1C6JJTBG8RL117874'

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.899Z · HTTP 200
{
  "type": "OK",
  "answers": "WarrantyClaimAudit@1",
  "value": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claimId": "WC-4f4cace5",
    "flags": 0
  },
  "evidence": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claimId": "WC-4f4cace5",
    "flags": 0
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "aftersales-data-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

coverageLookup

warrantyClaim.coverageLookup · GET /warranty-claims/coverage-lookup · gate none · sandbox · answers WarrantyClaimCoverageLookup@1

FieldTypeRequiredNotes
vinstringno

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

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await warrantyClaim.coverageLookup({"vin":"1C6JJTBG8RL117874"})
GET /warranty-claims/coverage-lookup
curl 'https://apis.vin/warranty-claims/coverage-lookup?vin=1C6JJTBG8RL117874'

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.914Z · HTTP 200
{
  "type": "OK",
  "answers": "WarrantyClaimCoverageLookup@1",
  "value": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "void": false,
    "coverageMilesLeft": 7526
  },
  "evidence": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "void": false,
    "coverageMilesLeft": 7526
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "aftersales-data-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

opCodeLookup

warrantyClaim.opCodeLookup · GET /warranty-claims/op-code-lookup · gate none · sandbox · answers WarrantyClaimOpCodeLookup@1

FieldTypeRequiredNotes
vinstringno

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

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await warrantyClaim.opCodeLookup({"vin":"1C6JJTBG8RL117874"})
GET /warranty-claims/op-code-lookup
curl 'https://apis.vin/warranty-claims/op-code-lookup?vin=1C6JJTBG8RL117874'

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.952Z · HTTP 200
{
  "type": "OK",
  "answers": "WarrantyClaimOpCodeLookup@1",
  "value": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "opCode": "OP-5f5bd09f",
    "laborTenths": 13,
    "rateCentsPerHour": 16500,
    "currency": "USD"
  },
  "evidence": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "opCode": "OP-5f5bd09f",
    "laborTenths": 13,
    "rateCentsPerHour": 16500,
    "currency": "USD"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "aftersales-data-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Quote & price

rate

warrantyClaim.rate · GET /warranty-claims/rate · gate key · sandbox · answers WarrantyClaimRate@1

FieldTypeRequiredNotes
vinstringno

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

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

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.957Z · HTTP 200
{
  "type": "OK",
  "answers": "WarrantyClaimRate@1",
  "value": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "opCode": "OP-5f5bd09f",
    "laborTenths": 13,
    "rateCentsPerHour": 16500,
    "currency": "USD"
  },
  "evidence": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "opCode": "OP-5f5bd09f",
    "laborTenths": 13,
    "rateCentsPerHour": 16500,
    "currency": "USD"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "aftersales-data-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Apply & book

submit

warrantyClaim.submit · POST /warranty-claims/submit · gate offer · sandbox · answers WarrantyClaimSubmit@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) · /1C6JJTBG8RL117874 (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.

EmitsWarrantyClaim.submitted@1 · WarrantyClaim.submitFailed@1.

the SDK — warrantyClaim.submit
import { warrantyClaim } from 'apis.vin'

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

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.972Z · HTTP 200
{
  "type": "OK",
  "answers": "WarrantyClaimSubmit@1",
  "value": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claim": {
      "id": "WC-4f4cace5",
      "status": "submitted"
    }
  },
  "evidence": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claim": {
      "id": "WC-4f4cace5",
      "status": "submitted"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "aftersales-data-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

open

warrantyClaim.open · POST /warranty-claims/open · gate offer · sandbox · answers WarrantyClaimOpen@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) · /1C6JJTBG8RL117874 (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.

EmitsWarrantyClaim.opened@1.

the SDK — warrantyClaim.open
import { warrantyClaim } from 'apis.vin'

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

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.952Z · HTTP 200
{
  "type": "OK",
  "answers": "WarrantyClaimOpen@1",
  "value": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claim": {
      "id": "WC-4f4cace5",
      "status": "submitted"
    }
  },
  "evidence": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claim": {
      "id": "WC-4f4cace5",
      "status": "submitted"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "aftersales-data-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

resubmit

warrantyClaim.resubmit · POST /warranty-claims/resubmit · gate offer · sandbox · answers WarrantyClaimResubmit@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) · /1C6JJTBG8RL117874 (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.

EmitsWarrantyClaim.resubmitted@1.

the SDK — warrantyClaim.resubmit
import { warrantyClaim } from 'apis.vin'

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

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.970Z · HTTP 200
{
  "type": "OK",
  "answers": "WarrantyClaimResubmit@1",
  "value": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claim": {
      "id": "WC-4f4cace5",
      "status": "submitted"
    }
  },
  "evidence": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claim": {
      "id": "WC-4f4cace5",
      "status": "submitted"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "aftersales-data-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Pay & settle

pay

warrantyClaim.pay · POST /warranty-claims/pay · gate offer · sandbox · answers WarrantyClaimPay@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) · /1C6JJTBG8RL117874 (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.

EmitsWarrantyClaim.paid@1 · WarrantyClaim.payFailed@1 · WarrantyClaim.payRequested@1.

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

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

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.953Z · HTTP 200
{
  "type": "OK",
  "answers": "WarrantyClaimPay@1",
  "value": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claimId": "WC-4f4cace5",
    "payment": {
      "id": "PAY-9acce5a6",
      "status": "settled",
      "amountCents": 42000,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claimId": "WC-4f4cace5",
    "payment": {
      "id": "PAY-9acce5a6",
      "status": "settled",
      "amountCents": 42000,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "aftersales-data-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

bill

warrantyClaim.bill · POST /warranty-claims/bill · gate offer · sandbox · answers WarrantyClaimBill@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) · /1C6JJTBG8RL117874 (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.

EmitsWarrantyClaim.billRequested@1 · WarrantyClaim.billed@1.

the SDK — warrantyClaim.bill
import { warrantyClaim } from 'apis.vin'

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

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.905Z · HTTP 200
{
  "type": "OK",
  "answers": "WarrantyClaimBill@1",
  "value": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claimId": "WC-4f4cace5",
    "payment": {
      "id": "PAY-819154e5",
      "status": "settled",
      "amountCents": 42000,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claimId": "WC-4f4cace5",
    "payment": {
      "id": "PAY-819154e5",
      "status": "settled",
      "amountCents": 42000,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "aftersales-data-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

settle

warrantyClaim.settle · POST /warranty-claims/settle · gate offer · sandbox · answers WarrantyClaimSettle@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) · /1C6JJTBG8RL117874 (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.

EmitsWarrantyClaim.settleFailed@1 · WarrantyClaim.settleRequested@1 · WarrantyClaim.settled@1.

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

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

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.970Z · HTTP 200
{
  "type": "OK",
  "answers": "WarrantyClaimSettle@1",
  "value": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claimId": "WC-4f4cace5",
    "payment": {
      "id": "PAY-2320ecc7",
      "status": "settled",
      "amountCents": 42000,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claimId": "WC-4f4cace5",
    "payment": {
      "id": "PAY-2320ecc7",
      "status": "settled",
      "amountCents": 42000,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "aftersales-data-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

reimburse

warrantyClaim.reimburse · POST /warranty-claims/reimburse · gate offer · sandbox · answers WarrantyClaimReimburse@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) · /1C6JJTBG8RL117874 (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.

EmitsWarrantyClaim.failed@1 · WarrantyClaim.reimburseRequested@1 · WarrantyClaim.reimbursed@1.

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

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

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.970Z · HTTP 200
{
  "type": "OK",
  "answers": "WarrantyClaimReimburse@1",
  "value": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claimId": "WC-4f4cace5",
    "payment": {
      "id": "PAY-592ed348",
      "status": "settled",
      "amountCents": 42000,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claimId": "WC-4f4cace5",
    "payment": {
      "id": "PAY-592ed348",
      "status": "settled",
      "amountCents": 42000,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "aftersales-data-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

chargeback

warrantyClaim.chargeback · POST /warranty-claims/chargeback · gate offer · sandbox · answers WarrantyClaimChargeback@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) · /1C6JJTBG8RL117874 (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.

EmitsWarrantyClaim.chargebackRequested@1 · WarrantyClaim.chargebacked@1 · WarrantyClaim.chargedBack@1 · WarrantyClaim.failed@1.

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

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

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.913Z · HTTP 200
{
  "type": "OK",
  "answers": "WarrantyClaimChargeback@1",
  "value": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claimId": "WC-4f4cace5",
    "chargeback": {
      "id": "CBK-b29c0adf",
      "status": "issued",
      "amountCents": 0,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claimId": "WC-4f4cace5",
    "chargeback": {
      "id": "CBK-b29c0adf",
      "status": "issued",
      "amountCents": 0,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "aftersales-data-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

scheduleReconcile

warrantyClaim.scheduleReconcile · POST /warranty-claims/schedule-reconcile · gate key · sandbox · answers WarrantyClaimScheduleReconcile@1

No input — this capability takes no request body.

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

EmitsWarrantyClaim.scheduleReconciled@1.

the SDK — warrantyClaim.scheduleReconcile
import { warrantyClaim } from 'apis.vin'

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

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

receipt · executed 2026-08-16T14:50:10.090Z · HTTP 200
{
  "type": "OK",
  "answers": "WarrantyClaimScheduleReconcile@1",
  "value": {
    "vin": "1HGCM82633A004352",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "reconciliation": {
      "id": "RC-88c7266e",
      "status": "balanced",
      "claims": 4
    }
  },
  "evidence": {
    "vin": "1HGCM82633A004352",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "reconciliation": {
      "id": "RC-88c7266e",
      "status": "balanced",
      "claims": 4
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "aftersales-data-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Fulfill & operate

build

warrantyClaim.build · POST /warranty-claims/build · gate offer · sandbox · answers WarrantyClaimBuild@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) · /1C6JJTBG8RL117874 (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.

EmitsWarrantyClaim.buildRequested@1 · WarrantyClaim.built@1.

the SDK — warrantyClaim.build
import { warrantyClaim } from 'apis.vin'

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

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.907Z · HTTP 200
{
  "type": "OK",
  "answers": "WarrantyClaimBuild@1",
  "value": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claim": {
      "id": "WC-4f4cace5",
      "status": "submitted"
    }
  },
  "evidence": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claim": {
      "id": "WC-4f4cace5",
      "status": "submitted"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "aftersales-data-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Authorize & resolve

approve

warrantyClaim.approve · POST /warranty-claims/approve · gate offer · sandbox · answers WarrantyClaimApprove@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) · /1C6JJTBG8RL117874 (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.

EmitsWarrantyClaim.approved@1.

the SDK — warrantyClaim.approve
import { warrantyClaim } from 'apis.vin'

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

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.899Z · HTTP 200
{
  "type": "OK",
  "answers": "WarrantyClaimApprove@1",
  "value": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claimId": "WC-4f4cace5",
    "decision": "approved"
  },
  "evidence": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claimId": "WC-4f4cace5",
    "decision": "approved"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "aftersales-data-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

appeal

warrantyClaim.appeal · POST /warranty-claims/appeal · gate offer · sandbox · answers WarrantyClaimAppeal@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) · /1C6JJTBG8RL117874 (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.

EmitsWarrantyClaim.appealRequested@1 · WarrantyClaim.appealed@1.

the SDK — warrantyClaim.appeal
import { warrantyClaim } from 'apis.vin'

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

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.899Z · HTTP 200
{
  "type": "OK",
  "answers": "WarrantyClaimAppeal@1",
  "value": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claimId": "WC-4f4cace5",
    "appeal": {
      "status": "overturned"
    }
  },
  "evidence": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claimId": "WC-4f4cace5",
    "appeal": {
      "status": "overturned"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "aftersales-data-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

adjudicate

warrantyClaim.adjudicate · POST /warranty-claims/adjudicate · gate offer · sandbox · answers WarrantyClaimAdjudicate@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) · /1C6JJTBG8RL117874 (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.

EmitsWarrantyClaim.adjudicated@1 · WarrantyClaim.partiallyApproved@1.

the SDK — warrantyClaim.adjudicate
import { warrantyClaim } from 'apis.vin'

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

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.899Z · HTTP 200
{
  "type": "OK",
  "answers": "WarrantyClaimAdjudicate@1",
  "value": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claimId": "WC-4f4cace5",
    "decision": "approved"
  },
  "evidence": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claimId": "WC-4f4cace5",
    "decision": "approved"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "aftersales-data-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

preAuthorize

warrantyClaim.preAuthorize · POST /warranty-claims/pre-authorize · gate offer · sandbox · answers WarrantyClaimPreAuthorize@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) · /1C6JJTBG8RL117874 (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.

EmitsWarrantyClaim.preAuthorizeFailed@1 · WarrantyClaim.preAuthorizeRequested@1 · WarrantyClaim.preAuthorized@1.

the SDK — warrantyClaim.preAuthorize
import { warrantyClaim } from 'apis.vin'

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

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.954Z · HTTP 200
{
  "type": "OK",
  "answers": "WarrantyClaimPreAuthorize@1",
  "value": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claim": {
      "id": "WC-4f4cace5",
      "status": "preauthorized"
    }
  },
  "evidence": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claim": {
      "id": "WC-4f4cace5",
      "status": "preauthorized"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "aftersales-data-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Lifecycle & state

close

warrantyClaim.close · POST /warranty-claims/close · gate offer · sandbox · answers WarrantyClaimClose@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) · /1C6JJTBG8RL117874 (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.

EmitsWarrantyClaim.closeRequested@1 · WarrantyClaim.closed@1.

the SDK — warrantyClaim.close
import { warrantyClaim } from 'apis.vin'

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

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.913Z · HTTP 200
{
  "type": "OK",
  "answers": "WarrantyClaimClose@1",
  "value": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claim": {
      "id": "WC-4f4cace5",
      "status": "closed",
      "finalDecision": "approved"
    }
  },
  "evidence": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claim": {
      "id": "WC-4f4cace5",
      "status": "closed",
      "finalDecision": "approved"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "aftersales-data-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

More actions

deny

warrantyClaim.deny · POST /warranty-claims/deny · gate offer · sandbox · answers WarrantyClaimDeny@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) · /1C6JJTBG8RL117874 (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.

EmitsWarrantyClaim.denied@1.

the SDK — warrantyClaim.deny
import { warrantyClaim } from 'apis.vin'

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

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.914Z · HTTP 200
{
  "type": "OK",
  "answers": "WarrantyClaimDeny@1",
  "value": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claimId": "WC-4f4cace5",
    "decision": "approved"
  },
  "evidence": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "claimId": "WC-4f4cace5",
    "decision": "approved"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "aftersales-data-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

laborOp

warrantyClaim.laborOp · GET /warranty-claims/labor-op · gate key · sandbox · answers WarrantyClaimLaborOp@1

FieldTypeRequiredNotes
vinstringno
operationIdstringnoLabor-guide operation id (the LaborTimeGuide op code) the flat-rate time is looked up for.

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

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await warrantyClaim.laborOp({"vin":"1C6JJTBG8RL117874","operationId":"operationid"})
GET /warranty-claims/labor-op
curl 'https://apis.vin/warranty-claims/labor-op?vin=1C6JJTBG8RL117874&operationId=operationid'

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.937Z · HTTP 200
{
  "type": "OK",
  "answers": "WarrantyClaimLaborOp@1",
  "value": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "opCode": "OP-5f5bd09f",
    "laborTenths": 13,
    "rateCentsPerHour": 16500,
    "currency": "USD"
  },
  "evidence": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "opCode": "OP-5f5bd09f",
    "laborTenths": 13,
    "rateCentsPerHour": 16500,
    "currency": "USD"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "aftersales-data-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

laborTime

warrantyClaim.laborTime · GET /warranty-claims/labor-time · gate none · sandbox · answers WarrantyClaimLaborTime@1

FieldTypeRequiredNotes
vinstringno
operationIdstringnoLabor-guide operation id (the LaborTimeGuide op code) the flat-rate time is looked up for.

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

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await warrantyClaim.laborTime({"vin":"1C6JJTBG8RL117874","operationId":"operationid"})
GET /warranty-claims/labor-time
curl 'https://apis.vin/warranty-claims/labor-time?vin=1C6JJTBG8RL117874&operationId=operationid'

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.949Z · HTTP 200
{
  "type": "OK",
  "answers": "WarrantyClaimLaborTime@1",
  "value": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "opCode": "OP-5f5bd09f",
    "laborTenths": 13,
    "rateCentsPerHour": 16500,
    "currency": "USD"
  },
  "evidence": {
    "vin": "1C6JJTBG8RL117874",
    "noun": "warrantyClaim",
    "asOf": "2026-08-10",
    "warranty": "active",
    "opCode": "OP-5f5bd09f",
    "laborTenths": 13,
    "rateCentsPerHour": 16500,
    "currency": "USD"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "aftersales-data-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.

WarrantyClaim

Schema

PropertyType
idid
vinstring
claimTypeenum
repairOrderIdref→RepairOrder
laborOpsLaborOp[]
statusWarrantyClaimFSM

Relationships

FromToCardinalityAs
repairOrderwarrantyClaim1:0..*claims

Modeled

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

WarrantyClaim · Class model

WarrantyClaim · State machine

WarrantyClaim · Sequence


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