---
id: SCR-ACC-BKS-002
title: Exchange rates configuration
route: '/console/{tenantId}/configuration/accounting/exchangeRates'
surface: console
product_area: accounting
module: books
revision: 1
status: draft
design_intent: proposed
implementation_evidence: observed
inference: []
source_sha:
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
purpose: >-
  Review and maintain dated exchange prices, including manual entries and
  missing quotes supplied by a provider.
supports:
  - JNY-ACC-BKS-006
  - CAP-ACC-BKS-004
permission: >-
  accounting.exchange-rates.read (the console's configuration exchange-rates
  view alias); writes as listed per action
entry_from:
  - >-
    '/console/{tenantId}/configuration' (Accounting group in the configuration
    catalogue)
  - Navigation between Accounting setup screens
exits_to:
  - >-
    '/console/{tenantId}/configuration' (Accounting group in the configuration
    catalogue)
displays:
  - field: >-
      Unit and currency prices ordered with recent dates first, showing value
      and origin
    source: listExchangeRates
  - field: 'Selected price details, including unit, currency, date, value and origin'
    source: getExchangeRate
  - field: >-
      Provider-fill banner when the chosen unit has provider-configured
      currencies
    source: getBusinessUnit (supported currency settings)
actions:
  - label: Add Exchange Rate
    operation_id: createExchangeRate
    permission: accounting.exchange-rates.create
    confirm: false
  - label: Save (manual rates only)
    operation_id: updateExchangeRate
    permission: accounting.exchange-rates.update
    confirm: false
  - label: Fill From Provider
    operation_id: fillExchangeRates
    permission: accounting.exchange-rates.create
    confirm: false
  - label: Delete
    operation_id: deleteExchangeRate
    permission: accounting.exchange-rates.delete
    confirm: true
states:
  - empty
  - loading
  - error
  - read-only
validation:
  - BR-CAP-ACC-BKS-004-01
  - BR-CAP-ACC-BKS-004-02
  - BR-CAP-ACC-BKS-004-04
  - BR-CAP-ACC-BKS-004-06
  - BR-CAP-ACC-BKS-002-02
patterns:
  - 'Shared configuration list with search, sorting and an empty state'
  - Unit filter using the shared working-unit selection
  - Standard-width page editor with a rate section and an unsaved-changes guard
  - 'Provider-fill dialog reporting written, skipped and unpriced currencies'
  - Delete confirmation and Accounting loading and error panels
  - No availability filter or bulk selection
component: components/configuration/resources/accounting-exchange-rates.tsx
evidence:
  - >-
    react-console at baf6dae3:
    components/configuration/resources/accounting-exchange-rates.tsx
  - >-
    react-console:components/configuration/config-list-screen.tsx:changeStatus;
    components/configuration/standard.tsx:standardCapabilities (shared-list
    behavior where applicable)
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-DAT-001, TC-DAT-004, TC-LOG-001, TC-LOG-002, TC-LOG-003, TC-LOG-004, TC-LOG-005, TC-PI-001, TC-PI-003]
---

# Exchange rates configuration

## What the Screen Is For

Review and maintain dated exchange prices, including manual entries and missing quotes supplied by a provider.

## What It Shows and Lets People Do

Staff can create a manual price, inspect an existing price, change a manual value, delete a quote or open the provider-fill dialog. Provider prices open read-only. The selected unit determines which currencies can be offered and whether provider filling is available.

## States and Errors

Unit, currency and effective date are fixed in an existing price editor. Save requires a positive rate and a supported currency. Filling reports its results after the service call and exposes provider failures without implying that prices were stored. This collection has no activation actions. Failed reads use the Accounting error treatment, and the shared delete action confirms removal.

## Patterns It Must Respect

Shared configuration list with search, sorting and an empty state. Unit filter using the shared working-unit selection. Standard-width page editor with a rate section and an unsaved-changes guard. Provider-fill dialog reporting written, skipped and unpriced currencies. Delete confirmation and Accounting loading and error panels. No availability filter or bulk selection.
