docs.vin

fundingPackage

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

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

Identity

NounfundingPackage
PillarServices (facets: 1 data · 4 services · 1 commerce)
Capabilities6 — 0 live · 6 sandbox · 0 declared
EntitiesEcontract
Doorsaggregator.vin
SDKVin.fundingPackage.* from apis.vin
Address/catalog/fundingPackage#{action} — the anchor IS the wire name minus fundingPackage.

Events

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

Discover & read

status

fundingPackage.status · GET /funding-packages/status · gate none · sandbox · answers FundingPackageStatus@1

FieldTypeRequiredNotes
vinstringno

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

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

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:12.053Z · HTTP 200
{
  "type": "OK",
  "answers": "FundingPackageStatus@1",
  "value": {
    "vin": "1G1ZB5ST6GF172491",
    "noun": "fundingPackage",
    "asOf": "2026-08-10",
    "id": "EC-674c9124",
    "documents": [
      "DOC-95de9976"
    ],
    "status": "Generated",
    "package": {
      "contracts": [
        "EC-674c9124"
      ],
      "totalCents": 2300000,
      "currency": "USD",
      "status": "pending-funding"
    }
  },
  "evidence": {
    "vin": "1G1ZB5ST6GF172491",
    "noun": "fundingPackage",
    "asOf": "2026-08-10",
    "id": "EC-674c9124",
    "documents": [
      "DOC-95de9976"
    ],
    "status": "Generated",
    "package": {
      "contracts": [
        "EC-674c9124"
      ],
      "totalCents": 2300000,
      "currency": "USD",
      "status": "pending-funding"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "funding-pipeline-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Apply & book

submit

fundingPackage.submit · POST /funding-packages/submit · gate offer · sandbox · answers FundingPackageSubmit@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) · /1G1ZB5ST6GF172491 (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.

EmitsFundingPackage.requested@1 · FundingPackage.submitted@1.

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

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

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:12.053Z · HTTP 200
{
  "type": "OK",
  "answers": "FundingPackageSubmit@1",
  "value": {
    "vin": "1G1ZB5ST6GF172491",
    "noun": "fundingPackage",
    "asOf": "2026-08-10",
    "id": "EC-674c9124",
    "documents": [
      "DOC-95de9976"
    ],
    "status": "Generated",
    "submission": {
      "status": "not-yet-signed",
      "id": "EC-674c9124",
      "position": "Generated"
    }
  },
  "evidence": {
    "vin": "1G1ZB5ST6GF172491",
    "noun": "fundingPackage",
    "asOf": "2026-08-10",
    "id": "EC-674c9124",
    "documents": [
      "DOC-95de9976"
    ],
    "status": "Generated",
    "submission": {
      "status": "not-yet-signed",
      "id": "EC-674c9124",
      "position": "Generated"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "funding-pipeline-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Pay & settle

fund

fundingPackage.fund · POST /funding-packages/fund · gate offer · sandbox · answers FundingPackageFund@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) · /1G1ZB5ST6GF172491 (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.

EmitsFundingPackage.failed@1 · FundingPackage.funded@1.

the SDK — fundingPackage.fund
import { fundingPackage } from 'apis.vin'

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

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:12.035Z · HTTP 200
{
  "type": "OK",
  "answers": "FundingPackageFund@1",
  "value": {
    "vin": "1G1ZB5ST6GF172491",
    "noun": "fundingPackage",
    "asOf": "2026-08-10",
    "id": "EC-674c9124",
    "documents": [
      "DOC-95de9976"
    ],
    "status": "Generated",
    "funding": {
      "status": "not-yet-submitted",
      "id": "EC-674c9124",
      "position": "Generated"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1G1ZB5ST6GF172491",
    "noun": "fundingPackage",
    "asOf": "2026-08-10",
    "id": "EC-674c9124",
    "documents": [
      "DOC-95de9976"
    ],
    "status": "Generated",
    "funding": {
      "status": "not-yet-submitted",
      "id": "EC-674c9124",
      "position": "Generated"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "funding-pipeline-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Fulfill & operate

assemble

fundingPackage.assemble · POST /funding-packages/assemble · gate offer · sandbox · answers FundingPackageAssemble@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) · /1G1ZB5ST6GF172491 (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.

EmitsFundingPackage.assembled@1.

the SDK — fundingPackage.assemble
import { fundingPackage } from 'apis.vin'

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

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:12.033Z · HTTP 200
{
  "type": "OK",
  "answers": "FundingPackageAssemble@1",
  "value": {
    "vin": "1G1ZB5ST6GF172491",
    "noun": "fundingPackage",
    "asOf": "2026-08-10",
    "id": "EC-674c9124",
    "documents": [
      "DOC-95de9976"
    ],
    "status": "Generated",
    "assembly": {
      "status": "not-yet-signed",
      "id": "EC-674c9124",
      "position": "Generated"
    }
  },
  "evidence": {
    "vin": "1G1ZB5ST6GF172491",
    "noun": "fundingPackage",
    "asOf": "2026-08-10",
    "id": "EC-674c9124",
    "documents": [
      "DOC-95de9976"
    ],
    "status": "Generated",
    "assembly": {
      "status": "not-yet-signed",
      "id": "EC-674c9124",
      "position": "Generated"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "funding-pipeline-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

More actions

kickback

fundingPackage.kickback · POST /funding-packages/kickback · gate offer · sandbox · answers FundingPackageKickback@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) · /1G1ZB5ST6GF172491 (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.

EmitsFundingPackage.kickbackResolved@1.

the SDK — fundingPackage.kickback
import { fundingPackage } from 'apis.vin'

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

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:12.045Z · HTTP 200
{
  "type": "OK",
  "answers": "FundingPackageKickback@1",
  "value": {
    "vin": "1G1ZB5ST6GF172491",
    "noun": "fundingPackage",
    "asOf": "2026-08-10",
    "id": "EC-674c9124",
    "documents": [
      "DOC-95de9976"
    ],
    "status": "Generated",
    "kickback": {
      "id": "EC-674c9124",
      "status": "no-remedy-needed"
    }
  },
  "evidence": {
    "vin": "1G1ZB5ST6GF172491",
    "noun": "fundingPackage",
    "asOf": "2026-08-10",
    "id": "EC-674c9124",
    "documents": [
      "DOC-95de9976"
    ],
    "status": "Generated",
    "kickback": {
      "id": "EC-674c9124",
      "status": "no-remedy-needed"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "funding-pipeline-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

stips

fundingPackage.stips · POST /funding-packages/stips · gate offer · sandbox · answers FundingPackageStips@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) · /1G1ZB5ST6GF172491 (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.

EmitsFundingPackage.stipsCleared@1.

the SDK — fundingPackage.stips
import { fundingPackage } from 'apis.vin'

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

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:12.053Z · HTTP 200
{
  "type": "OK",
  "answers": "FundingPackageStips@1",
  "value": {
    "vin": "1G1ZB5ST6GF172491",
    "noun": "fundingPackage",
    "asOf": "2026-08-10",
    "id": "EC-674c9124",
    "documents": [
      "DOC-95de9976"
    ],
    "status": "Generated",
    "stipulations": {
      "id": "EC-674c9124",
      "items": [],
      "status": "none-required"
    },
    "stipFile": {
      "status": "no-stip-on-file"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1G1ZB5ST6GF172491",
    "noun": "fundingPackage",
    "asOf": "2026-08-10",
    "id": "EC-674c9124",
    "documents": [
      "DOC-95de9976"
    ],
    "status": "Generated",
    "stipulations": {
      "id": "EC-674c9124",
      "items": [],
      "status": "none-required"
    },
    "stipFile": {
      "status": "no-stip-on-file"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "funding-pipeline-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.

Econtract

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.

FundingPackage · Class model

FundingPackage · 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.