← Technical API reference

Backend resource · STATIC DECLARATIONS

Finance Operations API reference · mansoq-core

Static source contract for Finance Operations: 26 declared or inherited operation mappings, schema/field evidence and authorization/refusal references. Deployment and behavioral review remain explicit.

Static API contract — behavior review pending. Source baseline f6e9f05f76d4.

Enable JavaScript to inspect structured operation, parameter, schema and permission evidence. Download this reference and its evidence.

Declared route and availability

This resource is declared in mansoq-core at /api/v1/facility/{facility_external_id}/rcm/finance/. verified core mount in config/urls.py A registered path and an indexed handler do not prove deployment availability, user permission or production readiness.

SET-12: the six finance actions, with their balance identities visible.

Operation map

Method Path Action Evidence
GET /api/v1/facility/{facility_external_id}/rcm/finance/ list declared/inherited method
GET /api/v1/facility/{facility_external_id}/rcm/finance/{external_id}/ retrieve declared/inherited method
GET /api/v1/facility/{facility_external_id}/rcm/finance/actions/ actions @action declaration
GET /api/v1/facility/{facility_external_id}/rcm/finance/{external_id}/balance-identities/ balance_identities @action declaration
GET /api/v1/facility/{facility_external_id}/rcm/finance/claim-identity/ claim_identity @action declaration
POST /api/v1/facility/{facility_external_id}/rcm/finance/{external_id}/variance/ variance @action declaration
POST /api/v1/facility/{facility_external_id}/rcm/finance/reconcile/ reconcile @action declaration
POST /api/v1/facility/{facility_external_id}/rcm/finance/cash-receipt/ cash_receipt @action declaration
POST /api/v1/facility/{facility_external_id}/rcm/finance/confirm-bank-receipt/ confirm_bank_receipt @action declaration
POST /api/v1/facility/{facility_external_id}/rcm/finance/settle/ settle @action declaration
POST /api/v1/facility/{facility_external_id}/rcm/finance/payment-notice/ payment_notice @action declaration
POST /api/v1/facility/{facility_external_id}/rcm/finance/reverse/ reverse @action declaration
POST /api/v1/facility/{facility_external_id}/rcm/finance/returned-payment/ returned_payment @action declaration
POST /api/v1/facility/{facility_external_id}/rcm/finance/estimate/ estimate @action declaration
POST /api/v1/facility/{facility_external_id}/rcm/finance/issue/ issue @action declaration
POST /api/v1/facility/{facility_external_id}/rcm/finance/credit/ credit @action declaration
POST /api/v1/facility/{facility_external_id}/rcm/finance/refund/ refund @action declaration
POST /api/v1/facility/{facility_external_id}/rcm/finance/aging/ aging @action declaration
GET /api/v1/facility/{facility_external_id}/rcm/finance/suspense/ suspense @action declaration
POST /api/v1/facility/{facility_external_id}/rcm/finance/accounting-manifest/ accounting_manifest @action declaration
POST /api/v1/facility/{facility_external_id}/rcm/finance/accounting-export-payload/ accounting_export_payload @action declaration
POST /api/v1/facility/{facility_external_id}/rcm/finance/accounting-export-ack/ accounting_export_ack @action declaration
GET /api/v1/facility/{facility_external_id}/rcm/finance/accounting-close-readiness/ accounting_close_readiness @action declaration
POST /api/v1/facility/{facility_external_id}/rcm/finance/accounting-close/ accounting_close @action declaration
GET /api/v1/facility/{facility_external_id}/rcm/finance/bank-accounts/ bank_accounts @action declaration
POST /api/v1/facility/{facility_external_id}/rcm/finance/bank-account-change/ bank_account_change @action declaration

list · GET

GET /api/v1/facility/{facility_external_id}/rcm/finance/ — action list. static contract extracted; runtime/permission/payload behavior review pending.

Path and deployment-context parameters:

Location Parameter Type Required
path facility_external_id router lookup string; semantic ID validation requires handler/schema review true

Directly observed request reads (these do not constitute a complete accepted-payload or requiredness guarantee):

Location Field Declared/inferred read type Requiredness evidence
query advice_identifier not declared at read site not established

Observed authorization checks: can_read_account_in_facility. Helper/queryset evidence is included; this is not proof of complete security review.

Declared refusal/error evidence: PermissionDenied: Cannot read revenue-cycle records.

retrieve · GET

GET /api/v1/facility/{facility_external_id}/rcm/finance/{external_id}/ — action retrieve. static contract extracted; runtime/permission/payload behavior review pending.

Path and deployment-context parameters:

Location Parameter Type Required
path facility_external_id router lookup string; semantic ID validation requires handler/schema review true
path external_id router lookup string; semantic ID validation requires handler/schema review true

Directly observed request reads (these do not constitute a complete accepted-payload or requiredness guarantee):

Location Field Declared/inferred read type Requiredness evidence
query advice_identifier not declared at read site not established

Observed authorization checks: can_read_account_in_facility. Helper/queryset evidence is included; this is not proof of complete security review.

Declared refusal/error evidence: PermissionDenied: Cannot read revenue-cycle records.

actions · GET

The six SET-12 actions, and the documented responsibility for each.

GET /api/v1/facility/{facility_external_id}/rcm/finance/actions/ — action actions. static contract extracted; runtime/permission/payload behavior review pending.

Path and deployment-context parameters:

Location Parameter Type Required
path facility_external_id router lookup string; semantic ID validation requires handler/schema review true

Directly observed request reads (these do not constitute a complete accepted-payload or requiredness guarantee):

Location Field Declared/inferred read type Requiredness evidence
query advice_identifier not declared at read site not established

Observed authorization checks: can_read_account_in_facility. Helper/queryset evidence is included; this is not proof of complete security review.

Declared refusal/error evidence: PermissionDenied: Cannot read revenue-cycle records.

balance_identities · GET

Both ledgers' conservation checks, rendered separately.

GET /api/v1/facility/{facility_external_id}/rcm/finance/{external_id}/balance-identities/ — action balance_identities. static contract extracted; runtime/permission/payload behavior review pending.

Path and deployment-context parameters:

Location Parameter Type Required
path facility_external_id router lookup string; semantic ID validation requires handler/schema review true
path external_id router lookup string; semantic ID validation requires handler/schema review true

Directly observed request reads (these do not constitute a complete accepted-payload or requiredness guarantee):

Location Field Declared/inferred read type Requiredness evidence
query advice_identifier not declared at read site not established

Observed authorization checks: can_read_account_in_facility. Helper/queryset evidence is included; this is not proof of complete security review.

Declared refusal/error evidence: PermissionDenied: Cannot read revenue-cycle records.

claim_identity · GET

The per-claim identity a biller reads before issuing anything.

GET /api/v1/facility/{facility_external_id}/rcm/finance/claim-identity/ — action claim_identity. static contract extracted; runtime/permission/payload behavior review pending.

Path and deployment-context parameters:

Location Parameter Type Required
path facility_external_id router lookup string; semantic ID validation requires handler/schema review true

Directly observed request reads (these do not constitute a complete accepted-payload or requiredness guarantee):

Location Field Declared/inferred read type Requiredness evidence
query claim not declared at read site not established
query advice_identifier not declared at read site not established

Observed authorization checks: can_read_account_in_facility. Helper/queryset evidence is included; this is not proof of complete security review.

Declared refusal/error evidence: PermissionDenied: Cannot read revenue-cycle records; ValidationError (dynamic detail; inspect source); ValidationError: claim is required.

variance · POST

Attribute the gap between a reported advice and a confirmed credit.

Each candidate explanation carries the sign configuration gives it, and whatever remains is reported as unexplained rather than absorbed.

POST /api/v1/facility/{facility_external_id}/rcm/finance/{external_id}/variance/ — action variance. static contract extracted; runtime/permission/payload behavior review pending.

Path and deployment-context parameters:

Location Parameter Type Required
path facility_external_id router lookup string; semantic ID validation requires handler/schema review true
path external_id router lookup string; semantic ID validation requires handler/schema review true

Directly observed request reads (these do not constitute a complete accepted-payload or requiredness guarantee):

Location Field Declared/inferred read type Requiredness evidence
body actual_bank_amount Decimal false
body actual_bank_amount_state not declared at read site not established
body components not declared at read site not established
query advice_identifier not declared at read site not established

Observed authorization checks: can_read_account_in_facility. Helper/queryset evidence is included; this is not proof of complete security review.

Declared refusal/error evidence: PermissionDenied: Cannot read revenue-cycle records.

reconcile · POST

Record one payment reconciliation and its allocations, exactly once.

An unmatched line goes to advice suspense with its losing candidates named. It is never attached to the nearest plausible claim: a wrong match is harder to find later than an unmatched line.

POST /api/v1/facility/{facility_external_id}/rcm/finance/reconcile/ — action reconcile. static contract extracted; runtime/permission/payload behavior review pending.

Path and deployment-context parameters:

Location Parameter Type Required
path facility_external_id router lookup string; semantic ID validation requires handler/schema review true

Directly observed request reads (these do not constitute a complete accepted-payload or requiredness guarantee):

Location Field Declared/inferred read type Requiredness evidence
body config_package not declared at read site not established
body advice_date date helper default; inspect declaration
body currency not declared at read site not established
body total_reported Decimal helper default; inspect declaration
body received_at timezone-aware datetime false
body raw_payload not declared at read site not established
body advice_identifier not declared at read site not established
body external_payment_identifier not declared at read site not established
body lines not declared at read site not established
query advice_identifier not declared at read site not established

Observed authorization checks: can_manage_rcm_claims_in_facility, can_read_account_in_facility. Helper/queryset evidence is included; this is not proof of complete security review.

Explicit response statuses in observed code: dynamic status. Other branches/framework exception handling may differ.

Declared refusal/error evidence: PermissionDenied: Cannot submit, adjudicate or settle claims; ValidationError: config_package_missing; A financial decision writes exactly one trace referencing its configuration package. None is published for this facility.; ValidationError: config_package_not_found; PermissionDenied: Cannot read revenue-cycle records.

cash_receipt · POST

Import a bank credit; treasury separately confirms return status.

POST /api/v1/facility/{facility_external_id}/rcm/finance/cash-receipt/ — action cash_receipt. static contract extracted; runtime/permission/payload behavior review pending.

Path and deployment-context parameters:

Location Parameter Type Required
path facility_external_id router lookup string; semantic ID validation requires handler/schema review true

Directly observed request reads (these do not constitute a complete accepted-payload or requiredness guarantee):

Location Field Declared/inferred read type Requiredness evidence
body bank_account not declared at read site direct indexing; validation may be upstream
body bank_reference not declared at read site not established
body statement_reference not declared at read site not established
body value_date date helper default; inspect declaration
body posting_date date helper default; inspect declaration
body amount Decimal helper default; inspect declaration
body currency not declared at read site not established
body counterparty_name not declared at read site not established
query advice_identifier not declared at read site not established

Observed authorization checks: can_manage_rcm_cash_in_facility, can_read_account_in_facility. Helper/queryset evidence is included; this is not proof of complete security review.

Explicit response statuses in observed code: 201. Other branches/framework exception handling may differ.

Declared refusal/error evidence: ValidationError: bank_account does not exist for this facility; PermissionDenied: Cannot manage bank cash; PermissionDenied: Cannot read revenue-cycle records.

confirm_bank_receipt · POST

Record treasury's audited bank-statement confirmation.

A payment notice cannot be sent while return status is unknown. The confirmation must name the exact statement line recorded at import.

POST /api/v1/facility/{facility_external_id}/rcm/finance/confirm-bank-receipt/ — action confirm_bank_receipt. static contract extracted; runtime/permission/payload behavior review pending.

Path and deployment-context parameters:

Location Parameter Type Required
path facility_external_id router lookup string; semantic ID validation requires handler/schema review true

Directly observed request reads (these do not constitute a complete accepted-payload or requiredness guarantee):

Location Field Declared/inferred read type Requiredness evidence
body bank_transaction not declared at read site not established
body statement_reference not declared at read site not established
query advice_identifier not declared at read site not established

Observed authorization checks: can_confirm_rcm_bank_receipt_in_facility, can_read_account_in_facility. Helper/queryset evidence is included; this is not proof of complete security review.

Declared refusal/error evidence: PermissionDenied: Cannot confirm a bank receipt; ValidationError: bank_transaction does not exist for this facility; PermissionDenied: Cannot read revenue-cycle records.

settle · POST

Distribute one bank transaction across advices, claims and suspense.

POST /api/v1/facility/{facility_external_id}/rcm/finance/settle/ — action settle. static contract extracted; runtime/permission/payload behavior review pending.

Path and deployment-context parameters:

Location Parameter Type Required
path facility_external_id router lookup string; semantic ID validation requires handler/schema review true

Directly observed request reads (these do not constitute a complete accepted-payload or requiredness guarantee):

Location Field Declared/inferred read type Requiredness evidence
body config_package not declared at read site not established
body bank_transaction not declared at read site not established
body approved_by reviewer reference helper default; inspect declaration
body allocations not declared at read site not established
query advice_identifier not declared at read site not established

Observed authorization checks: can_manage_rcm_cash_in_facility, can_read_account_in_facility. Helper/queryset evidence is included; this is not proof of complete security review.

Explicit response statuses in observed code: 201. Other branches/framework exception handling may differ.

Declared refusal/error evidence: PermissionDenied: Cannot manage bank cash; ValidationError: config_package_missing; A financial decision writes exactly one trace referencing its configuration package. None is published for this facility.; ValidationError: config_package_not_found; ValidationError: bank_transaction does not exist for this facility; PermissionDenied: Cannot read revenue-cycle records; ValidationError: advice does not exist for this facility; ValidationError (dynamic detail; inspect source); ValidationError: claim is required.

payment_notice · POST

Notify the payer — only after the money is in the provider's account.

A notice is a regulator-visible bank-reconciliation obligation. Sending one before the credit is confirmed asserts something untrue.

POST /api/v1/facility/{facility_external_id}/rcm/finance/payment-notice/ — action payment_notice. static contract extracted; runtime/permission/payload behavior review pending.

Path and deployment-context parameters:

Location Parameter Type Required
path facility_external_id router lookup string; semantic ID validation requires handler/schema review true

Directly observed request reads (these do not constitute a complete accepted-payload or requiredness guarantee):

Location Field Declared/inferred read type Requiredness evidence
body advice not declared at read site not established
body bank_transaction not declared at read site not established
body notice_identifier not declared at read site not established
body amount Decimal helper default; inspect declaration
body currency not declared at read site not established
body payment_received_on date helper default; inspect declaration
body submitted_at timezone-aware datetime false
body correlation_id not declared at read site not established
query advice_identifier not declared at read site not established

Observed authorization checks: can_manage_rcm_cash_in_facility, can_read_account_in_facility. Helper/queryset evidence is included; this is not proof of complete security review.

Explicit response statuses in observed code: dynamic status. Other branches/framework exception handling may differ.

Declared refusal/error evidence: PermissionDenied: Cannot manage bank cash; ValidationError: advice does not exist for this facility; ValidationError: bank_transaction does not exist for this facility; PermissionDenied: Cannot read revenue-cycle records.

reverse · POST

Post a compensating entry. Nothing is edited and nothing is deleted.

Idempotent by design: a repeated reversal reports already_reversed rather than posting a second one, so an unattended retry is harmless.

POST /api/v1/facility/{facility_external_id}/rcm/finance/reverse/ — action reverse. static contract extracted; runtime/permission/payload behavior review pending.

Path and deployment-context parameters:

Location Parameter Type Required
path facility_external_id router lookup string; semantic ID validation requires handler/schema review true

Directly observed request reads (these do not constitute a complete accepted-payload or requiredness guarantee):

Location Field Declared/inferred read type Requiredness evidence
body ledger not declared at read site not established
body reason not declared at read site not established
body config_package not declared at read site not established
body allocation not declared at read site not established
query advice_identifier not declared at read site not established

Observed authorization checks: can_manage_rcm_cash_in_facility, can_manage_rcm_claims_in_facility, can_read_account_in_facility. Helper/queryset evidence is included; this is not proof of complete security review.

Explicit response statuses in observed code: dynamic status. Other branches/framework exception handling may differ.

Declared refusal/error evidence: ValidationError: ledger must be 'advice' or 'cash'; ValidationError: allocation does not exist for this facility; ValidationError: reason is required; a reversal explains itself; ValidationError: config_package_missing; A financial decision writes exactly one trace referencing its configuration package. None is published for this facility.; ValidationError: config_package_not_found; PermissionDenied: Cannot manage bank cash; PermissionDenied: Cannot submit, adjudicate or settle claims; PermissionDenied: Cannot read revenue-cycle records.

returned_payment · POST

Flag a bank credit returned and reverse everything that rested on it.

POST /api/v1/facility/{facility_external_id}/rcm/finance/returned-payment/ — action returned_payment. static contract extracted; runtime/permission/payload behavior review pending.

Path and deployment-context parameters:

Location Parameter Type Required
path facility_external_id router lookup string; semantic ID validation requires handler/schema review true

Directly observed request reads (these do not constitute a complete accepted-payload or requiredness guarantee):

Location Field Declared/inferred read type Requiredness evidence
body bank_transaction not declared at read site not established
body config_package not declared at read site not established
body reason not declared at read site not established
query advice_identifier not declared at read site not established

Observed authorization checks: can_manage_rcm_cash_in_facility, can_read_account_in_facility. Helper/queryset evidence is included; this is not proof of complete security review.

Declared refusal/error evidence: PermissionDenied: Cannot manage bank cash; ValidationError: bank_transaction does not exist for this facility; ValidationError: config_package_missing; A financial decision writes exactly one trace referencing its configuration package. None is published for this facility.; ValidationError: config_package_not_found; PermissionDenied: Cannot read revenue-cycle records.

estimate · POST

Quote what may lawfully be asked of the patient — or refuse to quote.

SET-12's first action. FINANCE_ACTIONS publishes six and this screen has to answer for all six; without this one a client reading the catalogue finds five endpoints behind six names.

It posts nothing. The estimate is built by the same engine the liability surface uses, so the five mandatory facts (verification time, assumptions, unresolved benefits, expiry, certainty) are enforced by one rule rather than two, and it is returned beside the claim's balance identity so a quote is visibly a quote and not the identity itself.

POST /api/v1/facility/{facility_external_id}/rcm/finance/estimate/ — action estimate. static contract extracted; runtime/permission/payload behavior review pending.

Path and deployment-context parameters:

Location Parameter Type Required
path facility_external_id router lookup string; semantic ID validation requires handler/schema review true

Directly observed request reads (these do not constitute a complete accepted-payload or requiredness guarantee):

Location Field Declared/inferred read type Requiredness evidence
body claim not declared at read site not established
body amount Decimal helper default; inspect declaration
body currency not declared at read site not established
body payer_verified_at timezone-aware datetime false
body expires_on date false
body certainty not declared at read site not established
body assumptions not declared at read site not established
body unresolved_benefits not declared at read site not established
query advice_identifier not declared at read site not established

Observed authorization checks: can_read_account_in_facility. Helper/queryset evidence is included; this is not proof of complete security review.

Declared refusal/error evidence: PermissionDenied: Cannot read revenue-cycle records; ValidationError (dynamic detail; inspect source); ValidationError: claim is required.

issue · POST

Issue a patient balance — never the provider's contractual shortfall.

Only patient_receivable determinations with a named reviewer are billable. Contractual adjustments are returned alongside, explicitly not billable, and a request that asks to include them is refused rather than warned about.

POST /api/v1/facility/{facility_external_id}/rcm/finance/issue/ — action issue. static contract extracted; runtime/permission/payload behavior review pending.

Path and deployment-context parameters:

Location Parameter Type Required
path facility_external_id router lookup string; semantic ID validation requires handler/schema review true

Directly observed request reads (these do not constitute a complete accepted-payload or requiredness guarantee):

Location Field Declared/inferred read type Requiredness evidence
body include_contractual_adjustment not declared at read site not established
body claim not declared at read site not established
query advice_identifier not declared at read site not established

Observed authorization checks: can_manage_rcm_claims_in_facility, can_read_account_in_facility. Helper/queryset evidence is included; this is not proof of complete security review.

Declared refusal/error evidence: ValidationError: contractual_shortfall_not_billable; A provider contractual shortfall is never transferred to the patient. It cannot be included in an issued balance.; ValidationError: named_reviewer_required; Some amounts are marked patient_receivable with no named reviewer. Name one, or leave them with the payer.; PermissionDenied: Cannot submit, adjudicate or settle claims; ValidationError (dynamic detail; inspect source); ValidationError: claim is required; PermissionDenied: Cannot read revenue-cycle records.

credit · POST

The three-case insurer-rejection credit-note taxonomy, as data.

Gate CF-U20 is open: the taxonomy is held as configuration carrying its own evidence, not resolved in code. The response names the gate and the matching case rather than deciding the accounting treatment.

POST /api/v1/facility/{facility_external_id}/rcm/finance/credit/ — action credit. static contract extracted; runtime/permission/payload behavior review pending.

Path and deployment-context parameters:

Location Parameter Type Required
path facility_external_id router lookup string; semantic ID validation requires handler/schema review true

Directly observed request reads (these do not constitute a complete accepted-payload or requiredness guarantee):

Location Field Declared/inferred read type Requiredness evidence
body case_kind not declared at read site not established
query advice_identifier not declared at read site not established

Observed authorization checks: can_manage_rcm_claims_in_facility, can_read_account_in_facility. Helper/queryset evidence is included; this is not proof of complete security review.

Declared refusal/error evidence: PermissionDenied: Cannot submit, adjudicate or settle claims; PermissionDenied: Cannot read revenue-cycle records.

refund · POST

Refund a traceable credit. Maker-checker applies, always.

Report ch. 31 names refunds among the four categories that require an approver who is not the author, and the engine refuses a refund that cannot name its recipient, its reference and its approver.

POST /api/v1/facility/{facility_external_id}/rcm/finance/refund/ — action refund. static contract extracted; runtime/permission/payload behavior review pending.

Path and deployment-context parameters:

Location Parameter Type Required
path facility_external_id router lookup string; semantic ID validation requires handler/schema review true

Directly observed request reads (these do not constitute a complete accepted-payload or requiredness guarantee):

Location Field Declared/inferred read type Requiredness evidence
body approved_by reviewer reference helper default; inspect declaration
body approved_at timezone-aware datetime false
body amount Decimal helper default; inspect declaration
body currency not declared at read site not established
body recipient not declared at read site not established
body payment_reference not declared at read site not established
body received_on date false
body note not declared at read site not established
body patient not declared at read site not established
body claim not declared at read site not established
query advice_identifier not declared at read site not established

Observed authorization checks: can_manage_rcm_claims_in_facility, can_read_account_in_facility. Helper/queryset evidence is included; this is not proof of complete security review.

Explicit response statuses in observed code: 201. Other branches/framework exception handling may differ.

Declared refusal/error evidence: PermissionDenied: Cannot submit, adjudicate or settle claims; ValidationError: patient is required; ValidationError (dynamic detail; inspect source); ValidationError: claim is required; PermissionDenied: Cannot read revenue-cycle records.

aging · POST

Age and provision receivables per payer class. No blended total.

unclassified keeps its own cohort and takes no provision; it is a statement that the payer class has not been established, not a fifth bucket to be averaged away.

POST /api/v1/facility/{facility_external_id}/rcm/finance/aging/ — action aging. static contract extracted; runtime/permission/payload behavior review pending.

Path and deployment-context parameters:

Location Parameter Type Required
path facility_external_id router lookup string; semantic ID validation requires handler/schema review true

Directly observed request reads (these do not constitute a complete accepted-payload or requiredness guarantee):

Location Field Declared/inferred read type Requiredness evidence
body aging_policy not declared at read site not established
body currency not declared at read site not established
body config_package not declared at read site not established
body as_of date false
body receivables not declared at read site not established
query advice_identifier not declared at read site not established

Observed authorization checks: can_read_account_in_facility. Helper/queryset evidence is included; this is not proof of complete security review.

Declared refusal/error evidence: PermissionDenied: Cannot read revenue-cycle records; ValidationError: aging_policy_unresolved; No active receivable aging policy. The anchor basis and the buckets are configuration; they are never defaulted.; ValidationError: minor_units_unresolved; minor_units is a property of the currency being aged and is not defaulted. Send the minor units for this currency.; ValidationError (dynamic detail; inspect source).

suspense · GET

Unmatched advice lines and cash with no payment notice behind it.

Both are queues with owners, an aging policy and an escalation path, so the owning queues travel with the rows.

GET /api/v1/facility/{facility_external_id}/rcm/finance/suspense/ — action suspense. static contract extracted; runtime/permission/payload behavior review pending.

Path and deployment-context parameters:

Location Parameter Type Required
path facility_external_id router lookup string; semantic ID validation requires handler/schema review true

Directly observed request reads (these do not constitute a complete accepted-payload or requiredness guarantee):

Location Field Declared/inferred read type Requiredness evidence
query advice_identifier not declared at read site not established

Observed authorization checks: can_read_account_in_facility. Helper/queryset evidence is included; this is not proof of complete security review.

Declared refusal/error evidence: PermissionDenied: Cannot read revenue-cycle records.

accounting_manifest · POST

Freeze the exact remittance/cash ledger rows handed to accounting.

This is the controlled boundary before an ERP/GL connector. It does not invent a journal inside RCM and it does not net advice with cash; it signs the rows, totals and source identifiers that the accounting interface is allowed to consume exactly once.

POST /api/v1/facility/{facility_external_id}/rcm/finance/accounting-manifest/ — action accounting_manifest. static contract extracted; runtime/permission/payload behavior review pending.

Path and deployment-context parameters:

Location Parameter Type Required
path facility_external_id router lookup string; semantic ID validation requires handler/schema review true

Directly observed request reads (these do not constitute a complete accepted-payload or requiredness guarantee):

Location Field Declared/inferred read type Requiredness evidence
body config_package not declared at read site not established
body ledger_kind not declared at read site not established
body period_start date helper default; inspect declaration
body period_end date helper default; inspect declaration
body accounting_system not declared at read site not established
body external_batch_reference not declared at read site not established
query advice_identifier not declared at read site not established

Observed authorization checks: can_manage_rcm_cash_in_facility, can_read_account_in_facility. Helper/queryset evidence is included; this is not proof of complete security review.

Explicit response statuses in observed code: dynamic status. Other branches/framework exception handling may differ.

Declared refusal/error evidence: PermissionDenied: Cannot manage bank cash; ValidationError: config_package_missing; A financial decision writes exactly one trace referencing its configuration package. None is published for this facility.; ValidationError: config_package_not_found; PermissionDenied: Cannot read revenue-cycle records.

accounting_export_payload · POST

Prepare the deterministic payload an ERP connector may post.

POST /api/v1/facility/{facility_external_id}/rcm/finance/accounting-export-payload/ — action accounting_export_payload. static contract extracted; runtime/permission/payload behavior review pending.

Path and deployment-context parameters:

Location Parameter Type Required
path facility_external_id router lookup string; semantic ID validation requires handler/schema review true

Directly observed request reads (these do not constitute a complete accepted-payload or requiredness guarantee):

Location Field Declared/inferred read type Requiredness evidence
body manifest not declared at read site not established
query advice_identifier not declared at read site not established

Observed authorization checks: can_manage_rcm_cash_in_facility, can_read_account_in_facility. Helper/queryset evidence is included; this is not proof of complete security review.

Explicit response statuses in observed code: dynamic status. Other branches/framework exception handling may differ.

Declared refusal/error evidence: PermissionDenied: Cannot manage bank cash; ValidationError: manifest is required; ValidationError: Unknown accounting manifest for this facility; PermissionDenied: Cannot read revenue-cycle records.

accounting_export_ack · POST

Record the downstream ERP/GL response for a prepared payload.

POST /api/v1/facility/{facility_external_id}/rcm/finance/accounting-export-ack/ — action accounting_export_ack. static contract extracted; runtime/permission/payload behavior review pending.

Path and deployment-context parameters:

Location Parameter Type Required
path facility_external_id router lookup string; semantic ID validation requires handler/schema review true

Directly observed request reads (these do not constitute a complete accepted-payload or requiredness guarantee):

Location Field Declared/inferred read type Requiredness evidence
body idempotency_key not declared at read site not established
body status not declared at read site not established
body external_journal_reference not declared at read site not established
body external_response_reference not declared at read site not established
body response_payload not declared at read site not established
query advice_identifier not declared at read site not established

Observed authorization checks: can_manage_rcm_cash_in_facility, can_read_account_in_facility. Helper/queryset evidence is included; this is not proof of complete security review.

Explicit response statuses in observed code: 200. Other branches/framework exception handling may differ.

Declared refusal/error evidence: PermissionDenied: Cannot manage bank cash; PermissionDenied: Cannot read revenue-cycle records.

accounting_close_readiness · GET

Tell finance exactly why a settlement period can or cannot close.

GET /api/v1/facility/{facility_external_id}/rcm/finance/accounting-close-readiness/ — action accounting_close_readiness. static contract extracted; runtime/permission/payload behavior review pending.

Path and deployment-context parameters:

Location Parameter Type Required
path facility_external_id router lookup string; semantic ID validation requires handler/schema review true

Directly observed request reads (these do not constitute a complete accepted-payload or requiredness guarantee):

Location Field Declared/inferred read type Requiredness evidence
query period_start date helper default; inspect declaration
query period_end date helper default; inspect declaration
query accounting_system not declared at read site not established
query ledger_kind not declared at read site not established
query advice_identifier not declared at read site not established

Observed authorization checks: can_manage_rcm_cash_in_facility, can_read_account_in_facility. Helper/queryset evidence is included; this is not proof of complete security review.

Declared refusal/error evidence: PermissionDenied: Cannot manage bank cash; PermissionDenied: Cannot read revenue-cycle records.

accounting_close · POST

Create the immutable accounting period-close certificate.

POST /api/v1/facility/{facility_external_id}/rcm/finance/accounting-close/ — action accounting_close. static contract extracted; runtime/permission/payload behavior review pending.

Path and deployment-context parameters:

Location Parameter Type Required
path facility_external_id router lookup string; semantic ID validation requires handler/schema review true

Directly observed request reads (these do not constitute a complete accepted-payload or requiredness guarantee):

Location Field Declared/inferred read type Requiredness evidence
body period_start date helper default; inspect declaration
body period_end date helper default; inspect declaration
body accounting_system not declared at read site not established
body ledger_kind not declared at read site not established
query advice_identifier not declared at read site not established

Observed authorization checks: can_manage_rcm_cash_in_facility, can_read_account_in_facility. Helper/queryset evidence is included; this is not proof of complete security review.

Explicit response statuses in observed code: dynamic status. Other branches/framework exception handling may differ.

Declared refusal/error evidence: PermissionDenied: Cannot manage bank cash; PermissionDenied: Cannot read revenue-cycle records.

bank_accounts · GET

Settlement accounts, masked, with their dual-control state.

GET /api/v1/facility/{facility_external_id}/rcm/finance/bank-accounts/ — action bank_accounts. static contract extracted; runtime/permission/payload behavior review pending.

Path and deployment-context parameters:

Location Parameter Type Required
path facility_external_id router lookup string; semantic ID validation requires handler/schema review true

Directly observed request reads (these do not constitute a complete accepted-payload or requiredness guarantee):

Location Field Declared/inferred read type Requiredness evidence
query advice_identifier not declared at read site not established

Observed authorization checks: can_read_account_in_facility. Helper/queryset evidence is included; this is not proof of complete security review.

Declared refusal/error evidence: PermissionDenied: Cannot read revenue-cycle records.

bank_account_change · POST

Record a bank-detail change: dual control plus independent verification.

Three distinct people, and an immutable review item as the output. The service writes the audit event; this endpoint exists so the three cannot be collapsed into "the finance manager ticked it".

POST /api/v1/facility/{facility_external_id}/rcm/finance/bank-account-change/ — action bank_account_change. static contract extracted; runtime/permission/payload behavior review pending.

Path and deployment-context parameters:

Location Parameter Type Required
path facility_external_id router lookup string; semantic ID validation requires handler/schema review true

Directly observed request reads (these do not constitute a complete accepted-payload or requiredness guarantee):

Location Field Declared/inferred read type Requiredness evidence
body change_approved_by reviewer reference helper default; inspect declaration
body verified_by reviewer reference helper default; inspect declaration
body verification_note not declared at read site not established
body actor_role not declared at read site not established
body bank_account not declared at read site not established
query advice_identifier not declared at read site not established

Observed authorization checks: can_manage_rcm_claims_in_facility, can_read_account_in_facility. Helper/queryset evidence is included; this is not proof of complete security review.

Explicit response statuses in observed code: 201. Other branches/framework exception handling may differ.

Declared refusal/error evidence: ValidationError: bank_account does not exist for this facility; ValidationError: verification_note is required; the verification is written down.; PermissionDenied: Cannot submit, adjudicate or settle claims; PermissionDenied: Cannot read revenue-cycle records.

Integration review checklist

Confirm the installed route and full schema; review authentication, organization/facility scoping, all accepted fields, value-state and date/time semantics, idempotency, pagination, response/exception branches and the allowed correction/reversal workflow. Test positive and negative cases with synthetic data. This source reference does not establish external certification or replace an illustrated user procedure.

Pinned source evidence

Links require access to the private source repository.