---
id: CAP-ACC-TRX-016
title: Find money records and understand available work
feature: FEAT-ACC-TRX-06
product_area: accounting
module: transactions
revision: 1
status: draft
product_intent: proposed
implementation_evidence: partially-observed
supersedes:
  - CAP-ACC-INV-011
  - CAP-ACC-INV-012
  - CAP-ACC-INV-015
  - CAP-ACC-INV-023
  - CAP-ACC-PAY-025
  - CAP-ACC-RPT-002
  - CAP-ACC-RPT-003
  - CAP-ACC-RPT-015
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
intent_sources:
  - 'services-accounting:docs/milestones/ACCT-M1-books-and-invoices.md#D10.3'
  - 'services-accounting:docs/milestones/plans/ACCT-M2-plan.md#D9'
  - 'services-accounting:docs/milestones/plans/ACCT-M2-plan.md#D6'
purpose: Staff and reviewers locate financial records and inspect what their authority permits.
outcomes:
  - Staff and reviewers locate financial records and inspect what their authority permits.
  - >-
    Queries and exports use the corresponding read authorities and workspace isolation. Audit events are
    retained, and the product should make their history available to staff.
concepts:
  - CON-ACC-TRX-006
actors:
  - ACT-ACC-012
  - ACT-ACC-002
surfaces:
  - console
  - api
permissions:
  - key: accounting.invoices.read
    where_checked: api
    scope: tenant
  - key: accounting.transactions.query
    where_checked: service
    scope: tenant
  - key: accounting.invoices.query
    where_checked: service
    scope: tenant
  - key: accounting.payments.query
    where_checked: service
    scope: tenant
  - key: accounting.credits.query
    where_checked: service
    scope: tenant
  - key: accounting.credit-applications.query
    where_checked: service
    scope: tenant
  - key: accounting.credit-memos.query
    where_checked: service
    scope: tenant
  - key: accounting.debit-memos.query
    where_checked: service
    scope: tenant
  - key: accounting.write-offs.query
    where_checked: service
    scope: tenant
  - key: accounting.refunds.query
    where_checked: service
    scope: tenant
rules:
  - id: BR-CAP-ACC-TRX-016-01
    proved_by: [ATS-ACC-TRX-001-17, ATS-ACC-TRX-015-09, ATS-ACC-TRX-016-01, ATS-ACC-TRX-016-08, TST-ACC-TRX-010, TST-ACC-TRX-132]
    statement: >-
      Available actions reflect permission and lifecycle eligibility; blocked preconditions display a disabled
      reason and read-only access exposes no mutations.
    kind: permission
    enforced_at:
      - api
      - service
    must_prove: true
    provenance: test
    source: >-
      services-accounting:modules/transactions/tests/unit/actions/invoice-actions.spec.js#it lists issue, void
      and delete on a draft locked against updates and deletes, each with the lock’s refusal as
      disabled_reason
    origin: 'services-accounting:docs/milestones/ACCT-M1-books-and-invoices.md#D12'
  - id: BR-CAP-ACC-TRX-016-02
    proved_by: [ATS-ACC-TRX-001-17, ATS-ACC-TRX-015-09, ATS-ACC-TRX-016-02, ATS-ACC-TRX-016-08, TST-ACC-TRX-010]
    statement: >-
      Execution rechecks permission and current command eligibility, rejecting an action when intervening
      changes make it invalid.
    kind: validation
    enforced_at:
      - api
      - service
    must_prove: true
    provenance: test
    source: >-
      services-accounting:modules/transactions/tests/e2e/invoices.e2e.spec.js#it answers 409 to the issue
      action on an issued invoice
    origin: 'services-accounting:docs/milestones/ACCT-M1-books-and-invoices.md#D12'
  - id: BR-CAP-ACC-TRX-016-03
    proved_by: [ATS-ACC-TRX-016-03, TST-ACC-TRX-209, TST-ACC-TRX-263]
    statement: Console money workflows disabled by access show an explanation rather than disappearing.
    kind: policy
    enforced_at:
      - console
    must_prove: true
    provenance: test
    source: 'react-console:acceptance/accounting/playwright/journeys/payments/ACT-ACC-0331.spec.ts#ACT-ACC-0331'
    origin: 'services-accounting:docs/milestones/ACCT-M1-books-and-invoices.md#D10.3'
  - id: BR-CAP-ACC-TRX-016-04
    proved_by: [ATS-ACC-TRX-016-04, TST-ACC-TRX-003, TST-ACC-TRX-010, TST-ACC-TRX-235]
    statement: Foreign-workspace records appear absent and cannot be changed through the reader’s workspace.
    kind: invariant
    enforced_at:
      - database
      - api
    must_prove: true
    provenance: test
    source: >-
      services-accounting:modules/transactions/tests/e2e/invoices.e2e.spec.js#it answers 404 to issuing the
      other tenant’s invoice in this tenant, and leaves it a draft
    origin: 'services-accounting:docs/milestones/ACCT-M1-books-and-invoices.md#D12'
  - id: BR-CAP-ACC-TRX-016-05
    proved_by: []
    statement: >-
      Main invoice, payment, credit and refund lists provide newest-first filtered pages with validated
      cursors; memo and write-off lists are scoped to their invoice.
    kind: policy
    enforced_at:
      - api
      - service
    must_prove: false
    provenance: test
    source: >-
      services-accounting:modules/transactions/tests/e2e/invoices.e2e.spec.js#it answers 400 to a cursor the
      list did not issue
    origin: 'services-accounting:docs/milestones/ACCT-M1-books-and-invoices.md#D12'
  - id: BR-CAP-ACC-TRX-016-06
    proved_by: [ATS-ACC-TRX-016-05, ATS-ACC-TRX-016-08, ATS-ACC-TRX-017-08, ATS-ACC-TRX-020-09, TST-ACC-TRX-029]
    statement: >-
      Financial Transactions combines transaction kinds with customer context, display status and open value,
      using zero for inactive payments and credits.
    kind: calculation
    enforced_at:
      - database
    must_prove: true
    provenance: test
    source: >-
      services-accounting:modules/transactions/tests/integration/db/transactions-views-d7.integration.spec.js#it
      answers the same invoice as credited in transactions_v, the list of every kind
    origin: none
    note: >-
      The cited build recommendation does not establish Product approval; the authority gap remains open in
      FND-ACC-TRX-035.
  - id: BR-CAP-ACC-TRX-016-07
    proved_by: [ATS-ACC-TRX-016-06, TST-ACC-TRX-028]
    statement: >-
      Dataset reads require their query authority and isolate workspace data; read-only policies include those
      authorities.
    kind: permission
    enforced_at:
      - service
      - database
    must_prove: true
    provenance: test
    source: >-
      services-accounting:modules/transactions/tests/integration/db/transactions-view.integration.spec.js#it
      answers tenant B’s reader its own invoice alone, its customer’s name null where CRM has no such contact
    origin: none
    note: >-
      The cited build recommendation does not establish Product approval; the authority gap remains open in
      FND-ACC-TRX-035.
  - id: BR-CAP-ACC-TRX-016-08
    proved_by: [ATS-ACC-TRX-016-07, ATS-ACC-TRX-020-09, TST-ACC-TRX-091]
    statement: >-
      Commands retain append-only document events with actor, transition, reason and retry key, while public
      history routes and screens remain absent.
    kind: invariant
    enforced_at:
      - service
      - database
    must_prove: true
    provenance: test
    source: >-
      services-accounting:modules/transactions/tests/integration/services/persistence/document-events.queries.integration.spec.js#it
      lists the invoice’s three events oldest first, not the credit memo’s of the same id nor another tenant’s
    origin: none
    note: >-
      The cited build recommendation does not establish Product approval; the authority gap remains open in
      FND-ACC-TRX-035.
  - id: BR-CAP-ACC-TRX-016-09
    proved_by: []
    statement: >-
      Platform exports include invoices, receipts, credits, adjustments, events, aging snapshots and
      processor-reference datasets.
    kind: policy
    enforced_at:
      - service
    must_prove: false
    provenance: observed
    source: 'services-accounting:modules/transactions/export/invoices.dataset.ts'
    origin: none
scenarios:
  - id: SC-CAP-ACC-TRX-016-01
    given: Staff hold read authority without financial mutation authority.
    when: 'Inspect money records and query the datasets, then attempt changes.'
    then: Records remain readable while unavailable controls explain their restriction and writes are denied.
    provenance: test
    source: 'react-console:acceptance/accounting/playwright/journeys/payments/ACT-ACC-0331.spec.ts#ACT-ACC-0331'
  - id: SC-CAP-ACC-TRX-016-02
    given: A draft carries both update and deletion protection.
    when: Request its available actions.
    then: 'Issue, void and delete retain disabled explanations from the lock.'
    provenance: test
    source: >-
      services-accounting:modules/transactions/tests/unit/actions/invoice-actions.spec.js#it lists issue, void
      and delete on a draft locked against updates and deletes, each with the lock’s refusal as
      disabled_reason
edge_cases: []
depends_on: []
related:
  - CAP-ACC-TRX-015
  - CAP-ACC-TRX-017
  - CAP-ACC-TRX-020
journeys:
  - JNY-ACC-TRX-001
evidence:
  - >-
    services-accounting at f47cb263875bbc0c5640fba7dae6785ec32695f8:
    modules/transactions/aws/api/invoices.routes.ts (getInvoice, listInvoices), transaction-actions.routes.ts
    (listInvoiceActions, performInvoiceAction) and every kind's actions routes;
    services/actions/record-actions.ts and the per-kind action tables; db/transactions.view.ts,
    transaction-kind.views.ts, document-events.table.ts; metadata/transactions.object.ts,
    transaction-kinds.objects.ts; queries/transactions.query.ts, transaction-kinds.query.ts, recipes/*;
    export/*; docs/accounting/record-actions.md, queries.md; tests unit/actions/invoice-actions.spec.js,
    e2e/invoices.e2e.spec.js, integration/db/transactions-view, transactions-views-d7,
    integration/services/persistence/document-events.queries.
  - >-
    react-console at baf6dae382d6f41dce976c7f848667ccc37e076f:
    app/(console)/console/[tenantId]/accounting/transactions/page.tsx and the per-kind list pages that
    redirect to it; components/accounting/transactions/transactions-explorer.tsx;
    lib/accounting/transactions/entry-points.ts; journeys ACT-ACC-0203, 0205, 0206, 0212, 0217, 0329, 0331,
    0804.
controls: [TC-IAM-001, TC-IAM-002, TC-IAM-004, TC-IAM-005, TC-IAM-006, 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-DAT-001, TC-DAT-002, TC-DAT-003, TC-DAT-004, TC-DAT-005, TC-LOG-001, TC-LOG-002, TC-LOG-003, TC-LOG-004, TC-LOG-005, TC-AVL-001, TC-AVL-004, TC-MON-001, TC-MON-002, TC-MON-004, TC-PI-001, TC-PI-002, TC-PI-003, TC-PI-004, TC-PI-005, TC-PRV-001, TC-PRV-002]
exercised_by: [FAS-ACC-TRX-06-01, FAS-ACC-TRX-06-02, FAS-ACC-TRX-06-04, FAS-ACC-TRX-06-05]
suites: [TST-ACC-TRX-003, TST-ACC-TRX-010, TST-ACC-TRX-028, TST-ACC-TRX-029, TST-ACC-TRX-091, TST-ACC-TRX-132, TST-ACC-TRX-209, TST-ACC-TRX-235, TST-ACC-TRX-263]
---

# Find money records and understand available work

## Purpose

Staff and reviewers locate financial records and inspect what their authority permits.

## How It Works

The Transactions screen groups the supported money documents into one searchable view. Per-kind entry pages select the relevant subset. Record pages request currently available actions from Accounting. Permission and lifecycle checks determine which transitions can be used. The console explains disabled money workflows. Queries and exports use the corresponding read authorities and workspace isolation. Audit events are retained, and the product should make their history available to staff.

## Relationships

- Keep transaction batches and details correct supplies or continues the related financial work.
- Explain a customer’s current financial position supplies or continues the related financial work.
- Coordinate financial commands across applications supplies or continues the related financial work.
