01must proveProposed | Creation through the ordinary API starts a batch in Open and rejects any supplied status. ✓ A request with unit, date and name returns an Open batch.✗ Supplying Closed during creation fails without a write. | validation | api | test |
02must proveProposed | Within a business unit, each batch name belongs to one batch; another unit can use the same name. ✓ Different units can both use the name Daily.✗ Reusing Daily within the same unit fails. | validation | service, database | test |
03must proveProposed | The date determines the fiscal year and period, replacing submitted fiscal values and refusing dates outside the unit’s fiscal calendar. ✓ An October date derives the October fiscal context.✗ A date beyond all configured fiscal years fails. | calculation | service | test |
04must proveProposed | A new batch cannot use a date in a period that is not open, and the refusal identifies that period without duplicating its name. ✓ An Open October period accepts a batch dated within it.✗ A February date fails once that fiscal period is closed. | validation | service | test |
05must proveProposed | Creation fills an omitted currency with the unit’s base currency and rejects a different currency. | validation | service | test |
06must proveProposed | A batch name must contain at least one non-space character. | validation | api, database, console | test |
07must proveProposed | An automatically assigned batch reference begins with the business unit’s reference, and an existing reference cannot be assigned to a second batch. | validation | service | test |
08must proveProposed | Staff creation allows transaction and legacy types, while deferred revenue and cost of goods sold types belong to fiscal close. | policy | service | observed |
09must proveProposed | The caller needs batch-create permission to create a batch. | permission | api, console | test |
10must proveProposed | Creation uses the authorized workspace and rejects a body naming another workspace. | validation | api | test |