---
id: ATS-ACC-CLS-006
scope: CAP-ACC-CLS-006
product_area: accounting
module: close
revision: 1
status: proposed
approved_by: null
approved_at: null
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
scenarios:
  - id: ATS-ACC-CLS-006-01
    title: Preserve reconciliation findings and timing figures
    level: unit
    proves:
      - BR-CAP-ACC-CLS-006-01
      - BR-CAP-ACC-CLS-006-02
      - INV-DOM-ACC-CLS-002-07
    preconditions: 'Assessments contain blockers, warnings or neither.'
    steps: Build the payment check for each assessment.
    expected: >-
      Blockers precede warnings, warnings alone permit review, and transit
      figures remain grouped by currency.
    negative: true
    data_needs: Assessment variants with clearing amounts.
    bound_to:
      - >-
        services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#is
        blocked by a blocker, its findings the items unchanged, blockers first
      - >-
        services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#shows
        the blockers, the warnings and reconciliation’s in-transit money as its
        figures
      - >-
        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)
      - >-
        services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#passes
        with neither
      - TST-ACC-CLS-045
    provenance: test
    source: >-
      services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#payment_reconciliation
    category: rule
  - id: ATS-ACC-CLS-006-02
    title: Report unavailable reconciliation
    level: unit
    proves:
      - BR-CAP-ACC-CLS-006-03
    preconditions: The assessment cannot be read.
    steps: Build the summary and the error check.
    expected: The section is unavailable and the check does not pass.
    negative: true
    data_needs: A failed assessment read.
    bound_to:
      - >-
        services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#is
        unavailable, not ready and empty when the assessment could not run
      - TST-ACC-CLS-045
    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
    category: failure
  - id: ATS-ACC-CLS-006-03
    title: Apply the workspace verification policy
    level: api
    proves:
      - BR-CAP-ACC-CLS-006-04
      - BR-CAP-ACC-CLS-006-05
      - INV-DOM-ACC-CLS-002-08
    preconditions: A finalized payout remains bank-unverified.
    steps: >-
      Evaluate with verification optional and required, then read an unset
      policy.
    expected: >-
      The optional result warns, the required result blocks and the unset policy
      remains optional.
    negative: true
    data_needs: One unverified payout and policy variants.
    bound_to:
      - >-
        services-accounting:modules/fiscal-close/tests/integration/services/readiness/evaluate-readiness.integration.spec.js#warns,
        advisory, about the unverified payout when the tenant does not require
        verification
      - >-
        services-accounting:modules/fiscal-close/tests/integration/services/readiness/evaluate-readiness.integration.spec.js#blocks,
        required, when the tenant requires verification
      - >-
        services-accounting:modules/fiscal-close/tests/integration/services/persistence/close-policies.queries.integration.spec.js#answers
        the default for a tenant with no settings, whatever another tenant set
      - >-
        services-accounting:modules/fiscal-close/tests/integration/db/fiscal-close.table.integration.spec.js#does
        not require bank-verified payouts to close a period when the settings do
        not say
      - TST-ACC-CLS-037
      - TST-ACC-CLS-025
      - TST-ACC-CLS-018
    provenance: test
    source: >-
      services-accounting:modules/fiscal-close/tests/integration/services/readiness/evaluate-readiness.integration.spec.js#bank
      verification
    category: rule
  - id: ATS-ACC-CLS-006-04
    title: Retain reconciliation context in the panel
    level: unit
    proves:
      - BR-CAP-ACC-CLS-006-07
    preconditions: >-
      An assessment includes state totals, exceptions, clearing lines and
      findings.
    steps: Map it into the close summary.
    expected: >-
      Totals and exception participants are retained, merchant lines are named
      and findings determine display state.
    negative: false
    data_needs: A populated assessment and merchant-name map.
    bound_to:
      - >-
        services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#maps
        each payment state to a bucket of the same name, its amount flattened
      - >-
        services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#maps
        an accepted exception to an approved one: requested and approved by and
        at
      - >-
        services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#carries
        the clearing lines with the merchant account’s name
      - >-
        services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#names
        the display state from the findings, worst first
      - >-
        services-accounting:modules/fiscal-close/tests/integration/services/persistence/merchant-account-names.queries.integration.spec.js#answers
        each id’s name, an unknown id absent
      - TST-ACC-CLS-045
      - TST-ACC-CLS-028
    provenance: test
    source: >-
      services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#the
      reconciliation section
    category: rule
  - id: ATS-ACC-CLS-006-05
    title: Retain payment evidence and direct late effects forward
    category: interaction
    level: api
    proves:
      - BR-CAP-ACC-CLS-006-01
      - BR-CAP-ACC-CLS-006-07
    preconditions: An ended month has accepted payment exceptions and a following open month.
    steps: >-
      Review payment findings; close the month, read its captured payment
      context, then finalize an eligible late reconciliation effect.
    expected: >-
      Retained context describes the evaluated close; the late effect uses the
      following open month and cannot rewrite the captured evidence.
    negative: false
    data_needs: An ended month has accepted payment exceptions and a following open month.
    bound_to: []
    provenance: proposed
    source:
      - >-
        rhythm-v2-docs:specs/accounting/close/design/workflows/WF-ACC-CLS-001-close-a-month.md#What
        It Does
      - >-
        services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#is
        blocked by a blocker, its findings the items unchanged, blockers first
      - >-
        services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#names
        the display state from the findings, worst first
    exercises:
      - CAP-ACC-CLS-006
      - CAP-ACC-CLS-003
      - CAP-ACC-CLS-014
      - CAP-ACC-CLS-004
      - CAP-ACC-CLS-005
      - CAP-ACC-CLS-007
      - CAP-ACC-CLS-010
    workflows:
      - WF-ACC-CLS-005
  - id: ATS-ACC-CLS-006-06
    title: Change bank-verification policy only as an administrator
    category: permission
    level: browser
    proves:
      - BR-CAP-ACC-CLS-006-05
      - BR-CAP-ACC-CLS-006-06
    preconditions: >-
      An administrator and a reader share a workspace containing an unverified
      payout.
    steps: >-
      The product should provide a setting action; try it as each caller and
      reread readiness after the administrator enables verification.
    expected: >-
      The product should permit the administrator, refuse the reader and show
      the required verification result after the authorized change.
    negative: true
    data_needs: >-
      An administrator and a reader share a workspace containing an unverified
      payout.
    bound_to: []
    provenance: proposed
    source: 'services-accounting:docs/fiscal-close/README.md#R5'
    finding: FND-ACC-CLS-002
  - id: ATS-ACC-CLS-006-07
    title: Use the advisory default without borrowing another workspace’s policy
    category: boundary
    level: api
    proves:
      - BR-CAP-ACC-CLS-006-05
    preconditions: One workspace has no settings while another requires verification.
    steps: Read the verification policy for the workspace without settings.
    expected: >-
      The unset workspace receives its default rather than the other workspace’s
      stored requirement.
    negative: false
    data_needs: One workspace has no settings while another requires verification.
    bound_to:
      - TST-ACC-CLS-025
      - >-
        services-accounting:modules/fiscal-close/tests/integration/services/persistence/close-policies.queries.integration.spec.js#answers
        the default for a tenant with no settings, whatever another tenant set
    provenance: test
    source: >-
      services-accounting:modules/fiscal-close/tests/integration/services/persistence/close-policies.queries.integration.spec.js#answers
      the default for a tenant with no settings, whatever another tenant set
  - id: ATS-ACC-CLS-006-08
    title: Carry incomplete payment posting into the overall close refusal
    category: interaction
    level: browser
    proves:
      - BR-CAP-ACC-CLS-006-01
      - BR-CAP-ACC-CLS-004-02
      - BR-CAP-ACC-CLS-008-10
    exercises:
      - CAP-ACC-CLS-006
      - CAP-ACC-CLS-004
      - CAP-ACC-CLS-008
    preconditions: >-
      A clean ended month receives a finalized payout whose reconciliation
      posting remains incomplete.
    steps: >-
      Read the changed payment findings and monthly verdict, then submit a
      direct close and wait for its revalidation.
    expected: >-
      Incomplete-posting findings block the monthly review; execution fails
      revalidation and returns the month to open.
    negative: true
    data_needs: >-
      The browser journey’s own payout and unit, with reconciliation posting
      incomplete.
    bound_to:
      - TST-ACC-CLS-010
      - >-
        react-console:acceptance/accounting/playwright/journeys/reconciliation-close/ACT-ACC-0626.spec.ts#ACT-ACC-0626
    provenance: test
    source: >-
      react-console:acceptance/accounting/playwright/journeys/reconciliation-close/ACT-ACC-0626.spec.ts#ACT-ACC-0626
evidence:
  - >-
    services-accounting examination inputs: the bound unit and integration
    files.
  - >-
    Testing back-fill: pinned executable files are inspected; no backend or
    browser result is claimed.
coverage:
  rule: covered
  transition: not-applicable
  validation: 'gap: FND-ACC-CLS-062'
  permission: covered
  edge: 'gap: FND-ACC-CLS-062'
  failure: covered
  boundary: covered
  concurrency: 'gap: FND-ACC-CLS-062'
  invariant: 'gap: FND-ACC-CLS-062'
  interaction: covered
coverage_notes:
  rule:
    scenarios:
      - ATS-ACC-CLS-006-01
      - ATS-ACC-CLS-006-03
      - ATS-ACC-CLS-006-04
    provenance: inferred
    source:
      - ATS-ACC-CLS-006-01
      - ATS-ACC-CLS-006-03
      - ATS-ACC-CLS-006-04
    note: Specified coverage does not establish that all variants execute or pass.
  transition:
    reason: >-
      This capability evaluates or reads state; it defines no independent
      persisted lifecycle transition.
    provenance: inferred
    source:
      - CAP-ACC-CLS-006
      - WF-ACC-CLS-005
  validation:
    reason: >-
      The administrator setting is absent; policy changes during evaluation and
      retention of exception participants through finalization need complete
      proof.
    provenance: unknown
    source: FND-ACC-CLS-062
  permission:
    scenarios:
      - ATS-ACC-CLS-006-06
    provenance: inferred
    source:
      - ATS-ACC-CLS-006-06
    note: Specified coverage does not establish that all variants execute or pass.
  edge:
    reason: >-
      The administrator setting is absent; policy changes during evaluation and
      retention of exception participants through finalization need complete
      proof.
    provenance: unknown
    source: FND-ACC-CLS-062
  failure:
    scenarios:
      - ATS-ACC-CLS-006-02
    provenance: inferred
    source:
      - ATS-ACC-CLS-006-02
    note: Specified coverage does not establish that all variants execute or pass.
  boundary:
    scenarios:
      - ATS-ACC-CLS-006-07
    provenance: inferred
    source:
      - ATS-ACC-CLS-006-07
    note: Specified coverage does not establish that all variants execute or pass.
  concurrency:
    reason: >-
      The administrator setting is absent; policy changes during evaluation and
      retention of exception participants through finalization need complete
      proof.
    provenance: unknown
    source: FND-ACC-CLS-062
  invariant:
    reason: >-
      The administrator setting is absent; policy changes during evaluation and
      retention of exception participants through finalization need complete
      proof.
    provenance: unknown
    source: FND-ACC-CLS-062
  interaction:
    scenarios:
      - ATS-ACC-CLS-006-05
      - ATS-ACC-CLS-006-08
    provenance: inferred
    source:
      - ATS-ACC-CLS-006-05
      - ATS-ACC-CLS-006-08
    note: Specified coverage does not establish that all variants execute or pass.
design_coverage:
  objects:
    - DOM-ACC-CLS-002
  invariants:
    - id: INV-DOM-ACC-CLS-002-01
      scenarios: []
      gap: FND-ACC-CLS-062
      provenance: unknown
      source: FND-ACC-CLS-062
    - id: INV-DOM-ACC-CLS-002-02
      scenarios: []
      gap: FND-ACC-CLS-062
      provenance: unknown
      source: FND-ACC-CLS-062
    - id: INV-DOM-ACC-CLS-002-03
      scenarios: []
      gap: FND-ACC-CLS-062
      provenance: unknown
      source: FND-ACC-CLS-062
    - id: INV-DOM-ACC-CLS-002-04
      scenarios: []
      gap: FND-ACC-CLS-062
      provenance: unknown
      source: FND-ACC-CLS-062
    - id: INV-DOM-ACC-CLS-002-05
      scenarios: []
      gap: FND-ACC-CLS-062
      provenance: unknown
      source: FND-ACC-CLS-062
    - id: INV-DOM-ACC-CLS-002-06
      scenarios: []
      gap: FND-ACC-CLS-062
      provenance: unknown
      source: FND-ACC-CLS-062
    - id: INV-DOM-ACC-CLS-002-07
      scenarios:
        - ATS-ACC-CLS-006-01
      provenance: test
      source:
        - >-
          services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#payment_reconciliation
    - id: INV-DOM-ACC-CLS-002-08
      scenarios:
        - ATS-ACC-CLS-006-03
      provenance: test
      source:
        - >-
          services-accounting:modules/fiscal-close/tests/integration/services/readiness/evaluate-readiness.integration.spec.js#bank
          verification
    - id: INV-DOM-ACC-CLS-002-09
      scenarios: []
      gap: FND-ACC-CLS-062
      provenance: unknown
      source: FND-ACC-CLS-062
    - id: INV-DOM-ACC-CLS-002-10
      scenarios: []
      gap: FND-ACC-CLS-062
      provenance: unknown
      source: FND-ACC-CLS-062
  permissions:
    - key: accounting.fiscal-periods.read
      where_checked: api
      gap: FND-ACC-CLS-062
      provenance: unknown
      source: FND-ACC-CLS-062
      note: >-
        Existing permission scenarios cover the named cases; complete grant and
        surface variants need qualification.
  workflows:
    - WF-ACC-CLS-005
  state_models: []
  transitions: []
  interactions:
    - with: CAP-ACC-CLS-003
      scenario: ATS-ACC-CLS-006-05
      provenance: proposed
      source:
        - >-
          rhythm-v2-docs:specs/accounting/close/design/workflows/WF-ACC-CLS-001-close-a-month.md#What
          It Does
        - >-
          services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#is
          blocked by a blocker, its findings the items unchanged, blockers first
        - >-
          services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#names
          the display state from the findings, worst first
    - with: CAP-ACC-CLS-014
      scenario: ATS-ACC-CLS-006-05
      provenance: proposed
      source:
        - >-
          rhythm-v2-docs:specs/accounting/close/design/workflows/WF-ACC-CLS-001-close-a-month.md#What
          It Does
        - >-
          services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#is
          blocked by a blocker, its findings the items unchanged, blockers first
        - >-
          services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#names
          the display state from the findings, worst first
    - with: CAP-ACC-CLS-004
      scenario: ATS-ACC-CLS-006-05
      provenance: proposed
      source:
        - >-
          rhythm-v2-docs:specs/accounting/close/design/workflows/WF-ACC-CLS-001-close-a-month.md#What
          It Does
        - >-
          services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#is
          blocked by a blocker, its findings the items unchanged, blockers first
        - >-
          services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#names
          the display state from the findings, worst first
    - with: CAP-ACC-CLS-005
      scenario: ATS-ACC-CLS-006-05
      provenance: proposed
      source:
        - >-
          rhythm-v2-docs:specs/accounting/close/design/workflows/WF-ACC-CLS-001-close-a-month.md#What
          It Does
        - >-
          services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#is
          blocked by a blocker, its findings the items unchanged, blockers first
        - >-
          services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#names
          the display state from the findings, worst first
    - with: CAP-ACC-CLS-007
      scenario: ATS-ACC-CLS-006-05
      provenance: proposed
      source:
        - >-
          rhythm-v2-docs:specs/accounting/close/design/workflows/WF-ACC-CLS-001-close-a-month.md#What
          It Does
        - >-
          services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#is
          blocked by a blocker, its findings the items unchanged, blockers first
        - >-
          services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#names
          the display state from the findings, worst first
    - with: CAP-ACC-CLS-010
      scenario: ATS-ACC-CLS-006-05
      provenance: proposed
      source:
        - >-
          rhythm-v2-docs:specs/accounting/close/design/workflows/WF-ACC-CLS-001-close-a-month.md#What
          It Does
        - >-
          services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#is
          blocked by a blocker, its findings the items unchanged, blockers first
        - >-
          services-accounting:modules/fiscal-close/tests/unit/readiness/reconciliation-checks.spec.js#names
          the display state from the findings, worst first
---
# Review payment reconciliation before closing: Capability Test Specification

## Coverage

The table maps each required rule to its specified cases or an explicit finding. Category coverage describes the specification; executable bindings and recorded run results establish different kinds of evidence. Proposed cases remain unqualified.

| Rule | Scenarios or Finding |
|---|---|
| `BR-CAP-ACC-CLS-006-01` | `ATS-ACC-CLS-006-01`, `ATS-ACC-CLS-006-05`, `ATS-ACC-CLS-006-08` |
| `BR-CAP-ACC-CLS-006-02` | `ATS-ACC-CLS-006-01` |
| `BR-CAP-ACC-CLS-006-03` | `ATS-ACC-CLS-006-02` |
| `BR-CAP-ACC-CLS-006-04` | `ATS-ACC-CLS-006-03` |
| `BR-CAP-ACC-CLS-006-05` | `ATS-ACC-CLS-006-03`, `ATS-ACC-CLS-006-06`, `ATS-ACC-CLS-006-07` |
| `BR-CAP-ACC-CLS-006-06` | `ATS-ACC-CLS-006-06` |
| `BR-CAP-ACC-CLS-006-07` | `ATS-ACC-CLS-006-04`, `ATS-ACC-CLS-006-05` |

## Interactions With Related Capabilities

Payment review feeds both the readiness verdict and retained close evidence. The proposed sequence carries the assessed context into a successful close and examines later reconciliation separately. An additional specified interaction follows incomplete payment posting into execution revalidation.
