---
id: JNY-ACC-BKS-006
title: Begin Canadian-dollar work in a US-dollar unit
feature: FEAT-ACC-BKS-01
product_area: accounting
module: books
revision: 1
status: draft
product_intent: confirmed
implementation_evidence: partially-observed
supersedes:
  - ACT-ACC-0006
  - ACT-ACC-0030
  - ACT-ACC-0031
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
actor: ACT-ACC-001
goal: Enable known foreign currencies and dated rates for financial work.
capabilities:
  - CAP-ACC-BKS-002
  - CAP-ACC-BKS-005
  - CAP-ACC-BKS-004
screens:
  - '/console/{tenantId}/configuration/accounting/businessUnits'
  - '/console/{tenantId}/configuration/accounting/glAccounts'
  - '/console/{tenantId}/configuration/accounting/exchangeRates'
steps:
  - 'n': 1
    surface: '/console/{tenantId}/configuration/accounting/businessUnits'
    action: Enable CAD and EUR and select provider/prohibited-pricing policy for EUR.
    capability: CAP-ACC-BKS-002
    expected: The unit returns both currencies with their chosen settings.
    provenance: test
    source: >-
      react-console:acceptance/accounting/playwright/journeys/configuration/ACT-ACC-0006.spec.ts#ACT-ACC-0006
  - 'n': 2
    surface: '/console/{tenantId}/configuration/accounting/glAccounts'
    action: Create a Canadian-dollar cash account.
    capability: CAP-ACC-BKS-005
    expected: >-
      The picker offers the base and supported currencies and saves the CAD
      account.
    provenance: test
    source: >-
      react-console:acceptance/accounting/playwright/journeys/configuration/ACT-ACC-0006.spec.ts#ACT-ACC-0006
  - 'n': 3
    surface: '/console/{tenantId}/configuration/accounting/exchangeRates'
    action: Enter today’s CAD quote and an earlier quote as decimal text.
    capability: CAP-ACC-BKS-004
    expected: The list orders the quotes newest first at ten-place precision.
    provenance: test
    source: >-
      react-console:acceptance/accounting/playwright/journeys/configuration/ACT-ACC-0030.spec.ts#ACT-ACC-0030
  - 'n': 4
    surface: resolveExchangeRate
    action: Resolve yesterday’s CAD quote and today’s EUR quote.
    capability: CAP-ACC-BKS-004
    expected: >-
      CAD selects the earlier quote and unquoted EUR returns provider sourcing
      with prohibited missing-price handling.
    provenance: test
    source: >-
      react-console:acceptance/accounting/playwright/journeys/configuration/ACT-ACC-0006.spec.ts#ACT-ACC-0006
  - 'n': 5
    surface: '/console/{tenantId}/configuration/accounting/businessUnits'
    action: Attempt to drop CAD support.
    capability: CAP-ACC-BKS-002
    expected: The refusal identifies the Canadian-dollar account dependency.
    provenance: test
    source: >-
      react-console:acceptance/accounting/playwright/journeys/configuration/ACT-ACC-0006.spec.ts#ACT-ACC-0006
alternates:
  - from_step: 3
    condition: >-
      EUR provider filling is requested without an available development
      connection.
    path: The operation reports provider unavailability.
    outcome: No rate is persisted.
    provenance: test
    source: >-
      services-accounting:modules/books/tests/e2e/exchange-rates.e2e.spec.js#refuses
      the fill 409 provider_unavailable while no platform client exists, writing
      nothing
failures:
  - from_step: 1
    condition: Multicurrency is enabled with an empty supported set.
    path: The unit save fails validation.
    outcome: Single-currency operation remains in force.
    provenance: test
    source: >-
      services-accounting:modules/books/tests/integration/services/persistence/business-units.integration.spec.js#refuses
      Enable Multicurrency on a create with no supported currency, in Rhythm
      1.0’s words
rules_in_play:
  - BR-CAP-ACC-BKS-002-01
  - BR-CAP-ACC-BKS-002-04
  - BR-CAP-ACC-BKS-002-05
  - BR-CAP-ACC-BKS-002-06
  - BR-CAP-ACC-BKS-004-01
  - BR-CAP-ACC-BKS-004-03
  - BR-CAP-ACC-BKS-004-06
assertions:
  - id: AS-JNY-ACC-BKS-006-01
    statement: The saved supported set and policies match the configured currencies.
    provenance: test
    source: >-
      react-console:acceptance/accounting/playwright/journeys/configuration/ACT-ACC-0006.spec.ts#ACT-ACC-0006
  - id: AS-JNY-ACC-BKS-006-02
    statement: Dated resolution selects the latest eligible quote.
    provenance: test
    source: >-
      react-console:acceptance/accounting/playwright/journeys/configuration/ACT-ACC-0030.spec.ts#ACT-ACC-0030
  - id: AS-JNY-ACC-BKS-006-03
    statement: An existing account prevents removal of its supported currency.
    provenance: test
    source: >-
      react-console:acceptance/accounting/playwright/journeys/configuration/ACT-ACC-0006.spec.ts#ACT-ACC-0006
e2e_policy: required
e2e_reason: >-
  Currency choices, account pickers and rate maintenance must use the same unit
  configuration.
evidence:
  - >-
    Verified source file:
    react-console:acceptance/accounting/playwright/journeys/configuration/ACT-ACC-0006.spec.ts
  - >-
    Verified source file:
    react-console:acceptance/accounting/playwright/journeys/configuration/ACT-ACC-0030.spec.ts
  - >-
    Verified source file:
    services-accounting:modules/books/tests/e2e/exchange-rates.e2e.spec.js
  - >-
    Verified source file:
    services-accounting:modules/books/tests/integration/services/persistence/business-units.integration.spec.js
proved_by: []
---

# Begin Canadian-dollar work in a US-dollar unit

## Story

The controller enables the unit’s foreign currencies and reviews their pricing and quote policies. They create a Canadian-dollar account, enter dated manual quotes and resolve the rates relevant to work. A later removal attempt demonstrates that the currency remains protected while accounts use it.
