---
title: BillStatusCode
summary: Defines the bill status code domain consumed by Bill's computed flags and by SAIF.Domain.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-09-24
library: SAIF.SAIFCode.Core
reference_type: package
operation_id: OP-CORE-07
trigger: Status mapping
---

# BillStatusCode

`BillStatusCode` is the code-enumeration type for the bill status domain, defining the fixed status set that `Bill`'s computed flags evaluate against and that `SAIF.Domain`'s `Bill.ModifyStatus` operation consumes.

| Field | Value |
| --- | --- |
| **Operation ID** | OP-CORE-07 |
| **Trigger** | Status mapping |
| **Inputs** | Status literal (COM, ENT, AUD, PEN, APP, DIS, EXT, REV, SUS) |
| **Outputs** | `BillStatusCode` instance |
| **Primary components** | `BillStatusCode` |
| **Entry point** | `Core/SAIF.Core/Contracts/Claims/Bills/BillStatusCode.cs` |

## Steps

1. `BillStatusCode` defines the closed status set COM, ENT, AUD, PEN, APP, DIS, EXT, REV, and SUS ([CORE-BR-053](../business-rules.md#core-br-053-the-bill-status-code-set-is-com-ent-aud-pen-app-dis-ext-rev-sus)).
2. `Bill`'s computed flags (`IsBillDiscardable`, `IsBillComplete`, `IsBillUpdateable`) compare `BillStatusCode` values against this set.
3. `SAIF.Domain`'s `Bill.ModifyStatus` operation also consumes this code set to validate status transitions*.

## Process flow

The following diagram visualizes this operation's control flow.

```mermaid
flowchart TD
	Start([Status literal supplied]) --> Lookup["Resolve against the<br>fixed BillStatusCode set"]
	Lookup --> EndOk([Code instance returned])
```

## Failure and edge-case behavior
- A status literal outside the defined set is not verified to have defined behavior in this contract**.

## Related documentation
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)

> **Note:** Statements marked with `*` were inferred from code structure, naming
> conventions, or contextual evidence where direct confirmation was not available
> in source artifacts. Statements marked with `**` could not be confirmed; treat
> as unknown until verified.

## Sources
- Core/SAIF.Core/Contracts/Claims/Bills/BillStatusCode.cs
