---
id: ADR-ACC-PRD-012
title: Creation Establishes a Permanent Readable Product Identity
product_area: accounting
module: products
revision: 3
status: proposed
design_intent: proposed
source_sha:
  services-accounting: f47cb263875bbc0c5640fba7dae6785ec32695f8
  react-console: baf6dae382d6f41dce976c7f848667ccc37e076f
decision: Creation uses a supplied or name-derived readable product key that remains unique across workspace
  kinds without collision suffixes, with kind and business unit fixed alongside it.
constrains:
- DOM-ACC-PRD-001
- STATE-ACC-PRD-001
- SVC-ACC-PRD-products
- SCR-ACC-PRD-002
origin: 'products guide, Ids (the product owner, 2026-10-16; no decision id, FND-ACC-PRD-012); older ids: ACCT-M1
  D12'
alternatives:
- option: Keep an opaque key and separate editable code.
  why_not: Two identifiers complicate references and differ from the present configuration-key contract.
- option: Resolve collisions by appending a suffix.
  why_not: The service instead reports the collision and requires the caller to choose another key.
consequences:
- Older generated keys remain readable and deletable but cannot pass product update constraints.
- Collection routes must avoid hiding products with otherwise valid keys.
supersedes: []
evidence:
- 'services-accounting at f47cb263: docs/accounting/products.md (Ids); modules/products/aws/api/products.routes.ts
  (header).'
---

# Creation Establishes a Permanent Readable Product Identity

## Context

A stable common key supports financial and domain references. The implementation uses the readable key instead of a separate editable catalogue code.

## Decision

Creation uses a supplied or name-derived readable product key that remains unique across workspace kinds without collision suffixes, with kind and business unit fixed alongside it.

## Alternatives Considered

Keep an opaque key and separate editable code. Two identifiers complicate references and differ from the present configuration-key contract.

Resolve collisions by appending a suffix. The service instead reports the collision and requires the caller to choose another key.

## Consequences

Changing a kind or business unit requires a new product. Details supported only by unnamed identity guidance remain proposed.
