# TreasuryProjectionWrite

[All API schemas](/api-reference/schemas/)

<code>object</code> — Additional properties rejected

| Field | Required at this level | Type | Description and constraints |
| --- | --- | --- | --- |
| <code>record</code> | Yes | <code>object</code> | Additional properties rejected |
| <code>record.schemaVersion</code> | Yes | Constant <code>treasury-declared-projection-v1</code> | — |
| <code>record.organizationId</code> | Yes | <code>string</code> | Pattern: <code>^&#91;a-zA-Z0-9&#93;&#91;a-zA-Z0-9:&#95;-&#93;{2,159}$</code> |
| <code>record.id</code> | Yes | <code>string</code> | Pattern: <code>^treasury&#95;projection&#95;&#91;0-9a-f&#93;{32}$</code> |
| <code>record.resourceVersion</code> | Yes | <code>string</code> | Pattern: <code>^0x&#91;0-9a-f&#93;{64}$</code> |
| <code>record.request</code> | Yes | <code>object</code> | Additional properties rejected |
| <code>record.request.assumptions</code> | Yes | <code>object</code> | Additional properties rejected |
| <code>record.request.assumptions.id</code> | Yes | <code>string</code> | Pattern: <code>^treasury&#95;assumptions&#95;&#91;0-9a-f&#93;{32}$</code> |
| <code>record.request.assumptions.resourceVersion</code> | Yes | <code>string</code> | Pattern: <code>^0x&#91;0-9a-f&#93;{64}$</code> |
| <code>record.request.throughDay</code> | Yes | <code>string</code> | Pattern: <code>^20&#91;0-9&#93;{2}-&#91;0-9&#93;{2}-&#91;0-9&#93;{2}$</code> |
| <code>record.request.restrictions</code> | Yes | Array of <code>object</code> | Min items: <code>1</code>; Max items: <code>256</code> |
| <code>record.request.restrictions&#91;&#93;.ledgerEntryId</code> | Yes | <code>string</code> | Pattern: <code>^&#91;a-zA-Z0-9&#93;&#91;a-zA-Z0-9:&#95;-&#93;{2,159}$</code> |
| <code>record.request.restrictions&#91;&#93;.restrictedAmountAtomic</code> | Yes | <code>string</code> | Pattern: <code>^&#40;0&#124;&#91;1-9&#93;&#91;0-9&#93;{0,77}&#41;$</code> |
| <code>record.request.restrictions&#91;&#93;.reason</code> | Yes | <code>string</code> | Min length: <code>1</code>; Max length: <code>2000</code> |
| <code>record.request.confirmation</code> | Yes | Constant <code>UNPAID&#95;SCHEDULES&#95;AND&#95;RESTRICTIONS&#95;EXCLUDE&#95;THEM</code> | — |
| <code>record.result</code> | Yes | <code>object</code> | Additional properties rejected |
| <code>record.result.schemaVersion</code> | Yes | Constant <code>treasury-snapshot-projection-model-v1</code> | — |
| <code>record.result.organizationId</code> | Yes | <code>string</code> | Pattern: <code>^&#91;a-zA-Z0-9&#93;&#91;a-zA-Z0-9:&#95;-&#93;{2,159}$</code> |
| <code>record.result.assumptions</code> | Yes | <code>object</code> | Additional properties rejected |
| <code>record.result.assumptions.id</code> | Yes | <code>string</code> | Pattern: <code>^treasury&#95;assumptions&#95;&#91;0-9a-f&#93;{32}$</code> |
| <code>record.result.assumptions.resourceVersion</code> | Yes | <code>string</code> | Pattern: <code>^0x&#91;0-9a-f&#93;{64}$</code> |
| <code>record.result.reconciliation</code> | Yes | <code>object</code> | Additional properties rejected |
| <code>record.result.reconciliation.id</code> | Yes | <code>string</code> | Pattern: <code>^reconciliation&#95;&#91;0-9a-f&#93;{32}$</code> |
| <code>record.result.reconciliation.resourceVersion</code> | Yes | <code>string</code> | Pattern: <code>^0x&#91;0-9a-f&#93;{64}$</code> |
| <code>record.result.request</code> | Yes | <code>object</code> | Additional properties rejected |
| <code>record.result.request.assumptions</code> | Yes | <code>object</code> | Additional properties rejected |
| <code>record.result.request.assumptions.id</code> | Yes | <code>string</code> | Pattern: <code>^treasury&#95;assumptions&#95;&#91;0-9a-f&#93;{32}$</code> |
| <code>record.result.request.assumptions.resourceVersion</code> | Yes | <code>string</code> | Pattern: <code>^0x&#91;0-9a-f&#93;{64}$</code> |
| <code>record.result.request.throughDay</code> | Yes | <code>string</code> | Pattern: <code>^20&#91;0-9&#93;{2}-&#91;0-9&#93;{2}-&#91;0-9&#93;{2}$</code> |
| <code>record.result.request.restrictions</code> | Yes | Array of <code>object</code> | Min items: <code>1</code>; Max items: <code>256</code> |
| <code>record.result.request.restrictions&#91;&#93;.ledgerEntryId</code> | Yes | <code>string</code> | Pattern: <code>^&#91;a-zA-Z0-9&#93;&#91;a-zA-Z0-9:&#95;-&#93;{2,159}$</code> |
| <code>record.result.request.restrictions&#91;&#93;.restrictedAmountAtomic</code> | Yes | <code>string</code> | Pattern: <code>^&#40;0&#124;&#91;1-9&#93;&#91;0-9&#93;{0,77}&#41;$</code> |
| <code>record.result.request.restrictions&#91;&#93;.reason</code> | Yes | <code>string</code> | Min length: <code>1</code>; Max length: <code>2000</code> |
| <code>record.result.request.confirmation</code> | Yes | Constant <code>UNPAID&#95;SCHEDULES&#95;AND&#95;RESTRICTIONS&#95;EXCLUDE&#95;THEM</code> | — |
| <code>record.result.sourceBlock</code> | Yes | <code>object</code> | Additional properties rejected |
| <code>record.result.sourceBlock.number</code> | Yes | <code>string</code> | Pattern: <code>^&#40;0&#124;&#91;1-9&#93;&#91;0-9&#93;{0,77}&#41;$</code> |
| <code>record.result.sourceBlock.hash</code> | Yes | <code>string</code> | Pattern: <code>^0x&#91;0-9a-f&#93;{64}$</code> |
| <code>record.result.sourceBlock.timestamp</code> | Yes | <code>string</code> | Format: <code>date-time</code>; Pattern: <code>^&#40;?:&#40;?:&#92;d&#92;d&#91;2468&#93;&#91;048&#93;&#124;&#92;d&#92;d&#91;13579&#93;&#91;26&#93;&#124;&#92;d&#92;d0&#91;48&#93;&#124;&#91;02468&#93;&#91;048&#93;00&#124;&#91;13579&#93;&#91;26&#93;00&#41;-02-29&#124;&#92;d{4}-&#40;?:&#40;?:0&#91;13578&#93;&#124;1&#91;02&#93;&#41;-&#40;?:0&#91;1-9&#93;&#124;&#91;12&#93;&#92;d&#124;3&#91;01&#93;&#41;&#124;&#40;?:0&#91;469&#93;&#124;11&#41;-&#40;?:0&#91;1-9&#93;&#124;&#91;12&#93;&#92;d&#124;30&#41;&#124;&#40;?:02&#41;-&#40;?:0&#91;1-9&#93;&#124;1&#92;d&#124;2&#91;0-8&#93;&#41;&#41;&#41;T&#40;?:&#40;?:&#91;01&#93;&#92;d&#124;2&#91;0-3&#93;&#41;:&#91;0-5&#93;&#92;d&#40;?::&#91;0-5&#93;&#92;d&#40;?:&#92;.&#92;d+&#41;?&#41;?&#40;?:Z&#124;&#40;&#91;+-&#93;&#40;?:&#91;01&#93;&#92;d&#124;2&#91;0-3&#93;&#41;:&#91;0-5&#93;&#92;d&#41;&#41;&#41;$</code> |
| <code>record.result.sourceCutoff</code> | Yes | <code>string</code> | Format: <code>date-time</code>; Pattern: <code>^&#40;?:&#40;?:&#92;d&#92;d&#91;2468&#93;&#91;048&#93;&#124;&#92;d&#92;d&#91;13579&#93;&#91;26&#93;&#124;&#92;d&#92;d0&#91;48&#93;&#124;&#91;02468&#93;&#91;048&#93;00&#124;&#91;13579&#93;&#91;26&#93;00&#41;-02-29&#124;&#92;d{4}-&#40;?:&#40;?:0&#91;13578&#93;&#124;1&#91;02&#93;&#41;-&#40;?:0&#91;1-9&#93;&#124;&#91;12&#93;&#92;d&#124;3&#91;01&#93;&#41;&#124;&#40;?:0&#91;469&#93;&#124;11&#41;-&#40;?:0&#91;1-9&#93;&#124;&#91;12&#93;&#92;d&#124;30&#41;&#124;&#40;?:02&#41;-&#40;?:0&#91;1-9&#93;&#124;1&#92;d&#124;2&#91;0-8&#93;&#41;&#41;&#41;T&#40;?:&#40;?:&#91;01&#93;&#92;d&#124;2&#91;0-3&#93;&#41;:&#91;0-5&#93;&#92;d&#40;?::&#91;0-5&#93;&#92;d&#40;?:&#92;.&#92;d+&#41;?&#41;?&#40;?:Z&#124;&#40;&#91;+-&#93;&#40;?:&#91;01&#93;&#92;d&#124;2&#91;0-3&#93;&#41;:&#91;0-5&#93;&#92;d&#41;&#41;&#41;$</code> |
| <code>record.result.unit</code> | Yes | <code>object</code> | Additional properties rejected |
| <code>record.result.unit.chainId</code> | Yes | <code>integer</code> | Maximum: <code>9007199254740991</code>; Exclusive minimum: <code>0</code> |
| <code>record.result.unit.genesisHash</code> | Yes | <code>string</code> | Pattern: <code>^0x&#91;0-9a-f&#93;{64}$</code> |
| <code>record.result.unit.asset</code> | Yes | <code>string</code> | Pattern: <code>^0x&#91;0-9a-f&#93;{40}$</code> |
| <code>record.result.unit.decimals</code> | Yes | <code>integer</code> | Minimum: <code>0</code>; Maximum: <code>36</code> |
| <code>record.result.openingDay</code> | Yes | <code>string</code> | Pattern: <code>^20&#91;0-9&#93;{2}-&#91;0-9&#93;{2}-&#91;0-9&#93;{2}$</code> |
| <code>record.result.throughDay</code> | Yes | <code>string</code> | Pattern: <code>^20&#91;0-9&#93;{2}-&#91;0-9&#93;{2}-&#91;0-9&#93;{2}$</code> |
| <code>record.result.opening</code> | Yes | <code>object</code> | Additional properties rejected |
| <code>record.result.opening.availableMappedAtomic</code> | Yes | <code>string</code> | Pattern: <code>^&#40;0&#124;&#91;1-9&#93;&#91;0-9&#93;{0,80}&#41;$</code> |
| <code>record.result.opening.declaredRestrictedAtomic</code> | Yes | <code>string</code> | Pattern: <code>^&#40;0&#124;&#91;1-9&#93;&#91;0-9&#93;{0,80}&#41;$</code> |
| <code>record.result.opening.scenarioBalanceAtomic</code> | Yes | <code>string</code> | Pattern: <code>^&#40;0&#124;&#91;1-9&#93;&#91;0-9&#93;{0,80}&#41;$</code> |
| <code>record.result.selectedMappings</code> | Yes | Array of <code>object</code> | Min items: <code>1</code>; Max items: <code>256</code> |
| <code>record.result.selectedMappings&#91;&#93;.ledgerEntryId</code> | Yes | <code>string</code> | Pattern: <code>^&#91;a-zA-Z0-9&#93;&#91;a-zA-Z0-9:&#95;-&#93;{2,159}$</code> |
| <code>record.result.selectedMappings&#91;&#93;.ledgerResourceVersion</code> | Yes | <code>string</code> | Pattern: <code>^0x&#91;0-9a-f&#93;{64}$</code> |
| <code>record.result.selectedMappings&#91;&#93;.custodyEvidenceId</code> | Yes | <code>string</code> | Pattern: <code>^&#91;a-zA-Z0-9&#93;&#91;a-zA-Z0-9:&#95;-&#93;{2,159}$</code> |
| <code>record.result.selectedMappings&#91;&#93;.custodyResourceVersion</code> | Yes | <code>string</code> | Pattern: <code>^0x&#91;0-9a-f&#93;{64}$</code> |
| <code>record.result.selectedMappings&#91;&#93;.ledgerState</code> | Yes | <code>string</code> | Allowed: <code>AVAILABLE</code>, <code>DEPLOYED</code>, <code>LOCKED</code>, <code>AT&#95;RISK</code>, <code>FEE&#95;GENERATING</code> |
| <code>record.result.selectedMappings&#91;&#93;.ledgerAmountAtomic</code> | Yes | <code>string</code> | Pattern: <code>^&#40;0&#124;&#91;1-9&#93;&#91;0-9&#93;{0,77}&#41;$</code> |
| <code>record.result.selectedMappings&#91;&#93;.declaredRestrictedAtomic</code> | Yes | <code>string</code> | Pattern: <code>^&#40;0&#124;&#91;1-9&#93;&#91;0-9&#93;{0,77}&#41;$</code> |
| <code>record.result.selectedMappings&#91;&#93;.restrictionReason</code> | Yes | <code>string</code> | Min length: <code>1</code>; Max length: <code>2000</code> |
| <code>record.result.selectedMappings&#91;&#93;.includedInOpening</code> | Yes | <code>boolean</code> | — |
| <code>record.result.selectedMappings&#91;&#93;.disposition</code> | Yes | <code>string</code> | Allowed: <code>AVAILABLE&#95;DECLARED&#95;SCENARIO</code>, <code>NON&#95;AVAILABLE&#95;EXCLUDED</code> |
| <code>record.result.timeline</code> | Yes | Array of <code>object</code> | Min items: <code>1</code>; Max items: <code>365</code> |
| <code>record.result.timeline&#91;&#93;.day</code> | Yes | <code>string</code> | Pattern: <code>^20&#91;0-9&#93;{2}-&#91;0-9&#93;{2}-&#91;0-9&#93;{2}$</code> |
| <code>record.result.timeline&#91;&#93;.actualInflowsAtomic</code> | Yes | Constant <code>0</code> | — |
| <code>record.result.timeline&#91;&#93;.obligationsAtomic</code> | Yes | <code>string</code> | Pattern: <code>^&#40;0&#124;&#91;1-9&#93;&#91;0-9&#93;{0,80}&#41;$</code> |
| <code>record.result.timeline&#91;&#93;.allocationsAtomic</code> | Yes | <code>string</code> | Pattern: <code>^&#40;0&#124;&#91;1-9&#93;&#91;0-9&#93;{0,80}&#41;$</code> |
| <code>record.result.timeline&#91;&#93;.conditionalInflowsAtomic</code> | Yes | <code>string</code> | Pattern: <code>^&#40;0&#124;&#91;1-9&#93;&#91;0-9&#93;{0,80}&#41;$</code> |
| <code>record.result.timeline&#91;&#93;.closingBaselineAtomic</code> | Yes | <code>string</code> | Pattern: <code>^&#40;0&#124;-?&#91;1-9&#93;&#91;0-9&#93;{0,80}&#41;$</code> |
| <code>record.result.timeline&#91;&#93;.cumulativeConditionalAtomic</code> | Yes | <code>string</code> | Pattern: <code>^&#40;0&#124;&#91;1-9&#93;&#91;0-9&#93;{0,80}&#41;$</code> |
| <code>record.result.timeline&#91;&#93;.closingConditionalScenarioAtomic</code> | Yes | <code>string</code> | Pattern: <code>^&#40;0&#124;-?&#91;1-9&#93;&#91;0-9&#93;{0,80}&#41;$</code> |
| <code>record.result.excludedEvents</code> | Yes | Array of <code>object</code> | Max items: <code>256</code> |
| <code>record.result.excludedEvents&#91;&#93;.id</code> | Yes | <code>string</code> | Pattern: <code>^&#91;a-zA-Z0-9&#93;&#91;a-zA-Z0-9:&#95;-&#93;{2,159}$</code> |
| <code>record.result.excludedEvents&#91;&#93;.kind</code> | Yes | <code>string</code> | Allowed: <code>OBLIGATION</code>, <code>ALLOCATION</code>, <code>CONDITIONAL&#95;INFLOW</code> |
| <code>record.result.excludedEvents&#91;&#93;.day</code> | Yes | <code>string</code> | Pattern: <code>^20&#91;0-9&#93;{2}-&#91;0-9&#93;{2}-&#91;0-9&#93;{2}$</code> |
| <code>record.result.excludedEvents&#91;&#93;.amountAtomic</code> | Yes | <code>string</code> | Pattern: <code>^&#40;0&#124;&#91;1-9&#93;&#91;0-9&#93;{0,77}&#41;$</code> |
| <code>record.result.excludedEvents&#91;&#93;.reason</code> | Yes | Constant <code>AFTER&#95;HORIZON</code> | — |
| <code>record.result.firstShortfallDay</code> | Yes | At least one of: <code>string</code>; <code>null</code> | — |
| <code>record.result.minimumBaselineAtomic</code> | Yes | <code>string</code> | Pattern: <code>^&#40;0&#124;-?&#91;1-9&#93;&#91;0-9&#93;{0,80}&#41;$</code> |
| <code>record.result.closingBaselineAtomic</code> | Yes | <code>string</code> | Pattern: <code>^&#40;0&#124;-?&#91;1-9&#93;&#91;0-9&#93;{0,80}&#41;$</code> |
| <code>record.result.conditionalInflowsAtomic</code> | Yes | <code>string</code> | Pattern: <code>^&#40;0&#124;&#91;1-9&#93;&#91;0-9&#93;{0,80}&#41;$</code> |
| <code>record.result.closingConditionalScenarioAtomic</code> | Yes | <code>string</code> | Pattern: <code>^&#40;0&#124;-?&#91;1-9&#93;&#91;0-9&#93;{0,80}&#41;$</code> |
| <code>record.result.declaredExpenseCoverage</code> | Yes | <code>object</code> | Additional properties rejected |
| <code>record.result.declaredExpenseCoverage.declaration</code> | Yes | <code>string</code> | Allowed: <code>DECLARED&#95;COMPLETE</code>, <code>DECLARED&#95;PARTIAL</code>, <code>UNKNOWN</code> |
| <code>record.result.declaredExpenseCoverage.omittedCategories</code> | Yes | Array of <code>string</code> | Max items: <code>64</code> |
| <code>record.result.declaredExpenseCoverage.note</code> | Yes | <code>string</code> | Min length: <code>1</code>; Max length: <code>2000</code> |
| <code>record.result.provenance</code> | Yes | Constant <code>DECLARED&#95;SCENARIO</code> | — |
| <code>record.result.verifiedExpenseCoverage</code> | Yes | Constant <code>UNKNOWN</code> | — |
| <code>record.result.spendability</code> | Yes | Constant <code>NOT&#95;ESTABLISHED</code> | — |
| <code>record.result.financialAuthority</code> | Yes | Constant <code>false</code> | — |
| <code>record.result.limitations</code> | Yes | Array of <code>string</code> | Min items: <code>9</code>; Max items: <code>9</code> |
| <code>record.result.modelHash</code> | Yes | <code>string</code> | Pattern: <code>^0x&#91;0-9a-f&#93;{64}$</code> |
| <code>record.sourceHash</code> | Yes | <code>string</code> | Pattern: <code>^0x&#91;0-9a-f&#93;{64}$</code> |
| <code>record.createdBy</code> | Yes | <code>string</code> | Format: <code>uuid</code>; Pattern: <code>^&#40;&#91;0-9a-fA-F&#93;{8}-&#91;0-9a-fA-F&#93;{4}-&#91;1-8&#93;&#91;0-9a-fA-F&#93;{3}-&#91;89abAB&#93;&#91;0-9a-fA-F&#93;{3}-&#91;0-9a-fA-F&#93;{12}&#124;00000000-0000-0000-0000-000000000000&#124;ffffffff-ffff-ffff-ffff-ffffffffffff&#41;$</code> |
| <code>record.createdAt</code> | Yes | <code>string</code> | Format: <code>date-time</code>; Pattern: <code>^&#40;?:&#40;?:&#92;d&#92;d&#91;2468&#93;&#91;048&#93;&#124;&#92;d&#92;d&#91;13579&#93;&#91;26&#93;&#124;&#92;d&#92;d0&#91;48&#93;&#124;&#91;02468&#93;&#91;048&#93;00&#124;&#91;13579&#93;&#91;26&#93;00&#41;-02-29&#124;&#92;d{4}-&#40;?:&#40;?:0&#91;13578&#93;&#124;1&#91;02&#93;&#41;-&#40;?:0&#91;1-9&#93;&#124;&#91;12&#93;&#92;d&#124;3&#91;01&#93;&#41;&#124;&#40;?:0&#91;469&#93;&#124;11&#41;-&#40;?:0&#91;1-9&#93;&#124;&#91;12&#93;&#92;d&#124;30&#41;&#124;&#40;?:02&#41;-&#40;?:0&#91;1-9&#93;&#124;1&#92;d&#124;2&#91;0-8&#93;&#41;&#41;&#41;T&#40;?:&#40;?:&#91;01&#93;&#92;d&#124;2&#91;0-3&#93;&#41;:&#91;0-5&#93;&#92;d&#40;?::&#91;0-5&#93;&#92;d&#40;?:&#92;.&#92;d+&#41;?&#41;?&#40;?:Z&#124;&#40;&#91;+-&#93;&#40;?:&#91;01&#93;&#92;d&#124;2&#91;0-3&#93;&#41;:&#91;0-5&#93;&#92;d&#41;&#41;&#41;$</code> |
| <code>record.spendability</code> | Yes | Constant <code>NOT&#95;ESTABLISHED</code> | — |
| <code>record.financialAuthority</code> | Yes | Constant <code>false</code> | — |
| <code>replayed</code> | Yes | <code>boolean</code> | — |

Nested required fields apply when their parent object or matching union branch is present. Named types link to their complete schema.

Exact definition: <code>#/components/schemas/TreasuryProjectionWrite</code> in the [OpenAPI contract](/openapi/liquidity-operating-system-v2.openapi.json).