Skip to content

CAP-ACC-TRX-016Find money records and understand available work

Markdown

CAP-ACC-TRX-016

Find money records and understand available work

Markdown
  • DocumentDraft
  • Product intentProposed
  • ImplementationPartially observed

KindCapabilityProduct areaAccountingModuleTransactionsRevision1

Read atservices-accounting f47cb263react-console baf6dae3

The Formal Contract

The narrative above explains; the sections below are authoritative — the rules, scenarios and tests this document binds.

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.
Surfaces
consoleapi
Intent sources
services-accounting:docs/milestones/ACCT-M1-books-and-invoices.md#D10.3services-accounting:docs/milestones/plans/ACCT-M2-plan.md#D9services-accounting:docs/milestones/plans/ACCT-M2-plan.md#D6

Controls

35 controls apply, from the corpus control catalogue.

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

Permissions

KeyChecked atScope
accounting.invoices.readapitenant
accounting.transactions.queryservicetenant
accounting.invoices.queryservicetenant
accounting.payments.queryservicetenant
accounting.credits.queryservicetenant
accounting.credit-applications.queryservicetenant
accounting.credit-memos.queryservicetenant
accounting.debit-memos.queryservicetenant
accounting.write-offs.queryservicetenant
accounting.refunds.queryservicetenant

Business Rules

9 rules, 7 to be proved before approval. A rule's product intent is derived from its origin: 0 confirmed by a product decision, the rest inheriting this capability's proposed.

IdRuleKindEnforced atProvenance
01must prove
Proposed
Available actions reflect permission and lifecycle eligibility; blocked preconditions display a disabled reason and read-only access exposes no mutations.
permissionapi, servicetest
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
02must prove
Proposed
Execution rechecks permission and current command eligibility, rejecting an action when intervening changes make it invalid.
validationapi, servicetest
services-accounting:modules/transactions/tests/e2e/invoices.e2e.spec.js#it answers 409 to the issue action on an issued invoice
03must prove
Proposed
Console money workflows disabled by access show an explanation rather than disappearing.
policyconsoletest
04must prove
Proposed
Foreign-workspace records appear absent and cannot be changed through the reader’s workspace.
invariantdatabase, apitest
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
05
Proposed
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.
policyapi, servicetest
services-accounting:modules/transactions/tests/e2e/invoices.e2e.spec.js#it answers 400 to a cursor the list did not issue
06must prove
Proposed
Financial Transactions combines transaction kinds with customer context, display status and open value, using zero for inactive payments and credits.
calculationdatabasetest
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
07must prove
Proposed
Dataset reads require their query authority and isolate workspace data; read-only policies include those authorities.
permissionservice, databasetest
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
08must prove
Proposed
Commands retain append-only document events with actor, transition, reason and retry key, while public history routes and screens remain absent.
invariantservice, databasetest
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
09
Proposed
Platform exports include invoices, receipts, credits, adjustments, events, aging snapshots and processor-reference datasets.
policyserviceobserved

Scenarios

IdGivenWhenThenProvenance
01Staff hold read authority without financial mutation authority.Inspect money records and query the datasets, then attempt changes.Records remain readable while unavailable controls explain their restriction and writes are denied.test
02A draft carries both update and deletion protection.Request its available actions.Issue, void and delete retain disabled explanations from the lock.test
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

The Markdown files under specs/ in rhythmsoftware/rhythm-v2-docs are the canonical source of truth. This reader is a generated, read-only projection of them.