fin-hub/workplans/FIN-WP-0006-internal-transfer-settlement.md
tegwick bbfa2d661b
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
derive state hub identifiers
Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a053ff-1d6f-7fe2-ac1c-a6eb40a42a0c
2026-08-31 18:21:33 +02:00

57 lines
1.7 KiB
Markdown

---
id: FIN-WP-0006
type: workplan
title: "Consume resource-control internal transfer settlement"
domain: financials
repo: fin-hub
status: proposed
owner: codex
topic_slug: financials
created: "2026-08-14"
updated: "2026-08-14"
related:
- FIN-WP-0004
- RESOURCE-WP-0005
origin: residual
origin_ref: RESOURCE-WP-0005
state_hub_workstream_id: "e9413a20-5b11-50ff-ba21-15215841cf11"
---
# FIN-WP-0006 — consume internal transfer settlement
## Goal
Accept proposed internal transfer charges and credit-state records from
`resource-control` without taking resource authority or creating a second
ledger. Recognize internal payments as booked facts joined by
`financial_fact_id`, `financial_entity_id`, and period.
Origin: `RESOURCE-WP-0005-T07`. Terms live in
`resource-control/docs/TermsOfResourceProcurement.md`. Outbound shape:
`resource-control/schemas/settlement-statement.schema.json`.
## Boundaries
- `resource-control` owns transfer-price arithmetic, statements, and
consumption mode.
- `fin-hub` owns booked provider cost, tax, recognized payments, and any
later DATEV-facing internal settlement posting.
- A settlement statement is not booked spend.
## T01 — Join proposed transfer charges
```task
id: FIN-WP-0006-T01
status: todo
priority: high
state_hub_task_id: "9ef3fab5-51a6-57ef-8121-b9714298c502"
```
Document and implement the inbound join for resource-control settlement
statements. Preserve `financial_entity_id`, `period`, `terms_version`,
and statement identity. Reject any path that would post the statement as
a provider invoice.
Done when an inbound fixture can be stored as a referenced projection
and `exchange_health` shows statements lacking a payment join as a
visible residual, not as booked cost.