---
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
---

# ID Registry: Accounting → Products

This register reserves the module’s permanent identifiers and records the next available number. Earlier acceptance corpora retain their own identifiers and are referenced as predecessors. Accounting actor identifiers are shared across the product area.

## Series

| Series | Allocated | Next free |
|---|---|---|
| `MOD-ACC-PRD` | the module charter | — |
| `FEAT-ACC-PRD-` | 01 to 04 | 05 |
| `CON-ACC-PRD-` | 001 to 004 | 005 |
| `ACT-ACC-` | 001 to 006 (product-area wide) | 007 |
| `CAP-ACC-PRD-` | 001 to 019 | 020 |
| `JNY-ACC-PRD-` | 001 to 006 | 007 |
| `ATS-ACC-PRD-` | 001 to 019 (one per capability, same number) | 020 |
| `FND-ACC-PRD-` | 001 to 071 | 072 |
| `OQ-ACC-PRD-` | 001 to 005 | 006 |
| `DOM-ACC-PRD-` | 001, 002, 004 (the number of the Key Concept each realises; 003 is not allocated because its concept is superseded into the Product) | the next concept's number |
| `INV-DOM-ACC-PRD-` | per object: 001-01 to 001-16, 002-01 to 002-10, 004-01 to 004-13 | 001-17, 002-11, 004-14 |
| `STATE-ACC-PRD-` | 001 to 005 | 006 |
| `WF-ACC-PRD-` | 001 to 007 | 008 |
| `SVC-ACC-PRD-` | `products` (one per source module) | — |
| `SCR-ACC-PRD-` | 001 to 004 | 005 |
| `ADR-ACC-PRD-` | 001 to 015 | 016 |
| `IOP-ACC-PRD-` | none: the module asks no model a question | 001 |
| `RESP-ACC` | the product area's Responsibilities (this module's row) | — |

## Rows Inside Artifacts

| Artifact | Title | Rules (`BR-…-NN`) | Scenarios and edge cases (`SC-…-NN`) | Next free BR | Next free SC |
|---|---|---|---|---|---|
| `CAP-ACC-PRD-001` | Understand the available product kinds | 01 to 08 | 01 to 02 | 09 | 03 |
| `CAP-ACC-PRD-002` | Create a product with a permanent identity | 01 to 15 | 01 to 03 | 16 | 04 |
| `CAP-ACC-PRD-003` | Locate products and inspect their configuration | 01 to 08 | 01 to 02 | 09 | 03 |
| `CAP-ACC-PRD-004` | Save product corrections against the version read | 01 to 11 | 01 to 03 | 12 | 04 |
| `CAP-ACC-PRD-005` | Withdraw a product from sale and restore it | 01 to 08 | 01 to 02 | 09 | 03 |
| `CAP-ACC-PRD-006` | Delete a product after its dependencies are removed | 01 to 09 | 01 to 02 | 10 | 03 |
| `CAP-ACC-PRD-007` | Keep domain products under their owning application | 01 to 12 | 01 to 02 | 13 | 03 |
| `CAP-ACC-PRD-008` | Configure prices by audience, period and currency | 01 to 15 | 01 to 02 | 16 | 03 |
| `CAP-ACC-PRD-009` | Preserve migrated special prices for Commerce | 01 to 05 | 01 to 01 | 06 | 02 |
| `CAP-ACC-PRD-010` | Configure discounts for quantity purchases | 01 to 06 | 01 to 02 | 07 | 03 |
| `CAP-ACC-PRD-011` | Offer a collection of products as a bundle | 01 to 09 | 01 to 02 | 10 | 03 |
| `CAP-ACC-PRD-012` | Configure a customer purchase ceiling | 01 to 05 | 01 to 02 | 06 | 03 |
| `CAP-ACC-PRD-013` | Record the follow-up work a purchase needs | 01 to 06 | 01 to 02 | 07 | 03 |
| `CAP-ACC-PRD-014` | Configure a purchase confirmation message | 01 to 08 | 01 to 02 | 09 | 03 |
| `CAP-ACC-PRD-015` | Assign a product’s accounting treatment | 01 to 16 | 01 to 02 | 17 | 03 |
| `CAP-ACC-PRD-016` | Allocate product revenue across dates and accounts | 01 to 10 | 01 to 02 | 11 | 03 |
| `CAP-ACC-PRD-017` | Complete accounting setup for a group of products | 01 to 07 | 01 to 02 | 08 | 03 |
| `CAP-ACC-PRD-018` | Maintain the tax default for a product kind | 01 to 10 | 01 to 01 | 11 | 02 |

| Journey | Title | Assertions (`AS-…-NN`) | Next free AS |
|---|---|---|---|
| `JNY-ACC-PRD-001` | Finance prepares a priced product with accounting setup | 01 to 03 | 04 |
| `JNY-ACC-PRD-002` | Finance withdraws, restores and removes catalogue products | 01 to 03 | 04 |
| `JNY-ACC-PRD-003` | Finance configures valid donation and audience pricing | 01 to 02 | 03 |
| `JNY-ACC-PRD-004` | Console corrections preserve API-configured selling settings | 01 to 02 | 03 |
| `JNY-ACC-PRD-005` | Finance completes revenue treatment and missing setups | 01 to 03 | 04 |
| `JNY-ACC-PRD-006` | Membership keeps its shared product within domain ownership | 01 to 02 | 03 |

| Acceptance Test Set | Scope | Scenarios (`ATS-…-NN`) | Next free |
|---|---|---|---|
| `ATS-ACC-PRD-001` | `CAP-ACC-PRD-001` | 01 to 06 | 07 |
| `ATS-ACC-PRD-002` | `CAP-ACC-PRD-002` | 01 to 15 | 16 |
| `ATS-ACC-PRD-003` | `CAP-ACC-PRD-003` | 01 to 05 | 06 |
| `ATS-ACC-PRD-004` | `CAP-ACC-PRD-004` | 01 to 11 | 12 |
| `ATS-ACC-PRD-005` | `CAP-ACC-PRD-005` | 01 to 09 | 10 |
| `ATS-ACC-PRD-006` | `CAP-ACC-PRD-006` | 01 to 11 | 12 |
| `ATS-ACC-PRD-007` | `CAP-ACC-PRD-007` | 01 to 10 | 11 |
| `ATS-ACC-PRD-008` | `CAP-ACC-PRD-008` | 01 to 11 | 12 |
| `ATS-ACC-PRD-009` | `CAP-ACC-PRD-009` | 01 to 04 | 05 |
| `ATS-ACC-PRD-010` | `CAP-ACC-PRD-010` | 01 to 05 | 06 |
| `ATS-ACC-PRD-011` | `CAP-ACC-PRD-011` | 01 to 09 | 10 |
| `ATS-ACC-PRD-012` | `CAP-ACC-PRD-012` | 01 to 04 | 05 |
| `ATS-ACC-PRD-013` | `CAP-ACC-PRD-013` | 01 to 05 | 06 |
| `ATS-ACC-PRD-014` | `CAP-ACC-PRD-014` | 01 to 07 | 08 |
| `ATS-ACC-PRD-015` | `CAP-ACC-PRD-015` | 01 to 17 | 18 |
| `ATS-ACC-PRD-016` | `CAP-ACC-PRD-016` | 01 to 09 | 10 |
| `ATS-ACC-PRD-017` | `CAP-ACC-PRD-017` | 01 to 07 | 08 |
| `ATS-ACC-PRD-018` | `CAP-ACC-PRD-018` | 01 to 09 | 10 |

## Examination Allocations

| Artifact | Allocated rows | Next free |
|---|---|---|
| `CAP-ACC-PRD-019` | Carry the product catalogue into a workspace export | 06 |
| `ATS-ACC-PRD-019` | `ATS-ACC-PRD-019-01` through `ATS-ACC-PRD-019-02` | 03 |
| Findings | `FND-ACC-PRD-025` through `FND-ACC-PRD-033` | 034 |

| Examination continuation | Allocated rows | Next free |
|---|---|---|
| Domain-save variants | `BR-CAP-ACC-PRD-007-11` through `BR-CAP-ACC-PRD-007-12` | 13 |
| Domain-save proof | `ATS-ACC-PRD-007-08` through `ATS-ACC-PRD-007-09` | 10 |
| Finding | `FND-ACC-PRD-034` | 035 |

| Posting proof continuation | Allocated rows | Next free |
|---|---|---|
| Accounting setup | `BR-CAP-ACC-PRD-015-16` | 17 |
| Accounting proof | `ATS-ACC-PRD-015-14` | 15 |

## Design Allocation

Allocated 2026-10-23 by the design draft (job accounting-products-desi-draft-1) before any design file was written.

| Id | Title |
|---|---|
| `DOM-ACC-PRD-001` | Product |
| `DOM-ACC-PRD-002` | Price |
| `DOM-ACC-PRD-004` | Accounting Setup |
| `STATE-ACC-PRD-001` | Product lifecycle |
| `STATE-ACC-PRD-002` | Record lock |
| `STATE-ACC-PRD-003` | Accounting setup lifecycle |
| `STATE-ACC-PRD-004` | Confirmation message setting |
| `STATE-ACC-PRD-005` | Special-price handover |
| `WF-ACC-PRD-001` | Create or replace a product with its owned settings |
| `WF-ACC-PRD-002` | Save a product and its accounting setup from the console |
| `WF-ACC-PRD-003` | Delete a product and clear its confirmation template |
| `WF-ACC-PRD-004` | Save a domain product inside the domain's transaction |
| `WF-ACC-PRD-005` | Save many accounting setups at once |
| `WF-ACC-PRD-006` | Hand migrated special prices over to Commerce |
| `WF-ACC-PRD-007` | Carry the product catalogue into a workspace export |
| `SVC-ACC-PRD-products` | Products Service Module |
| `SCR-ACC-PRD-001` | Products List |
| `SCR-ACC-PRD-002` | New Product |
| `SCR-ACC-PRD-003` | Product Editor |
| `SCR-ACC-PRD-004` | Default Tax Class by Product Type |
| `ADR-ACC-PRD-001` | One Common Product Identity With Domain-Owned Extensions |
| `ADR-ACC-PRD-002` | Domain Transactions Include the Common Product Write |
| `ADR-ACC-PRD-003` | Product Kind Ownership Restricts Service Writers |
| `ADR-ACC-PRD-004` | Financial Setup Has Independent Permissions and Versioning |
| `ADR-ACC-PRD-005` | Versions Detect Stale Writes; Product Locks Serialize Local Changes |
| `ADR-ACC-PRD-006` | Replacement Omission Semantics Remain Unresolved |
| `ADR-ACC-PRD-007` | Product Configuration Does Not Opt Into Custom Fields |
| `ADR-ACC-PRD-008` | Owned Template Changes Cross the Product Transaction Boundary |
| `ADR-ACC-PRD-009` | Purchase Consumers Apply Stored Selling Configuration |
| `ADR-ACC-PRD-010` | Posting Freezes Accounts Resolved From Current Configuration |
| `ADR-ACC-PRD-011` | Existing Product Tax Records Await the Commerce Transfer |
| `ADR-ACC-PRD-012` | Creation Establishes a Permanent Readable Product Identity |
| `ADR-ACC-PRD-013` | Shared Table Reads and Durable Migration Handovers |
| `ADR-ACC-PRD-014` | Submissions Publication Is Not Established by These Sources |
| `ADR-ACC-PRD-015` | History and Change Events Remain an Open Product Choice |
| `FND-ACC-PRD-035` to `FND-ACC-PRD-042` | Design findings |
| `OQ-ACC-PRD-004` to `OQ-ACC-PRD-005` | Design open questions |

## Design Examination Allocations

Reserved before examination findings are written.

| Id | Subject |
|---|---|
| `FND-ACC-PRD-043` | Brief availability resolved; planning approval remains unestablished |
| `FND-ACC-PRD-044` | Remote template changes survive local rollback |
| `FND-ACC-PRD-045` | Enforcement and concurrency limits |
| `FND-ACC-PRD-046` | Unverified Commerce realization mechanism |
| `FND-ACC-PRD-047` | Tax-default panel access and inactive-kind coverage |
| `FND-ACC-PRD-048` | Additional domain-save audience and kind differences |
| `FND-ACC-PRD-049` | Submissions publication evidence unavailable |

## Testing Back-Fill Allocations

Reserved before writing the testing back-fill artifacts. Existing identifiers remain allocated.

| Series | Allocated | Next free |
|---|---|---|
| `FAS-ACC-PRD-` | 01 to 04 | 05 |
| `FAS-ACC-PRD-NN-NN` | each suite: 01 to 05 | each suite: 06 |
| `TST-ACC-PRD-` | 001 to 066 | 067 |
| `FND-ACC-PRD-` | 051 to 071 | 072 |

| Capability Test Specification | Added scenarios | Next free |
|---|---|---|
| `ATS-ACC-PRD-001` | `ATS-ACC-PRD-001-05` through `ATS-ACC-PRD-001-06` | 07 |
| `ATS-ACC-PRD-002` | `ATS-ACC-PRD-002-14` through `ATS-ACC-PRD-002-15` | 16 |
| `ATS-ACC-PRD-003` | `ATS-ACC-PRD-003-05` through `ATS-ACC-PRD-003-05` | 06 |
| `ATS-ACC-PRD-004` | `ATS-ACC-PRD-004-10` through `ATS-ACC-PRD-004-11` | 12 |
| `ATS-ACC-PRD-005` | `ATS-ACC-PRD-005-07` through `ATS-ACC-PRD-005-09` | 10 |
| `ATS-ACC-PRD-006` | `ATS-ACC-PRD-006-10` through `ATS-ACC-PRD-006-11` | 12 |
| `ATS-ACC-PRD-007` | `ATS-ACC-PRD-007-10` through `ATS-ACC-PRD-007-10` | 11 |
| `ATS-ACC-PRD-008` | `ATS-ACC-PRD-008-10` through `ATS-ACC-PRD-008-11` | 12 |
| `ATS-ACC-PRD-009` | `ATS-ACC-PRD-009-04` through `ATS-ACC-PRD-009-04` | 05 |
| `ATS-ACC-PRD-010` | `ATS-ACC-PRD-010-04` through `ATS-ACC-PRD-010-05` | 06 |
| `ATS-ACC-PRD-011` | `ATS-ACC-PRD-011-09` through `ATS-ACC-PRD-011-09` | 10 |
| `ATS-ACC-PRD-012` | `ATS-ACC-PRD-012-03` through `ATS-ACC-PRD-012-04` | 05 |
| `ATS-ACC-PRD-013` | `ATS-ACC-PRD-013-04` through `ATS-ACC-PRD-013-05` | 06 |
| `ATS-ACC-PRD-014` | `ATS-ACC-PRD-014-05` through `ATS-ACC-PRD-014-07` | 08 |
| `ATS-ACC-PRD-015` | `ATS-ACC-PRD-015-15` through `ATS-ACC-PRD-015-17` | 18 |
| `ATS-ACC-PRD-016` | `ATS-ACC-PRD-016-08` through `ATS-ACC-PRD-016-09` | 10 |
| `ATS-ACC-PRD-017` | `ATS-ACC-PRD-017-06` through `ATS-ACC-PRD-017-07` | 08 |
| `ATS-ACC-PRD-018` | `ATS-ACC-PRD-018-08` through `ATS-ACC-PRD-018-09` | 10 |
| `ATS-ACC-PRD-019` | `ATS-ACC-PRD-019-03` through `ATS-ACC-PRD-019-03` | 04 |

| Executable Suite | Repository | File |
|---|---|---|
| `TST-ACC-PRD-001` | react-console | `acceptance/accounting/playwright/journeys/products/ACT-ACC-0100.spec.ts` |
| `TST-ACC-PRD-002` | react-console | `acceptance/accounting/playwright/journeys/products/ACT-ACC-0102.spec.ts` |
| `TST-ACC-PRD-003` | react-console | `acceptance/accounting/playwright/journeys/products/ACT-ACC-0107.spec.ts` |
| `TST-ACC-PRD-004` | react-console | `acceptance/accounting/playwright/journeys/products/ACT-ACC-0108.spec.ts` |
| `TST-ACC-PRD-005` | react-console | `acceptance/accounting/playwright/journeys/products/ACT-ACC-0110.spec.ts` |
| `TST-ACC-PRD-006` | react-console | `acceptance/accounting/playwright/journeys/products/ACT-ACC-0112.spec.ts` |
| `TST-ACC-PRD-007` | react-console | `acceptance/accounting/playwright/journeys/products/ACT-ACC-0114.spec.ts` |
| `TST-ACC-PRD-008` | react-console | `acceptance/accounting/playwright/journeys/products/ACT-ACC-0116.spec.ts` |
| `TST-ACC-PRD-009` | react-console | `acceptance/accounting/playwright/journeys/products/ACT-ACC-0118.spec.ts` |
| `TST-ACC-PRD-010` | react-console | `acceptance/accounting/playwright/journeys/products/ACT-ACC-0119.spec.ts` |
| `TST-ACC-PRD-011` | react-console | `acceptance/accounting/playwright/journeys/products/ACT-ACC-0121.spec.ts` |
| `TST-ACC-PRD-012` | react-console | `acceptance/accounting/playwright/journeys/products/ACT-ACC-0122.spec.ts` |
| `TST-ACC-PRD-013` | react-console | `acceptance/accounting/playwright/journeys/products/ACT-ACC-0124.spec.ts` |
| `TST-ACC-PRD-014` | react-console | `acceptance/accounting/playwright/journeys/products/ACT-ACC-0136.spec.ts` |
| `TST-ACC-PRD-015` | react-console | `acceptance/accounting/playwright/journeys/products/ACT-ACC-0143.spec.ts` |
| `TST-ACC-PRD-016` | react-console | `acceptance/accounting/playwright/journeys/products/ACT-ACC-0147.spec.ts` |
| `TST-ACC-PRD-017` | react-console | `e2e/dev/accounting-configuration-walk.dev.spec.ts` |
| `TST-ACC-PRD-018` | react-console | `e2e/dev/products-common-walk.dev.spec.ts` |
| `TST-ACC-PRD-019` | react-console | `e2e/dev/products-screens-walk.dev.spec.ts` |
| `TST-ACC-PRD-020` | react-console | `e2e/mock/accounting-product-common.mock.spec.ts` |
| `TST-ACC-PRD-021` | react-console | `e2e/mock/accounting-products-list.mock.spec.ts` |
| `TST-ACC-PRD-022` | react-console | `e2e/mock/accounting-products.mock.spec.ts` |
| `TST-ACC-PRD-023` | react-console | `e2e/mock/accounting-tax.mock.spec.ts` |
| `TST-ACC-PRD-024` | react-console | `e2e/mock/eligibility-card.mock.spec.ts` |
| `TST-ACC-PRD-025` | services-accounting | `modules/products/tests/e2e/product-accounting-setups.e2e.spec.js` |
| `TST-ACC-PRD-026` | services-accounting | `modules/products/tests/e2e/product-accounting.e2e.spec.js` |
| `TST-ACC-PRD-027` | services-accounting | `modules/products/tests/e2e/product-features.e2e.spec.js` |
| `TST-ACC-PRD-028` | services-accounting | `modules/products/tests/e2e/products-security.e2e.spec.js` |
| `TST-ACC-PRD-029` | services-accounting | `modules/products/tests/e2e/products-shared-base.e2e.spec.js` |
| `TST-ACC-PRD-030` | services-accounting | `modules/products/tests/e2e/products.e2e.spec.js` |
| `TST-ACC-PRD-031` | services-accounting | `modules/products/tests/integration/db/products.table.integration.spec.js` |
| `TST-ACC-PRD-032` | services-accounting | `modules/products/tests/integration/db/save-product-function.integration.spec.js` |
| `TST-ACC-PRD-033` | services-accounting | `modules/products/tests/integration/db/special-prices-a12-migration.integration.spec.js` |
| `TST-ACC-PRD-034` | services-accounting | `modules/products/tests/integration/services/persistence/communication-templates.queries.integration.spec.js` |
| `TST-ACC-PRD-035` | services-accounting | `modules/products/tests/integration/services/persistence/pricing-audiences.integration.spec.js` |
| `TST-ACC-PRD-036` | services-accounting | `modules/products/tests/integration/services/persistence/product-accounting-setups.integration.spec.js` |
| `TST-ACC-PRD-037` | services-accounting | `modules/products/tests/integration/services/persistence/product-accounting-setups.queries.integration.spec.js` |
| `TST-ACC-PRD-038` | services-accounting | `modules/products/tests/integration/services/persistence/product-types.queries.integration.spec.js` |
| `TST-ACC-PRD-039` | services-accounting | `modules/products/tests/integration/services/persistence/products.features.integration.spec.js` |
| `TST-ACC-PRD-040` | services-accounting | `modules/products/tests/integration/services/persistence/products.integration.spec.js` |
| `TST-ACC-PRD-041` | services-accounting | `modules/products/tests/integration/services/persistence/products.queries.integration.spec.js` |
| `TST-ACC-PRD-042` | services-accounting | `modules/products/tests/integration/services/persistence/products.shared-base.integration.spec.js` |
| `TST-ACC-PRD-043` | services-accounting | `modules/products/tests/integration/services/persistence/task-configurations.queries.integration.spec.js` |
| `TST-ACC-PRD-044` | services-accounting | `modules/products/tests/unit/api/products-api-mapper.spec.js` |
| `TST-ACC-PRD-045` | services-accounting | `modules/products/tests/unit/carried/donation-products/object/change-validation.spec.js` |
| `TST-ACC-PRD-046` | services-accounting | `modules/products/tests/unit/carried/donation-products/object/cleaning.spec.js` |
| `TST-ACC-PRD-047` | services-accounting | `modules/products/tests/unit/carried/donation-products/object/deletion-validation.spec.js` |
| `TST-ACC-PRD-048` | services-accounting | `modules/products/tests/unit/carried/donation-products/object/generate-identifier.spec.js` |
| `TST-ACC-PRD-049` | services-accounting | `modules/products/tests/unit/carried/donation-products/object/validation.spec.js` |
| `TST-ACC-PRD-050` | services-accounting | `modules/products/tests/unit/carried/legacy-import-products/object/change-validation.spec.js` |
| `TST-ACC-PRD-051` | services-accounting | `modules/products/tests/unit/carried/legacy-import-products/object/cleaning.spec.js` |
| `TST-ACC-PRD-052` | services-accounting | `modules/products/tests/unit/carried/legacy-import-products/object/deletion-validation.spec.js` |
| `TST-ACC-PRD-053` | services-accounting | `modules/products/tests/unit/carried/legacy-import-products/object/generate-identifier.spec.js` |
| `TST-ACC-PRD-054` | services-accounting | `modules/products/tests/unit/carried/legacy-import-products/object/validation.spec.js` |
| `TST-ACC-PRD-055` | services-accounting | `modules/products/tests/unit/carried/miscellaneous-products/object/change-validation.spec.js` |
| `TST-ACC-PRD-056` | services-accounting | `modules/products/tests/unit/carried/miscellaneous-products/object/cleaning.spec.js` |
| `TST-ACC-PRD-057` | services-accounting | `modules/products/tests/unit/carried/miscellaneous-products/object/deletion-validation.spec.js` |
| `TST-ACC-PRD-058` | services-accounting | `modules/products/tests/unit/carried/miscellaneous-products/object/validation.spec.js` |
| `TST-ACC-PRD-059` | services-accounting | `modules/products/tests/unit/carried/product-financial-configs/object/change-validation.spec.js` |
| `TST-ACC-PRD-060` | services-accounting | `modules/products/tests/unit/carried/product-financial-configs/object/cleaning.spec.js` |
| `TST-ACC-PRD-061` | services-accounting | `modules/products/tests/unit/carried/product-financial-configs/object/deletion-validation.spec.js` |
| `TST-ACC-PRD-062` | services-accounting | `modules/products/tests/unit/carried/product-financial-configs/object/id-generation.spec.js` |
| `TST-ACC-PRD-063` | services-accounting | `modules/products/tests/unit/carried/product-financial-configs/object/validation.spec.js` |
| `TST-ACC-PRD-064` | services-accounting | `modules/products/tests/unit/carried/products/product-visible-properites.spec.js` |
| `TST-ACC-PRD-065` | services-accounting | `modules/products/tests/unit/carried/products/validate.spec.js` |
| `TST-ACC-PRD-066` | services-accounting | `modules/products/tests/unit/rules/product-rules.spec.js` |

## Control Backfill Findings

| Id | Controls |
|---|---|
| `FND-ACC-PRD-050` | `TC-PI-004`, `TC-AVL-004` |

The default branch reserves the confirmation recovery finding before this draft lands. The conflicting uncommitted catalogue coverage finding uses a fresh reservation; no published identifier changes.
