---
title: Bill
summary: API reference for Bill.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-09-24
library: SAIF.SAIFCode.Core
reference_type: package
---

# Bill

`Bill` is the medical-bill contract carrying e-billing entry data; its `IsBillDiscardable`, `IsBillComplete` and `IsBillUpdateable` members compute UI-facing bill state directly from `BillEntrySourceCode` and `BillStatusCode`, and it carries `[CompareKey]`/`[CompareIgnore]` attributes from `SAIF.Shared.CompareUtilities` for change-comparison support.

## Purpose
- Carries the full bill-entry DTO used by e-billing and claim-bill screens.
- Computes `IsBillDiscardable` from entry source and status, enforcing [CORE-BR-050](../../business-rules.md#core-br-050-a-bill-is-discardable-when-it-is-not-an-e-bill-entry-source-e-or-its-status-is-pen).
- Computes `IsBillComplete` from status, enforcing [CORE-BR-051](../../business-rules.md#core-br-051-a-bill-is-complete-when-its-status-is-com).
- Computes `IsBillUpdateable` from status, enforcing [CORE-BR-052](../../business-rules.md#core-br-052-a-bill-is-updateable-when-its-status-is-pen-ent-aud-or-sus).

## Context
- Namespace: `SAIF.Core.Contracts.Claims.Bills`
- Kind: Class
- Assembly/package: `SAIF.Core` (NuGet package `SAIF.SAIFCode.Core`)

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `Id` | `long Id { get; set; }` | Represents the ID associated with this Bill*. |
| `PatientReferenceNumber` | `string PatientReferenceNumber { get; set; }` | Uniquely identifies the patient reference recorded on this Bill*. |
| `MailRoomReceivedDate` | `DateTime? MailRoomReceivedDate { get; set; }` | Records the date of the mail room received*. |
| `SaifClaimNumber` | `string SaifClaimNumber { get; set; }` | Uniquely identifies the saif claim recorded on this Bill*. |
| `SaifClaimCheckCharacter` | `string SaifClaimCheckCharacter { get; set; }` | Represents the saif claim check character associated with this Bill*. |
| `WorkerFirstName` | `string WorkerFirstName { get; set; }` | Holds the worker first name recorded on this Bill*. |
| `WorkerMiddleInitial` | `string WorkerMiddleInitial { get; set; }` | Represents the worker middle initial associated with this Bill*. |
| `WorkerLastName` | `string WorkerLastName { get; set; }` | Holds the worker last name recorded on this Bill*. |
| `WorkerPhoneNumber` | `string WorkerPhoneNumber { get; set; }` | Uniquely identifies the worker phone recorded on this Bill*. |
| `WorkerBirthDate` | `DateTime? WorkerBirthDate { get; set; }` | Records the date of the worker birth*. |
| `WorkerAddressLine1` | `string WorkerAddressLine1 { get; set; }` | Holds line 1 of the worker mailing address*. |
| `WorkerAddressLine2` | `string WorkerAddressLine2 { get; set; }` | Holds line 2 of the worker mailing address*. |
| `WorkerAddressLine3` | `string WorkerAddressLine3 { get; set; }` | Holds line 3 of the worker mailing address*. |
| `WorkerAddressLine4` | `string WorkerAddressLine4 { get; set; }` | Holds line 4 of the worker mailing address*. |
| `GenderCode` | `string GenderCode { get; set; }` | Classifies the gender using a coded value*. |
| `PatientAccountNumber` | `string PatientAccountNumber { get; set; }` | Uniquely identifies the patient account recorded on this Bill*. |
| `ProviderTaxId` | `string ProviderTaxId { get; set; }` | Uniquely identifies the provider tax value recorded on this Bill*. |
| `ProviderLocationId` | `long? ProviderLocationId { get; set; }` | References the identifier of the associated provider location record*. |
| `ProviderAddressLine1` | `string ProviderAddressLine1 { get; set; }` | Holds line 1 of the provider mailing address*. |
| `ProviderAddressLine2` | `string ProviderAddressLine2 { get; set; }` | Holds line 2 of the provider mailing address*. |
| `ProviderCityName` | `string ProviderCityName { get; set; }` | Holds the provider city name recorded on this Bill*. |
| `ProviderStateCode` | `string ProviderStateCode { get; set; }` | Classifies the provider state using a coded value*. |
| `ProviderZipCode` | `decimal? ProviderZipCode { get; set; }` | Classifies the provider zip using a coded value*. |
| `ProviderLicenseNumber` | `string ProviderLicenseNumber { get; set; }` | Uniquely identifies the provider license recorded on this Bill*. |
| `IsProviderRestricted` | `bool IsProviderRestricted { get; set; }` | Indicates whether the provider is restricted for this Bill*. |
| `AdmissionDate` | `DateTime? AdmissionDate { get; set; }` | Records the date of the admission*. |
| `DischargeDate` | `DateTime? DischargeDate { get; set; }` | Records the date of the discharge*. |
| `StatementFromDate` | `DateTime? StatementFromDate { get; set; }` | Records the date of the statement from*. |
| `StatementThruDate` | `DateTime? StatementThruDate { get; set; }` | Records the date of the statement thru*. |
| `WorkerTaxId` | `string WorkerTaxId { get; set; }` | Uniquely identifies the worker tax value recorded on this Bill*. |
| `TowId` | `long? TowId { get; set; }` | References the identifier of the associated TOW record*. |
| `IsRebill` | `bool IsRebill { get; set; }` | Indicates whether this Bill is a rebill*. |
| `CurrentBillStatusId` | `long? CurrentBillStatusId { get; set; }` | References the identifier of the associated current bill status record*. |
| `PriorityNumber` | `int PriorityNumber { get; set; }` | Uniquely identifies the priority recorded on this Bill*. |
| `UpdateUser` | `string UpdateUser { get; set; }` | Identifies the user tied to the update on this Bill*. |
| `UpdateNumber` | `int UpdateNumber { get; set; }` | Uniquely identifies the update recorded on this Bill*. |
| `UpdateDate` | `DateTime UpdateDate { get; set; }` | Records the date of the update*. |
| `ReferringProviderName` | `string ReferringProviderName { get; set; }` | Holds the referring provider name recorded on this Bill*. |
| `BillTotalAmount` | `decimal BillTotalAmount { get; set; }` | Records the monetary amount of the bill total*. |
| `DrgCode` | `string DrgCode { get; set; }` | Classifies the DRG using a coded value*. |
| `BillPackageQuantity` | `int? BillPackageQuantity { get; set; }` | Records the quantity of bill package*. |
| `WorkflowBypassCode` | `string WorkflowBypassCode { get; set; }` | Classifies the workflow bypass using a coded value*. |
| `CurrentResponsiblePartyId` | `string CurrentResponsiblePartyId { get; set; }` | References the identifier of the associated current responsible party record*. |
| `CurrentStatusEffectiveDate` | `DateTime? CurrentStatusEffectiveDate { get; set; }` | Records the date of the current status effective*. |
| `CurrentUpdateUser` | `string CurrentUpdateUser { get; set; }` | Identifies the user tied to the current update on this Bill*. |
| `CurrentNextReviewDate` | `DateTime? CurrentNextReviewDate { get; set; }` | Records the date of the current next review*. |
| `UbBillTypeCode` | `string UbBillTypeCode { get; set; }` | Classifies the UB bill type using a coded value*. |
| `CBPAdmissionTypeCode` | `string CBPAdmissionTypeCode { get; set; }` | Classifies the CBP admission type using a coded value*. |
| `Url` | `string Url { get; set; }` | Holds the URL associated with this Bill*. |
| `BillTypeCode` | `string BillTypeCode { get; set; }` | Classifies the bill type using a coded value*. |
| `BillStatusCode` | `string BillStatusCode { get; set; }` | Classifies the bill status using a coded value*. |
| `BillEntrySourceCode` | `string BillEntrySourceCode { get; set; }` | Classifies the bill entry source using a coded value*. |
| `ImageId` | `long ImageId { get; set; }` | References the identifier of the associated image record*. |
| `Services` | `IList<BillService> Services { get; set; }` | Contains the collection of BillService entries associated with this Bill*. |
| `Notes` | `IList<Note> Notes { get; set; }` | Contains the collection of Note entries associated with this Bill*. |
| `IsBillDiscardable` | `bool IsBillDiscardable { get; set; }` | Computed: true when the bill is not an e-bill (entry source ≠ "E") or its status is PEN, enforcing [CORE-BR-050](../../business-rules.md#core-br-050-a-bill-is-discardable-when-it-is-not-an-e-bill-entry-source-e-or-its-status-is-pen). |
| `IsBillComplete` | `bool IsBillComplete { get; set; }` | Computed: true when `BillStatusCode` is COM, enforcing [CORE-BR-051](../../business-rules.md#core-br-051-a-bill-is-complete-when-its-status-is-com). |
| `IsBillUpdateable` | `bool IsBillUpdateable { get; set; }` | Computed: true when `BillStatusCode` is PEN, ENT, AUD or SUS, enforcing [CORE-BR-052](../../business-rules.md#core-br-052-a-bill-is-updateable-when-its-status-is-pen-ent-aud-or-sus). |

> **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/Bill.cs
