disbursement
The disbursement noun — identity, lifecycle, events, and every capability as an anchored section: 10 capabilities, 0 live, 10 sandbox, 0 declared.
disbursement is one of the estate's 317 automotive nouns — a job a car needs done. It carries 10 capabilities: 0 live, 10 sandbox, 0 declared · doors aggregator.vin.
Identity
| Noun | disbursement |
| Pillar | Commerce (facets: 2 data · 1 services · 7 commerce) |
| Capabilities | 10 — 0 live · 10 sandbox · 0 declared |
| Entities | Disbursement |
| Doors | aggregator.vin |
| SDK | Vin.disbursement.* from apis.vin |
| Address | /catalog/disbursement#{action} — the anchor IS the wire name minus disbursement. |
Events
The vocabulary this noun can append to the record — 10 past-tense, versioned event types, each linked to the capability that emits it:
Disbursement.commissionPaid@1— emitted bycommissionDisbursement.failed@1— emitted bycommission·rebateRemit·remit·reversal·tradePayoffDisbursement.instantPaid@1— emitted byinstantPayDisbursement.rebateRemitted@1— emitted byrebateRemitDisbursement.remitted@1— emitted byremitDisbursement.requested@1— emitted byscheduleDisbursement.reversed@1— emitted byreversalDisbursement.scheduled@1— emitted byscheduleDisbursement.split@1— emitted bysplitDisbursement.tradePayoffRemitted@1— emitted bytradePayoff
Discover & read
status
disbursement.status · GET /disbursements/status · gate none · sandbox · answers DisbursementStatus@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C4HJXDNXNW152029 (the VIN lens).
Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.
import { disbursement } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await disbursement.status({"vin":"1C4HJXDNXNW152029"})curl 'https://apis.vin/disbursements/status?vin=1C4HJXDNXNW152029'Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.
{
"type": "OK",
"answers": "DisbursementStatus@1",
"value": {
"noun": "disbursement",
"vin": "1C4HJXDNXNW152029",
"asOf": "2026-08-10",
"dealId": "DL-274a29e9",
"position": "QUOTED",
"standing": "held",
"disbursement": {
"status": "no-disbursement-posted"
},
"statusReport": {
"status": "pending-funding",
"position": "QUOTED"
}
},
"evidence": {
"noun": "disbursement",
"vin": "1C4HJXDNXNW152029",
"asOf": "2026-08-10",
"dealId": "DL-274a29e9",
"position": "QUOTED",
"standing": "held",
"disbursement": {
"status": "no-disbursement-posted"
},
"statusReport": {
"status": "pending-funding",
"position": "QUOTED"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "disbursement-desk-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Quote & price
compute
disbursement.compute · GET /disbursements/compute · gate key · sandbox · answers DisbursementCompute@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C4HJXDNXNW152029 (the VIN lens).
Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.
import { disbursement } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await disbursement.compute({"vin":"1C4HJXDNXNW152029"})curl 'https://apis.vin/disbursements/compute?vin=1C4HJXDNXNW152029'Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.
{
"type": "OK",
"answers": "DisbursementCompute@1",
"value": {
"noun": "disbursement",
"vin": "1C4HJXDNXNW152029",
"asOf": "2026-08-10",
"dealId": "DL-274a29e9",
"position": "QUOTED",
"standing": "held",
"disbursement": {
"status": "no-disbursement-posted"
},
"compute": {
"status": "computed",
"lines": [
{
"kind": "payoff",
"amountCents": 1471109,
"basis": "payoff-rail-quote"
},
{
"kind": "seller",
"amountCents": 2300000,
"basis": "asking-value-law"
},
{
"kind": "fees",
"amountCents": 12500,
"basis": "posted-facilitation-fee"
}
],
"totalCents": 3783609
}
},
"evidence": {
"noun": "disbursement",
"vin": "1C4HJXDNXNW152029",
"asOf": "2026-08-10",
"dealId": "DL-274a29e9",
"position": "QUOTED",
"standing": "held",
"disbursement": {
"status": "no-disbursement-posted"
},
"compute": {
"status": "computed",
"lines": [
{
"kind": "payoff",
"amountCents": 1471109,
"basis": "payoff-rail-quote"
},
{
"kind": "seller",
"amountCents": 2300000,
"basis": "asking-value-law"
},
{
"kind": "fees",
"amountCents": 12500,
"basis": "posted-facilitation-fee"
}
],
"totalCents": 3783609
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "disbursement-desk-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Apply & book
schedule
disbursement.schedule · POST /disbursements/schedule · gate offer · sandbox · answers DisbursementSchedule@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C4HJXDNXNW152029 (the VIN lens).
Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.
Emits — Disbursement.requested@1 · Disbursement.scheduled@1.
import { disbursement } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await disbursement.schedule({"vin":"1C4HJXDNXNW152029"})curl -X POST https://apis.vin/disbursements/schedule \
-H 'content-type: application/json' \
-d '{"vin":"1C4HJXDNXNW152029"}'Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.
{
"type": "OK",
"answers": "DisbursementSchedule@1",
"value": {
"noun": "disbursement",
"vin": "1C4HJXDNXNW152029",
"asOf": "2026-08-10",
"dealId": "DL-274a29e9",
"position": "QUOTED",
"standing": "held",
"disbursement": {
"status": "no-disbursement-posted"
},
"schedule": {
"status": "not-yet-funded",
"position": "QUOTED"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"noun": "disbursement",
"vin": "1C4HJXDNXNW152029",
"asOf": "2026-08-10",
"dealId": "DL-274a29e9",
"position": "QUOTED",
"standing": "held",
"disbursement": {
"status": "no-disbursement-posted"
},
"schedule": {
"status": "not-yet-funded",
"position": "QUOTED"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "disbursement-desk-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}commission
disbursement.commission · POST /disbursements/commission · gate offer · sandbox · answers DisbursementCommission@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C4HJXDNXNW152029 (the VIN lens).
Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.
Emits — Disbursement.commissionPaid@1 · Disbursement.failed@1.
import { disbursement } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await disbursement.commission({"vin":"1C4HJXDNXNW152029"})curl -X POST https://apis.vin/disbursements/commission \
-H 'content-type: application/json' \
-d '{"vin":"1C4HJXDNXNW152029"}'Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.
{
"type": "OK",
"answers": "DisbursementCommission@1",
"value": {
"payout": {
"$type": "Payout",
"$id": "payout_po_1",
"payeeRef": "payee-sandbox",
"amount": {
"amount": "50000",
"currency": "USD"
},
"scheme": "ach",
"destinationRef": "dest_earner_sandbox",
"status": "paid",
"createdAt": "2026-08-10T00:00:00.000Z",
"ledgerRef": "ledgerentry_po_1",
"provenance": {
"environment": "sandbox",
"simulated": true,
"provider": "settlement-rail"
},
"providerData": {
"externalId": "po_1"
}
}
},
"evidence": {
"payout": {
"$type": "Payout",
"$id": "payout_po_1",
"payeeRef": "payee-sandbox",
"amount": {
"amount": "50000",
"currency": "USD"
},
"scheme": "ach",
"destinationRef": "dest_earner_sandbox",
"status": "paid",
"createdAt": "2026-08-10T00:00:00.000Z",
"ledgerRef": "ledgerentry_po_1",
"provenance": {
"environment": "sandbox",
"simulated": true,
"provider": "settlement-rail"
},
"providerData": {
"externalId": "po_1"
}
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "settlement-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Pay & settle
remit
disbursement.remit · POST /disbursements/remit · gate offer · sandbox · answers DisbursementRemit@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C4HJXDNXNW152029 (the VIN lens).
Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.
Emits — Disbursement.failed@1 · Disbursement.remitted@1.
import { disbursement } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await disbursement.remit({"vin":"1C4HJXDNXNW152029"})curl -X POST https://apis.vin/disbursements/remit \
-H 'content-type: application/json' \
-d '{"vin":"1C4HJXDNXNW152029"}'Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.
{
"type": "OK",
"answers": "DisbursementRemit@1",
"value": {
"payout": {
"$type": "Payout",
"$id": "payout_po_1",
"payeeRef": "payee-sandbox",
"amount": {
"amount": "1000000",
"currency": "USD"
},
"scheme": "ach",
"destinationRef": "dest_sandbox",
"status": "paid",
"createdAt": "2026-08-10T00:00:00.000Z",
"ledgerRef": "ledgerentry_po_1",
"provenance": {
"environment": "sandbox",
"simulated": true,
"provider": "settlement-rail"
},
"providerData": {
"externalId": "po_1"
}
}
},
"evidence": {
"payout": {
"$type": "Payout",
"$id": "payout_po_1",
"payeeRef": "payee-sandbox",
"amount": {
"amount": "1000000",
"currency": "USD"
},
"scheme": "ach",
"destinationRef": "dest_sandbox",
"status": "paid",
"createdAt": "2026-08-10T00:00:00.000Z",
"ledgerRef": "ledgerentry_po_1",
"provenance": {
"environment": "sandbox",
"simulated": true,
"provider": "settlement-rail"
},
"providerData": {
"externalId": "po_1"
}
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "settlement-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}instantPay
disbursement.instantPay · POST /disbursements/instant-pay · gate key · sandbox · answers DisbursementInstantPay@1
No input — this capability takes no request body.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C4HJXDNXNW152029 (the VIN lens).
Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.
Emits — Disbursement.instantPaid@1.
import { disbursement } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await disbursement.instantPay()curl -X POST https://apis.vin/disbursements/instant-pay \
-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.
{
"type": "OK",
"answers": "DisbursementInstantPay@1",
"value": {
"payout": {
"$type": "Payout",
"$id": "payout_po_1",
"payeeRef": "payee-sandbox",
"amount": {
"amount": "250000",
"currency": "USD"
},
"scheme": "wire",
"destinationRef": "dest_sandbox",
"status": "paid",
"createdAt": "2026-08-10T00:00:00.000Z",
"ledgerRef": "ledgerentry_po_1",
"provenance": {
"environment": "sandbox",
"simulated": true,
"provider": "settlement-rail"
},
"providerData": {
"externalId": "po_1"
}
}
},
"evidence": {
"payout": {
"$type": "Payout",
"$id": "payout_po_1",
"payeeRef": "payee-sandbox",
"amount": {
"amount": "250000",
"currency": "USD"
},
"scheme": "wire",
"destinationRef": "dest_sandbox",
"status": "paid",
"createdAt": "2026-08-10T00:00:00.000Z",
"ledgerRef": "ledgerentry_po_1",
"provenance": {
"environment": "sandbox",
"simulated": true,
"provider": "settlement-rail"
},
"providerData": {
"externalId": "po_1"
}
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "settlement-rail-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}rebateRemit
disbursement.rebateRemit · POST /disbursements/rebate-remit · gate offer · sandbox · answers DisbursementRebateRemit@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C4HJXDNXNW152029 (the VIN lens).
Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.
Emits — Disbursement.failed@1 · Disbursement.rebateRemitted@1.
import { disbursement } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await disbursement.rebateRemit({"vin":"1C4HJXDNXNW152029"})curl -X POST https://apis.vin/disbursements/rebate-remit \
-H 'content-type: application/json' \
-d '{"vin":"1C4HJXDNXNW152029"}'Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.
{
"type": "OK",
"answers": "DisbursementRebateRemit@1",
"value": {
"noun": "disbursement",
"vin": "1C4HJXDNXNW152029",
"asOf": "2026-08-10",
"dealId": "DL-274a29e9",
"position": "QUOTED",
"standing": "held",
"disbursement": {
"status": "no-disbursement-posted"
},
"rebate": {
"status": "not-yet-funded",
"position": "QUOTED"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"evidence": {
"noun": "disbursement",
"vin": "1C4HJXDNXNW152029",
"asOf": "2026-08-10",
"dealId": "DL-274a29e9",
"position": "QUOTED",
"standing": "held",
"disbursement": {
"status": "no-disbursement-posted"
},
"rebate": {
"status": "not-yet-funded",
"position": "QUOTED"
},
"payer": {
"name": "Ava Good",
"castRow": "super-prime",
"creditTier": "super-prime"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "disbursement-desk-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}Fulfill & operate
split
disbursement.split · POST /disbursements/split · gate key · sandbox · answers DisbursementSplit@1
No input — this capability takes no request body.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C4HJXDNXNW152029 (the VIN lens).
Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.
Emits — Disbursement.split@1.
import { disbursement } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await disbursement.split()curl -X POST https://apis.vin/disbursements/split \
-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.
{
"type": "OK",
"answers": "DisbursementSplit@1",
"value": {
"noun": "disbursement",
"vin": "1HGCM82633A004352",
"asOf": "2026-08-10",
"disbursement": {
"status": "no-deal-on-file"
}
},
"evidence": {
"noun": "disbursement",
"vin": "1HGCM82633A004352",
"asOf": "2026-08-10",
"disbursement": {
"status": "no-deal-on-file"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "disbursement-desk-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}More actions
reversal
disbursement.reversal · POST /disbursements/reversal · gate offer · sandbox · answers DisbursementReversal@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C4HJXDNXNW152029 (the VIN lens).
Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.
Emits — Disbursement.failed@1 · Disbursement.reversed@1.
import { disbursement } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await disbursement.reversal({"vin":"1C4HJXDNXNW152029"})curl -X POST https://apis.vin/disbursements/reversal \
-H 'content-type: application/json' \
-d '{"vin":"1C4HJXDNXNW152029"}'Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.
{
"type": "OK",
"answers": "DisbursementReversal@1",
"value": {
"noun": "disbursement",
"vin": "1C4HJXDNXNW152029",
"asOf": "2026-08-10",
"dealId": "DL-274a29e9",
"position": "QUOTED",
"standing": "held",
"disbursement": {
"status": "no-disbursement-posted"
},
"reversal": {
"status": "nothing-disbursed-to-reverse",
"position": "QUOTED"
}
},
"evidence": {
"noun": "disbursement",
"vin": "1C4HJXDNXNW152029",
"asOf": "2026-08-10",
"dealId": "DL-274a29e9",
"position": "QUOTED",
"standing": "held",
"disbursement": {
"status": "no-disbursement-posted"
},
"reversal": {
"status": "nothing-disbursed-to-reverse",
"position": "QUOTED"
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "disbursement-desk-sandbox"
},
"events": [],
"meter": {
"charged": "0.00",
"posted": false
}
}tradePayoff
disbursement.tradePayoff · POST /disbursements/trade-payoff · gate offer · sandbox · answers DisbursementTradePayoff@1
| Field | Type | Required | Notes |
|---|---|---|---|
vin | string | no | — |
The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.
Door — aggregator.vin serves this noun on its two routes: / (the landing) · /1C4HJXDNXNW152029 (the VIN lens).
Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.
Emits — Disbursement.failed@1 · Disbursement.tradePayoffRemitted@1.
import { disbursement } from 'apis.vin'
// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await disbursement.tradePayoff({"vin":"1C4HJXDNXNW152029"})curl -X POST https://apis.vin/disbursements/trade-payoff \
-H 'content-type: application/json' \
-d '{"vin":"1C4HJXDNXNW152029"}'Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.
{
"type": "OK",
"answers": "DisbursementTradePayoff@1",
"value": {
"payout": {
"$type": "Payout",
"$id": "payout_po_1",
"payeeRef": "payee-sandbox",
"amount": {
"amount": "1800000",
"currency": "USD"
},
"scheme": "wire",
"destinationRef": "dest_lienholder_sandbox",
"status": "paid",
"createdAt": "2026-08-10T00:00:00.000Z",
"ledgerRef": "ledgerentry_po_1",
"provenance": {
"environment": "sandbox",
"simulated": true,
"provider": "settlement-rail"
},
"providerData": {
"externalId": "po_1"
}
}
},
"evidence": {
"payout": {
"$type": "Payout",
"$id": "payout_po_1",
"payeeRef": "payee-sandbox",
"amount": {
"amount": "1800000",
"currency": "USD"
},
"scheme": "wire",
"destinationRef": "dest_lienholder_sandbox",
"status": "paid",
"createdAt": "2026-08-10T00:00:00.000Z",
"ledgerRef": "ledgerentry_po_1",
"provenance": {
"environment": "sandbox",
"simulated": true,
"provider": "settlement-rail"
},
"providerData": {
"externalId": "po_1"
}
}
},
"provenance": {
"simulated": true,
"environment": "sandbox",
"source": "settlement-rail-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.
Disbursement
Schema
| Property | Type | Notes |
|---|---|---|
kind | enum | payoff|seller|fees |
amount | money | — |
Relationships
| From | To | Cardinality | As |
|---|---|---|---|
escrow | disbursement | 1:1..* | splits |
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.
Disbursement · Class model
Disbursement · 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.