---
id: ATS-ACC-REC-019
scope: CAP-ACC-REC-019
product_area: accounting
module: reconciliation
revision: 3
status: proposed
approved_by: null
approved_at: null
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
scenarios:
  - id: ATS-ACC-REC-019-01
    title: Currency stages and cross-unit counts
    level: api
    proves:
      - BR-CAP-ACC-REC-019-01
      - BR-CAP-ACC-REC-019-03
    preconditions: Two units include records at all reconciliation stages.
    steps: Read one unit’s overview and then omit unit selection.
    expected: 'Stage totals, recent payouts and attention counts are reported; omitted unit includes all blockers.'
    negative: false
    data_needs: Provide overview fixture for this case.
    bound_to:
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/overview/reconciliation-overview.integration.spec.js#answers
        every stage by currency, the recent payouts and what needs attention, for a business unit
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/overview/reconciliation-overview.integration.spec.js#counts
        every unit’s blockers when no unit is named
      - >-
        services-accounting:modules/reconciliation/tests/e2e/outstanding.e2e.spec.js#answers 200 with alpha’s
        stages, recent payouts and what needs attention
      - TST-ACC-REC-056
      - TST-ACC-REC-024
    provenance: test
    source: >-
      services-accounting:modules/reconciliation/tests/integration/services/overview/reconciliation-overview.integration.spec.js#answers
      every stage by currency, the recent payouts and what needs attention, for a business unit
    category: rule
  - id: ATS-ACC-REC-019-02
    title: Overview range and merchant filters
    level: api
    proves:
      - BR-CAP-ACC-REC-019-02
    preconditions: Two merchants have records on both sides of a date interval.
    steps: Read a merchant-specific range and submit reversed dates.
    expected: 'Only matching dates and merchant records are counted, while a reversed interval is refused.'
    negative: true
    data_needs: No additional fixture beyond the case setup.
    bound_to:
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/overview/reconciliation-overview.integration.spec.js#keeps
        to a merchant account
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/overview/reconciliation-overview.integration.spec.js#keeps
        payouts to their accounting dates and finalized batches to their finalization date within from and to
      - >-
        services-accounting:modules/reconciliation/tests/e2e/outstanding.e2e.spec.js#refuses a from after its
        to with 400
      - TST-ACC-REC-056
      - TST-ACC-REC-024
    provenance: test
    source: >-
      services-accounting:modules/reconciliation/tests/integration/services/overview/reconciliation-overview.integration.spec.js#keeps
      to a merchant account
    category: validation
  - id: ATS-ACC-REC-019-03
    title: Reconciliation list state and paging
    level: api
    proves:
      - BR-CAP-ACC-REC-019-04
    preconditions: Records span states and units.
    steps: Traverse list pages and filters and request an unsupported state.
    expected: 'Newest numbers lead, matching states and contexts remain and the unsupported state fails.'
    negative: true
    data_needs: No additional fixture beyond the case setup.
    bound_to:
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-batches.queries.integration.spec.js#answers
        every batch of the tenant, newest number first, each summary whole
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-batches.queries.integration.spec.js#filters
        by state
      - >-
        services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-batches.queries.integration.spec.js#filters
        by merchant account
      - >-
        services-accounting:modules/reconciliation/tests/e2e/reconciliation-lists.e2e.spec.js#answers 200 with
        the tenant’s batches and the payouts each explains
      - >-
        services-accounting:modules/reconciliation/tests/e2e/reconciliation-lists.e2e.spec.js#refuses a state
        outside the vocabulary with 400
      - TST-ACC-REC-060
      - TST-ACC-REC-026
    provenance: test
    source: >-
      services-accounting:modules/reconciliation/tests/integration/services/persistence/reconciliation-batches.queries.integration.spec.js#answers
      every batch of the tenant, newest number first, each summary whole
    category: boundary
  - id: ATS-ACC-REC-019-04
    title: Read-only overview and isolation
    level: api
    proves:
      - BR-CAP-ACC-REC-019-05
    preconditions: 'A reader, missing-read caller and two workspaces are available.'
    steps: Read overview and lists as each and query another workspace’s records.
    expected: 'Read-only grants suffice, missing grants fail and foreign records stay absent.'
    negative: true
    data_needs: Assign callers through the relevant role policies.
    bound_to:
      - >-
        services-accounting:modules/reconciliation/tests/e2e/outstanding.e2e.spec.js#lets a principal with the
        read keys alone read the overview
      - >-
        services-accounting:modules/reconciliation/tests/e2e/outstanding.e2e.spec.js#refuses a principal
        without accounting.reconciliation-batches.read with 403
      - >-
        services-accounting:modules/reconciliation/tests/e2e/reconciliation-lists.e2e.spec.js#refuses the
        batch list without accounting.reconciliation-batches.read with 403
      - >-
        services-accounting:modules/reconciliation/tests/e2e/reconciliation-lists.e2e.spec.js#shows none of
        tenant A’s batches in tenant B
      - TST-ACC-REC-024
      - TST-ACC-REC-026
    provenance: test
    source: >-
      services-accounting:modules/reconciliation/tests/e2e/outstanding.e2e.spec.js#lets a principal with the
      read keys alone read the overview
    category: permission
  - id: ATS-ACC-REC-019-05
    title: Console displays service-backed records
    level: browser
    proves:
      - BR-CAP-ACC-REC-019-06
      - BR-CAP-ACC-REC-019-07
      - AS-JNY-ACC-REC-001-04
    preconditions: A live workspace has its own payout and outstanding item.
    steps: Visit each Reconciliation Center tab.
    expected: Screens show the workspace’s actual records rather than prototype examples.
    negative: false
    data_needs: Use the live Accounting service boundary.
    bound_to:
      - >-
        react-console:acceptance/accounting/playwright/journeys/reconciliation-close/ACT-ACC-0623.spec.ts#ACT-ACC-0623
      - TST-ACC-REC-019
    provenance: test
    source: >-
      react-console:acceptance/accounting/playwright/journeys/reconciliation-close/ACT-ACC-0623.spec.ts#ACT-ACC-0623
    category: interaction
  - id: ATS-ACC-REC-019-06
    title: Overview and assessment use their own dates
    category: interaction
    level: api
    proves:
      - BR-CAP-ACC-REC-019-01
      - BR-CAP-ACC-REC-019-03
      - BR-CAP-ACC-REC-018-02
      - BR-CAP-ACC-REC-018-03
    interacts_with:
      - CAP-ACC-REC-018
    relies_on:
      - ATS-ACC-REC-019-01
      - ATS-ACC-REC-018-02
    preconditions: Use one isolated workspace with the financial records and caller roles required by the relied-on cases.
    steps:
      - do: Read current overview and assess a prior period while a deposit is finalized today.
        expect: Current progress shows completion while assessment follows its selected period and state day.
        provenance: proposed
        source:
          - >-
            specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-019-see-the-state-of-reconciliation-at-a-glance.md
          - >-
            specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-018-tell-month-end-close-what-stops-a-period-from-closing.md
    expected: Current progress shows completion while assessment follows its selected period and state day.
    negative: false
    data_needs: >-
      Local merchant and bank accounts, an open operational batch and distinct preparation and approval
      callers.
    bound_to: []
    provenance: proposed
    source:
      - >-
        specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-019-see-the-state-of-reconciliation-at-a-glance.md
      - >-
        specs/accounting/reconciliation/planning/capabilities/CAP-ACC-REC-018-tell-month-end-close-what-stops-a-period-from-closing.md
evidence:
  - >-
    Bindings identify existing tests at the pinned revisions; proposed cases remain unbound and describe the
    proof still needed.
coverage:
  rule: covered
  transition: not-applicable
  validation: covered
  permission: covered
  boundary: covered
  interaction: covered
  edge: 'gap: FND-ACC-REC-064'
  failure: 'gap: FND-ACC-REC-064'
  concurrency: 'gap: FND-ACC-REC-064'
  invariant: 'gap: FND-ACC-REC-064'
coverage_notes:
  transition: This capability reads and derives records without a lifecycle mutation command.
  design_completeness: >-
    Covered categories count specified cases, including proposed cases. Exhaustive state-transition,
    permission-key and domain-invariant traceability remains a separate proof gap.
---

# Review reconciliation stages and attention: Capability Test Specification

## Coverage

| Rule | Proved by |
|---|---|
| `BR-CAP-ACC-REC-019-01` | `ATS-ACC-REC-019-01` |
| `BR-CAP-ACC-REC-019-02` | `ATS-ACC-REC-019-02` |
| `BR-CAP-ACC-REC-019-03` | `ATS-ACC-REC-019-01` |
| `BR-CAP-ACC-REC-019-04` | `ATS-ACC-REC-019-03` |
| `BR-CAP-ACC-REC-019-05` | `ATS-ACC-REC-019-04` |

## Interactions With Related Capabilities

Console displays service-backed records. Overview and assessment use their own dates. Proposed interaction cases require executable proof.
