---
id: CAP-ACC-BKS-007
title: Configure where received money lands
feature: FEAT-ACC-BKS-02
product_area: accounting
module: books
revision: 1
status: draft
product_intent: confirmed
implementation_evidence: partially-observed
supersedes:
  - CAP-ACC-CFG-005
  - CAP-ACC-CFG-006
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
intent_sources:
  - 'services-accounting:docs/milestones/plans/ACCT-M1-plan.md#2. Scope'
  - 'services-accounting:docs/milestones/ACCT-M1-books-and-invoices.md#D2'
  - 'services-accounting:docs/milestones/ACCT-M1-books-and-invoices.md#R5'
  - 'services-accounting:docs/milestones/ACCT-M1-books-and-invoices.md#R6'
purpose: >-
  Controllers link bank and merchant accounts to the unit’s posting
  destinations.
outcomes:
  - >-
    Receiving configuration directs money to accounts in the appropriate unit
    and currency.
  - >-
    Bank-number storage is limited to four digits and processor references
    exclude credentials.
concepts:
  - CON-ACC-BKS-002
actors:
  - ACT-ACC-001
  - ACT-ACC-002
surfaces:
  - console
  - api
preconditions: []
postconditions: []
permissions:
  - key: accounting.bank-accounts.read
    where_checked: api
    scope: tenant
  - key: accounting.bank-accounts.create
    where_checked: api
    scope: tenant
  - key: accounting.bank-accounts.update
    where_checked: api
    scope: tenant
  - key: accounting.bank-accounts.delete
    where_checked: api
    scope: tenant
  - key: accounting.merchant-accounts.read
    where_checked: api
    scope: tenant
  - key: accounting.merchant-accounts.create
    where_checked: api
    scope: tenant
  - key: accounting.merchant-accounts.update
    where_checked: api
    scope: tenant
  - key: accounting.merchant-accounts.delete
    where_checked: api
    scope: tenant
  - key: accounting.application.access
    where_checked: api
    scope: tenant
rules:
  - id: BR-CAP-ACC-BKS-007-01
    proved_by: [ATS-ACC-BKS-002-14, ATS-ACC-BKS-005-10, ATS-ACC-BKS-007-01, TST-ACC-BKS-009, TST-ACC-BKS-045, TST-ACC-BKS-056, TST-ACC-BKS-063]
    statement: >-
      Bank and merchant accounts require a GL account from their own business
      unit, and a cross-unit reference is refused with both units identified.
    kind: validation
    enforced_at:
      - api
      - service
      - database
    must_prove: true
    provenance: test
    source: >-
      services-accounting:modules/books/tests/e2e/bank-accounts.e2e.spec.js#answers
      400 to another unit’s GL account, naming both units
    origin: none
  - id: BR-CAP-ACC-BKS-007-02
    proved_by: [ATS-ACC-BKS-007-02, TST-ACC-BKS-045, TST-ACC-BKS-063]
    statement: >-
      A bank account stores exactly four account-number digits or none, with no
      full account-number or routing-number field.
    kind: validation
    enforced_at:
      - api
      - database
    must_prove: true
    provenance: test
    source: >-
      services-accounting:modules/books/tests/e2e/bank-accounts.e2e.spec.js#answers
      400 to an account_number_last4 of five digits
    origin: 'services-accounting:docs/milestones/ACCT-M1-books-and-invoices.md#D2'
  - id: BR-CAP-ACC-BKS-007-03
    proved_by: [ATS-ACC-BKS-007-03, ATS-ACC-BKS-007-10, TST-ACC-BKS-045, TST-ACC-BKS-056, TST-ACC-BKS-063]
    statement: >-
      Bank and merchant accounts retain their original business unit and
      currency.
    kind: invariant
    enforced_at:
      - service
      - database
    must_prove: true
    provenance: test
    source: >-
      services-accounting:modules/books/tests/e2e/bank-accounts.e2e.spec.js#answers
      409 to a change of currency, naming the column (0049)
    origin: none
  - id: BR-CAP-ACC-BKS-007-04
    proved_by: [ATS-ACC-BKS-007-04, TST-ACC-BKS-056]
    statement: >-
      A merchant account may choose one of four known processors and may store a
      processor account reference only with that processor, without storing a
      credential.
    kind: validation
    enforced_at:
      - api
      - service
      - database
    must_prove: true
    provenance: test
    source: >-
      services-accounting:modules/books/tests/e2e/merchant-accounts.e2e.spec.js#answers
      400 to a processor account reference without a processor
    origin: none
  - id: BR-CAP-ACC-BKS-007-05
    proved_by: [ATS-ACC-BKS-007-04, TST-ACC-BKS-056]
    statement: >-
      Merchant accounts report Not Connected during this implementation phase
      even when a processor is selected.
    kind: policy
    enforced_at:
      - service
      - console
    must_prove: true
    provenance: test
    source: >-
      services-accounting:modules/books/tests/e2e/merchant-accounts.e2e.spec.js#answers
      the processing status not_connected all the same
    origin: 'services-accounting:docs/milestones/ACCT-M1-books-and-invoices.md#D2'
  - id: BR-CAP-ACC-BKS-007-06
    proved_by: [ATS-ACC-BKS-007-05, TST-ACC-BKS-091]
    statement: >-
      Reconciliation owns merchant settlement-bank and timing settings, which
      this API omits and preserves on replacement.
    kind: policy
    enforced_at:
      - service
    must_prove: true
    provenance: test
    source: >-
      services-accounting:modules/books/tests/integration/services/persistence/merchant-accounts.integration.spec.js#leaves
      the settlement columns payout reconciliation owns as they were stored
    origin: none
  - id: BR-CAP-ACC-BKS-007-07
    proved_by: [ATS-ACC-BKS-007-06, TST-ACC-BKS-069]
    statement: >-
      A bank account used as a merchant account’s settlement destination cannot
      be deleted.
    kind: invariant
    enforced_at:
      - database
    must_prove: true
    provenance: test
    source: >-
      services-accounting:modules/books/tests/integration/db/reconciliation-configuration.table.integration.spec.js#refuses
      deleting the bank account a merchant account settles to
    origin: none
  - id: BR-CAP-ACC-BKS-007-08
    proved_by: []
    statement: >-
      Bank lists sort by unit and name, merchant lists by unit, priority with
      empty priorities last and name; both support unit, currency, activity and
      name or identifier search, merchants also filter by processor, and
      processor lookup needs only application access.
    kind: policy
    enforced_at:
      - api
      - service
    must_prove: false
    provenance: test
    source: >-
      services-accounting:modules/books/tests/e2e/merchant-accounts.e2e.spec.js#answers
      every account by business unit, then priority with none last, then name
    origin: none
  - id: BR-CAP-ACC-BKS-007-09
    proved_by: [ATS-ACC-BKS-007-07]
    statement: >-
      A restricting reference, including a batch assignment rule or payout,
      prevents deletion of a bank or merchant account and identifies the
      dependent kind.
    kind: validation
    enforced_at:
      - service
    must_prove: true
    provenance: observed
    source: >-
      services-accounting:modules/books/services/persistence/configuration-refusals.ts:STILL_REFERENCED
    origin: none
scenarios:
  - id: SC-CAP-ACC-BKS-007-01
    given: The chapter’s operating bank account ends in 4421.
    when: The controller links it to the chapter’s cash GL account.
    then: >-
      The list presents masked account-number information and the associated GL
      account.
    provenance: test
    source: >-
      react-console:acceptance/accounting/playwright/journeys/configuration/ACT-ACC-0011.spec.ts#ACT-ACC-0011
edge_cases: []
constraints: []
depends_on:
  - CAP-ACC-BKS-005
related:
  - CAP-ACC-BKS-002
journeys:
  - JNY-ACC-BKS-001
open_questions: []
evidence:
  - >-
    Verified source file:
    react-console:acceptance/accounting/playwright/journeys/configuration/ACT-ACC-0011.spec.ts
  - 'Verified source file: services-accounting:aws/accounting.service.ts'
  - >-
    Verified source file:
    services-accounting:docs/milestones/ACCT-M1-books-and-invoices.md
  - >-
    Verified source file:
    services-accounting:docs/milestones/plans/ACCT-M1-plan.md
  - >-
    Verified source file:
    services-accounting:modules/books/db/bank-accounts.table.ts
  - >-
    Verified source file:
    services-accounting:modules/books/db/merchant-accounts.table.ts
  - >-
    Verified source file:
    services-accounting:modules/books/db/payment-processors.table.ts
  - >-
    Verified source file:
    services-accounting:modules/books/services/persistence/configuration-refusals.ts
  - >-
    Verified source file:
    services-accounting:modules/books/tests/e2e/bank-accounts.e2e.spec.js
  - >-
    Verified source file:
    services-accounting:modules/books/tests/e2e/merchant-accounts.e2e.spec.js
  - >-
    Verified source file:
    services-accounting:modules/books/tests/integration/db/configuration-records.table.integration.spec.js
  - >-
    Verified source file:
    services-accounting:modules/books/tests/integration/db/reconciliation-configuration.table.integration.spec.js
  - >-
    Verified source file:
    services-accounting:modules/books/tests/integration/services/persistence/bank-accounts.queries.integration.spec.js
  - >-
    Verified source file:
    services-accounting:modules/books/tests/integration/services/persistence/merchant-accounts.integration.spec.js
  - >-
    Verified source file:
    services-accounting:modules/books/tests/integration/services/persistence/merchant-accounts.queries.integration.spec.js
  - >-
    Verified source file:
    services-accounting:modules/books/tests/integration/services/persistence/payment-processors.queries.integration.spec.js
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-005, TC-AZ-006, TC-TEN-001, TC-TEN-002, TC-TEN-003, TC-TEN-004, TC-SEC-001, TC-SEC-002, TC-SEC-003, TC-SEC-004, TC-CRY-001, TC-DAT-001, TC-DAT-002, TC-DAT-004, TC-LOG-001, TC-LOG-002, TC-LOG-003, TC-LOG-004, TC-LOG-005, TC-PI-001, TC-PI-003, TC-VEN-001, TC-VEN-002, TC-VEN-003]
exercised_by: [FAS-ACC-BKS-02-02, FAS-ACC-BKS-02-04]
suites: [TST-ACC-BKS-009, TST-ACC-BKS-045, TST-ACC-BKS-056, TST-ACC-BKS-063, TST-ACC-BKS-069, TST-ACC-BKS-091]
---

# Configure where received money lands

## Purpose

Controllers link bank and merchant accounts to the unit’s posting destinations.

## How It Works

The controller selects the receiving account’s unit and currency. A bank account links a deposit destination to the chart, while a merchant account links processor receipts to its clearing destination. The saved record carries enough descriptive information for staff to recognize it. Choosing a processor does not by itself connect processing. Reconciliation maintains the settlement choices it owns alongside this configuration. An edit here preserves those choices. Deletion can fail while other financial records refer to the receiving account.

## Relationships

The chart supplies posting accounts; reconciliation owns settlement and payout behaviour.
