---
id: CAP-ACC-CLS-006
title: Review payment reconciliation before closing
feature: FEAT-ACC-CLS-02
product_area: accounting
module: close
revision: 1
status: draft
product_intent: confirmed
implementation_evidence: partially-observed
supersedes:
  - >-
    CAP-ACC-REC-016 (react-console acceptance inventory, the reconciliation and
    bank verification checks)
  - >-
    CAP-ACC-REC-025 (react-console acceptance inventory, the bank-verification
    half)
  - RUL-ACC-REC-069
  - RUL-ACC-REC-070
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
intent_sources:
  - >-
    services-accounting:docs/milestones/plans/ACCT-M4-plan.md#4a row 73 (class
    A: payments reconciled)
  - >-
    services-accounting:docs/fiscal-close/README.md#8 R5 (decided by Andrew
    2026-10-16: bank verification required to close, per workspace, off by
    default)
purpose: >-
  The controller uses Reconciliation’s assessment to understand payment work and
  bank-verification concerns before closing.
outcomes:
  - Reconciliation blockers remain part of the closing decision.
  - >-
    The customer’s bank-verification policy determines whether unmatched
    deposits prevent closure.
concepts:
  - CON-ACC-CLS-002
actors:
  - ACT-ACC-015
  - ACT-ACC-006
surfaces:
  - console
  - api
preconditions: []
postconditions: []
permissions:
  - key: accounting.fiscal-periods.read
    where_checked: api
    scope: tenant
rules:
  - id: BR-CAP-ACC-CLS-006-01
    proved_by: [ATS-ACC-CLS-006-01, ATS-ACC-CLS-006-05, ATS-ACC-CLS-006-08, TST-ACC-CLS-010, TST-ACC-CLS-045]
    statement: >-
      The payment check preserves Reconciliation’s findings, blocking for
      blockers, warning for warnings alone and passing when neither exists.
    kind: validation
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#is
      blocked by a blocker, its findings the items unchanged, blockers first
    origin: >-
      services-accounting:docs/milestones/plans/ACCT-M4-plan.md#4a row 73 (class
      A: payments reconciled)
  - id: BR-CAP-ACC-CLS-006-02
    proved_by: [ATS-ACC-CLS-006-01, TST-ACC-CLS-045]
    statement: >-
      Funds in transit remain a timing difference and contribute an in-transit
      amount for each currency rather than a blocker.
    kind: policy
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#warns,
      never blocks, with warnings alone (funds in transit are a timing
      difference)
    origin: >-
      fiscal-close design §4 (reconciliation boundary, accepted with
      reconciliation by Andrew 2026-10-16)
  - id: BR-CAP-ACC-CLS-006-03
    proved_by: [ATS-ACC-CLS-006-02, TST-ACC-CLS-045]
    statement: >-
      An unavailable reconciliation assessment produces an error check and an
      unavailable reconciliation section.
    kind: policy
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#is
      unavailable, not ready and empty when the assessment could not run
    origin: none
  - id: BR-CAP-ACC-CLS-006-04
    proved_by: [ATS-ACC-CLS-006-03, TST-ACC-CLS-018, TST-ACC-CLS-025, TST-ACC-CLS-037]
    statement: >-
      Bank verification defaults to advisory and warns about finalized payouts
      that remain unverified against the bank.
    kind: policy
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#warns,
      advisory, for unverified payouts when the tenant does not require
      verification
    origin: >-
      services-accounting:docs/fiscal-close/README.md#8 R5 (decided by Andrew
      2026-10-16)
  - id: BR-CAP-ACC-CLS-006-05
    proved_by: [ATS-ACC-CLS-006-03, ATS-ACC-CLS-006-06, ATS-ACC-CLS-006-07, TST-ACC-CLS-018, TST-ACC-CLS-025, TST-ACC-CLS-037]
    statement: >-
      With the workspace’s verification requirement enabled, unverified payouts
      become required blockers; an unset policy uses the advisory default.
    kind: policy
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#blocks,
      required, for an unverified payout when the tenant requires verification
    origin: >-
      services-accounting:docs/fiscal-close/README.md#8 R5 (decided by Andrew
      2026-10-16)
  - id: BR-CAP-ACC-CLS-006-06
    proved_by: [ATS-ACC-CLS-006-06]
    statement: >-
      The product should let an Accounting administrator change the workspace’s
      bank-verification requirement.
    kind: permission
    enforced_at: []
    must_prove: true
    provenance: documented
    source: 'services-accounting:docs/fiscal-close/README.md#R5'
    origin: >-
      services-accounting:docs/fiscal-close/README.md#8 R5 (decided by Andrew
      2026-10-16: a per-workspace setting)
    examples:
      negative: >-
        The stored requirement currently has no customer-facing configuration
        control.
  - id: BR-CAP-ACC-CLS-006-07
    proved_by: [ATS-ACC-CLS-006-04, ATS-ACC-CLS-006-05, TST-ACC-CLS-028, TST-ACC-CLS-045]
    statement: >-
      The reconciliation section presents payment-state totals, accepted
      exceptions and their participants, findings and named merchant-account
      clearing lines, with its display state derived from the findings.
    kind: policy
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#names
      the display state from the findings, worst first
    origin: none
  - id: BR-CAP-ACC-CLS-006-08
    proved_by: []
    statement: >-
      Pending settlements have no separate item list in the close response and
      appear through reconciliation warnings.
    kind: policy
    enforced_at:
      - service
    must_prove: false
    provenance: observed
    source: >-
      services-accounting:modules/fiscal-close/services/readiness/reconciliation-summary.ts:reconciliationSummaryOf
    origin: none
scenarios:
  - id: SC-CAP-ACC-CLS-006-01
    given: A September payout has not reached finalized reconciliation.
    when: Staff evaluate the month.
    then: >-
      The payment check preserves the reconciliation blocker and the panel calls
      for attention.
    provenance: test
    source: >-
      services-accounting:modules/fiscal-close/tests/integration/services/readiness/evaluate-readiness.integration.spec.js#shows
      the reconciliation section as requiring attention
  - id: SC-CAP-ACC-CLS-006-02
    given: A reconciled September deposit lacks bank verification.
    when: Readiness is evaluated under advisory and required verification policies.
    then: The check warns under the default and blocks under the required policy.
    provenance: test
    source: >-
      services-accounting:modules/fiscal-close/tests/integration/services/readiness/evaluate-readiness.integration.spec.js#blocks,
      required, when the tenant requires verification
edge_cases: []
constraints:
  - >-
    Reconciliation owns the assessment; the close consumes its findings without
    recomputing them.
depends_on:
  - CAP-ACC-CLS-004
related:
  - CAP-ACC-CLS-003
  - CAP-ACC-CLS-014
journeys:
  - JNY-ACC-CLS-002
open_questions:
  - OQ-ACC-CLS-004
evidence:
  - >-
    services-accounting examination inputs:
    modules/fiscal-close/services/readiness/payment-reconciliation.ts,
    bank-verification.ts, reconciliation-summary.ts,
    services/persistence/close-policies.ts, merchant-account-names.ts;
    modules/books/services/persistence/settings.ts (toSettings leaves the
    setting off the API) and
    modules/reconciliation/services/close-readiness/assess-period.ts, read to
    name the dependencies; tests unit/readiness/reconciliation-checks.spec.js,
    integration/services/readiness/evaluate-readiness.integration.spec.js (bank
    verification), persistence/close-policies.queries.integration.spec.js,
    db/fiscal-close.table.integration.spec.js (accounting.settings);
    docs/fiscal-close/README.md §4, §8;
    docs/fiscal-close/reconciliation-interface.md.
  - >-
    react-console examination inputs:
    components/accounting/close/reconciliation-panel.tsx,
    details/reconciliation-detail.tsx;
    acceptance/accounting/journeys/reconciliation-close/ACT-ACC-0624.json
    (blocked: the setting cannot be set).
controls: [TC-IAM-001, TC-IAM-002, TC-IAM-004, TC-IAM-005, TC-AZ-001, TC-AZ-002, TC-AZ-003, TC-AZ-004, TC-AZ-006, TC-TEN-001, TC-TEN-002, TC-TEN-003, TC-TEN-004, TC-LOG-002, TC-LOG-003, TC-LOG-004, TC-LOG-005, TC-PI-001, TC-PI-005]
exercised_by: [FAS-ACC-CLS-02-02, FAS-ACC-CLS-02-04, FAS-ACC-CLS-02-05]
suites: [TST-ACC-CLS-010, TST-ACC-CLS-018, TST-ACC-CLS-025, TST-ACC-CLS-028, TST-ACC-CLS-037, TST-ACC-CLS-045]
---

# Review payment reconciliation before closing

## Purpose

The controller uses Reconciliation’s assessment to understand payment work and bank-verification concerns before closing.

## How It Works

Readiness requests the selected month’s assessment from Reconciliation. It preserves the findings rather than making an independent reconciliation judgment. Blockers prevent closing, while warnings call for review. Funds in transit are displayed by currency as timing differences. When the assessment is unavailable, the screen reports that condition rather than a successful check. Bank verification has a separate policy-dependent requirement. Its default is advisory, and a stored requirement makes unmatched finalized payouts block. No customer-facing setting currently exposes that choice. The product should add an administrator control for the approved workspace policy. The adjacent panel gives staff the payment totals, exceptions and clearing context behind the findings.

## Relationships

- Readiness calculates the combined verdict from these results.
- Late postings enter this review through Reconciliation’s assessment.
- The close record preserves the reconciliation information captured by execution.
