---
title: SAIF.Business.Provider operations and processes
summary: Operation catalog and cross-operation hub for the provider domain — location/address/contact/identity/tax/relationship/service maintenance, search, and external payment/reference lookups.
status: draft
owner: SAIF
last_reviewed: 2026-07-30
library: SAIF.Business.Provider
reference_type: package
---

# SAIF.Business.Provider operations and processes

This page is the operation catalog and cross-operation hub for `SAIF.Business.Provider`. The library exposes fourteen operations covering the provider aggregate (a header plus lazily loaded location and tax ID collections), a multi-criteria provider search, per-attribute maintenance of everything hanging off a provider location (address, contact, identity, tax ID, relationship, MCO membership, service/contract, ineligibility period, DCBS cost/charge, notes), read-only external API calls to ClaimCenter, and the cached provider reference/code data used throughout. Each operation's detailed, step-by-step logic lives in its own page under `operations/`.

## Operation catalog

| Operation | Intent | Trigger | Inputs | Outputs | Rules | Tables | SQL |
| --- | --- | --- | --- | --- | --- | --- | --- |
| [Retrieve provider aggregate](operations/retrieve-provider-aggregate.md) | Load a provider header and expose its lazily loaded location and tax ID collections | `clsProvider.GetProvider(dpi, providerSeqNum)` | `ProviderSeqNum`, `IDataPortalInfo` | Populated `clsProvider` with cached `Locations`/`TaxIds` collections | — | [PROVIDER](database-tables.md#provider), [PROVIDER_LOCATION](database-tables.md#provider_location), [PROVIDER_TAX_ID](database-tables.md#provider_tax_id) | [SQL-018](sql/SQL-018-insert-provider.md), [SQL-042](sql/SQL-042-retrieve-provider.md), [SQL-066](sql/SQL-066-update-provider.md), [SQL-088](sql/SQL-088-delete-provider.md) |
| [Search providers](operations/search-providers.md) | Run a multi-criteria, dynamically assembled search across location, address, tax, identity, service, and MCO data | Caller populates `clsSearchCriteria` and calls `searchForProvider()` | `ProviderName`, `TaxId`, `OtherId`, `ProviderType`, `ServiceType`, `MCOName`, address/phone fields | `clsProviders` collection capped at 300 rows | [BR-001](business-rules.md#br-001-search-requires-at-least-one-criterion), [BR-002](business-rules.md#br-002-search-zip-code-must-be-numeric) | [PROVIDER_LOCATION](database-tables.md#provider_location), [PROVIDER_ADDRESS](database-tables.md#provider_address), [PROVIDER_TAX_ID](database-tables.md#provider_tax_id) | — |
| [Maintain provider location](operations/maintain-provider-location.md) | Create, update, and delete a provider's practice location and sync identity to Contact Manager | Caller edits `clsProviderLocation` and calls `Save()`/`Delete()` | `ProviderTypeCode`, business/individual identity, contact numbers, approval/primary/eligibility flags | Persisted location row; Contact Manager `ContactDto` sync | [BR-003](business-rules.md#br-003-only-one-primary-location-is-allowed), [BR-004](business-rules.md#br-004-provider-type-is-required-for-a-location), [BR-005](business-rules.md#br-005-business-locations-require-a-business-name), [BR-006](business-rules.md#br-006-individual-locations-require-a-last-name) | [PROVIDER_LOCATION](database-tables.md#provider_location) | [SQL-028](sql/SQL-028-insert-provider-location.md), [SQL-053](sql/SQL-053-retrieve-provider-location.md), [SQL-076](sql/SQL-076-update-provider-location.md), [SQL-098](sql/SQL-098-delete-provider-location.md) |
| [Maintain provider address](operations/maintain-provider-address.md) | Persist provider address records with date-overlap validation and USPS normalization | Caller edits `clsProviderAddress` and calls `Save()`/`Delete()` | Address type, dates, lines, city/state/zip/country, `ForeignAddressFlag` | Persisted address row; standardized content; Contact Manager `AddressDto` sync | [BR-007](business-rules.md#br-007-address-effective-periods-must-not-overlap), [BR-008](business-rules.md#br-008-domestic-addresses-require-city-state-and-zip-data), [BR-026](business-rules.md#br-026-a-provider-address-expiration-date-cannot-be-removed-while-a-later-address-of-the-same-type-exists) | [PROVIDER_ADDRESS](database-tables.md#provider_address) | [SQL-019](sql/SQL-019-insert-provider-address.md), [SQL-043](sql/SQL-043-retrieve-provider-address.md), [SQL-067](sql/SQL-067-update-provider-address.md), [SQL-089](sql/SQL-089-delete-provider-address.md) |
| [Maintain provider contact](operations/maintain-provider-contact.md) | Persist named contact records requiring a type and a communication path | Caller edits `clsProviderContact` and calls `Save()`/`Delete()` | `ProviderContactCode`, `Name`, `EmailAddress`, `PhoneNumber` | Persisted contact row | [BR-009](business-rules.md#br-009-contacts-require-a-type-and-a-communication-path) | [PROVIDER_CONTACT](database-tables.md#provider_contact) | [SQL-021](sql/SQL-021-insert-provider-contact.md), [SQL-045](sql/SQL-045-retrieve-provider-contact.md), [SQL-069](sql/SQL-069-update-provider-contact.md), [SQL-091](sql/SQL-091-delete-provider-contact.md) |
| [Maintain provider identity](operations/maintain-provider-identity.md) | Persist alternate provider identifiers, including NPI validation, and sync to Contact Manager | Caller edits `clsProviderIdentity` and calls `Save()`/`Delete()` | `ProviderIdentityCode`, `IdentityValue`, `IdentityName` | Persisted identity row; Contact Manager `IdentifierDto` sync | [BR-010](business-rules.md#br-010-national-provider-id-values-must-be-10-digits) | [PROVIDER_IDENTITY](database-tables.md#provider_identity) | [SQL-024](sql/SQL-024-insert-provider-identity.md), [SQL-048](sql/SQL-048-retrieve-provider-identity.md), [SQL-072](sql/SQL-072-update-provider-identity.md), [SQL-094](sql/SQL-094-delete-provider-identity.md) |
| [Maintain provider tax ID and sync TIN contact](operations/maintain-provider-tax-id.md) | Persist provider tax IDs, enforce format/uniqueness/immutability, and sync the primary TIN to Contact Manager | Caller edits `clsProviderTaxID` and calls `Save()`/`Delete()` | `TaxID`, `RegisteredName`, W9 dates, address fields, `PrimaryTaxIDFlag` | Persisted tax ID row; Contact Manager `TaxDto` sync for the primary TIN | [BR-011](business-rules.md#br-011-tin-values-must-be-nine-numeric-digits-and-unique), [BR-012](business-rules.md#br-012-only-one-primary-tin-is-allowed-per-provider), [BR-025](business-rules.md#br-025-an-existing-provider-tax-id-value-is-immutable-once-saved) | [PROVIDER_TAX_ID](database-tables.md#provider_tax_id), [PROVIDER](database-tables.md#provider) | [SQL-036](sql/SQL-036-insert-provider-tax-i-d.md), [SQL-060](sql/SQL-060-retrieve-provider-tax-i-d.md), [SQL-084](sql/SQL-084-update-provider-tax-i-d.md), [SQL-106](sql/SQL-106-delete-provider-tax-i-d.md) |
| [Maintain provider relationship](operations/maintain-provider-relationship.md) | Persist provider-to-provider relationships, block invalid/overlapping links, and protect in-use relationships from deletion | Caller edits `clsProviderRelationship` and calls `Save()`/`Delete()` | Child/parent `ProviderLocationSeqNum`, `ProviderRelationshipCode`, `EffDate`/`ExpDate` | Persisted relationship row; Contact Manager sync for `"WRK"` relationships | [BR-013](business-rules.md#br-013-relationship-participants-must-exist-and-be-distinct), [BR-014](business-rules.md#br-014-relationship-dates-must-be-valid-and-non-overlapping), [BR-024](business-rules.md#br-024-a-provider-relationship-in-use-cannot-be-deleted-only-expired) | [PROVIDER_RELATIONSHIP](database-tables.md#provider_relationship), [PROVIDER_LOCATION](database-tables.md#provider_location) | [SQL-030](sql/SQL-030-insert-provider-relationship.md), [SQL-055](sql/SQL-055-retrieve-provider-relationship.md), [SQL-078](sql/SQL-078-update-provider-relationship.md), [SQL-100](sql/SQL-100-delete-provider-relationship.md) |
| [Maintain provider MCO membership](operations/maintain-provider-mco-membership.md) | Persist MCO membership periods and rates, bounded by the plan's active dates and any effective service contract | Caller edits `clsProviderMCOMembership` and calls `Save()`/`Delete()` | `MCOPlanID`, `EffDate`/`ExpDate`, admin fee flag/rate, specialty rates | Persisted membership row; Contact Manager `MembershipDto` sync | [BR-016](business-rules.md#br-016-mco-membership-period-must-fall-within-the-mco-plans-active-date-range), [BR-017](business-rules.md#br-017-mco-membership-expiration-cannot-precede-an-effective-service-contracts-expiration), [BR-018](business-rules.md#br-018-mco-membership-admin-fee-flag-and-rate-must-be-mutually-consistent) | [MCO_PROVIDER](database-tables.md#mco_provider), [MCO_PLAN](database-tables.md#mco_plan), [PROVIDER_SERVICE_CONTRACT](database-tables.md#provider_service_contract) | [SQL-029](sql/SQL-029-insert-provider-m-c-o-membership.md), [SQL-054](sql/SQL-054-retrieve-provider-m-c-o-membership.md), [SQL-077](sql/SQL-077-update-provider-m-c-o-membership.md), [SQL-099](sql/SQL-099-delete-provider-m-c-o-membership.md) |
| [Maintain provider service and service contract](operations/maintain-provider-service-and-contract.md) | Persist a provider location's offered services, service-type reference links, and pricing/contract terms | Caller edits `clsProviderService`/`clsProviderServiceContract`/`clsProviderServiceType` and calls `Save()`/`Delete()` | `ProviderServiceCode`, `PrimaryServiceFlag`, contract pricing fields, `ServiceTypeCode`/`CBPServiceCode`, `MCOPlanID` | Persisted service, contract, and service-type rows | [BR-019](business-rules.md#br-019-exactly-one-primary-provider-service-is-allowed-per-location-without-duplicate-service-codes), [BR-020](business-rules.md#br-020-provider-service-contract-pricing-fields-are-mutually-exclusive), [BR-021](business-rules.md#br-021-package-priced-and-equipment-service-contract-rows-carry-additional-cross-field-requirements) | [PROVIDER_SERVICE](database-tables.md#provider_service), [PROVIDER_SERVICE_CONTRACT](database-tables.md#provider_service_contract), [PROVIDER_SERVICE_TYPE](database-tables.md#provider_service_type) | [SQL-032](sql/SQL-032-insert-provider-service.md), [SQL-034](sql/SQL-034-insert-provider-service-contract.md), [SQL-035](sql/SQL-035-insert-provider-service-type.md), [SQL-080](sql/SQL-080-update-provider-service.md), [SQL-082](sql/SQL-082-update-provider-service-contract.md), [SQL-083](sql/SQL-083-update-provider-service-type.md) |
| [Maintain provider location periods](operations/maintain-provider-location-periods.md) | Persist provider ineligibility periods and DCBS cost/charge factors, each bounded by its own date and value rules | Caller edits `clsProviderIneligibilityPeriod`/`clsProviderDcbsCostCharge` and calls `Save()`/`Delete()` | `IneligibilityReasonCode`, `StartDate`/`TerminationDate`; `EffDate`/`ExpDate`, `CostChargeFactor` | Persisted ineligibility period and DCBS cost/charge rows | [BR-022](business-rules.md#br-022-provider-ineligibility-periods-must-fall-within-a-reasonable-non-future-date-range), [BR-023](business-rules.md#br-023-provider-dcbs-costcharge-factor-must-be-between-0000-and-1000-inclusive) | [PROVIDER_INELIG_PERIOD](database-tables.md#provider_inelig_period), [PROVIDER_DCBS_COST_CHARGE](database-tables.md#provider_dcbs_cost_charge) | [SQL-026](sql/SQL-026-insert-provider-ineligibility-period.md), [SQL-023](sql/SQL-023-insert-provider-dcbs-cost-charge.md), [SQL-074](sql/SQL-074-update-provider-ineligibility-period.md), [SQL-071](sql/SQL-071-update-provider-dcbs-cost-charge.md) |
| [Maintain provider notes](operations/maintain-provider-notes.md) | Persist note records attached to provider, location, bill, or claim data | Caller edits `clsNote` and calls `Save()`/`Delete()` | `NoteTypeCode`, `NoteCategoryCode`, `ActiveFlag`, optional foreign keys, `NoteTxt` | Persisted note row | [BR-015](business-rules.md#br-015-notes-require-both-type-and-text) | [CBP_NOTE](database-tables.md#cbp_note) | [SQL-017](sql/SQL-017-insert-note.md), [SQL-041](sql/SQL-041-retrieve-note.md), [SQL-065](sql/SQL-065-update-note.md), [SQL-087](sql/SQL-087-delete-note.md) |
| [Retrieve ClaimCenter payment history](operations/retrieve-claimcenter-payment-history.md) | Call the ClaimCenter API to retrieve payment history for a provider tax ID | Caller invokes `clsPaymentApi.GetPayments(dpi, taxId, ...)` | `TaxId`, result-limit and inclusion flags | `PaymentList` payload; `HasPayments` flag | None catalogued | — | — |
| [Provider reference data lookups](operations/provider-reference-data-lookups.md) | Resolve cached code/reference lists used to validate and display provider domain values | Any read of a provider code table or resolution of a code description during another operation | Code value, optional effective date | Code description; derived boolean flags | None catalogued | [PROVIDER_TYPE_CODE](database-tables.md#provider_type_code), [PROVIDER_ADDRESS_CODE](database-tables.md#provider_address_code), [PROVIDER_CONTACT_CODE](database-tables.md#provider_contact_code), [PROVIDER_IDENTITY_CODE](database-tables.md#provider_identity_code), [PROVIDER_INELIG_REASON_CD](database-tables.md#provider_inelig_reason_cd), [PROVIDER_RELATIONSHIP_CODE](database-tables.md#provider_relationship_code), [PROVIDER_SERVICE_CODE](database-tables.md#provider_service_code), [CBP_SERVICE_CODE](database-tables.md#cbp_service_code), [MCO_PLAN](database-tables.md#mco_plan) | [SQL-015](sql/SQL-015-generate-provider-type-code.md), [SQL-037](sql/SQL-037-insert-provider-type-code.md), [SQL-061](sql/SQL-061-retrieve-provider-type.md), [SQL-038](sql/SQL-038-retrieve-c-b-p-service.md), [SQL-016](sql/SQL-016-insert-m-c-o-plan.md) |

## Process flow diagram

The following diagram shows how the fourteen operations relate: a provider is retrieved or searched for, its location and everything hanging off that location is maintained through independent per-attribute operations that share the same validate/persist/sync pattern, and two operations (payment history, reference data) sit outside the persistence pipeline as read-only lookups.

```mermaid
flowchart TD
	Start([Caller requests provider data]) --> Retrieve[Retrieve provider aggregate]
	Start --> Search[Search providers]
	Retrieve --> Location[Maintain provider location]
	Location --> Address[Maintain provider address]
	Location --> Contact[Maintain provider contact]
	Location --> Identity[Maintain provider identity]
	Location --> Relationship[Maintain provider relationship]
	Location --> MCO[Maintain provider MCO membership]
	Location --> Service[Maintain provider service and contract]
	Location --> Periods[Maintain provider location periods]
	Retrieve --> TaxID[Maintain provider tax ID<br>and sync TIN contact]
	Location --> Notes[Maintain provider notes]
	TaxID --> Payments[Retrieve ClaimCenter<br>payment history]
	Address --> Reference[Provider reference data lookups]
	Identity --> Reference
	Service --> Reference
	MCO --> Reference
	Location --> Edit[Caller edits properties]
	Address --> Edit
	Contact --> Edit
	Identity --> Edit
	Relationship --> Edit
	MCO --> Edit
	Service --> Edit
	Periods --> Edit
	TaxID --> Edit
	Notes --> Edit
	Edit --> Validate{Business rules pass?}
	Validate -->|No| Errors([Broken rules returned;<br>changes retained in memory])
	Validate -->|Yes| Persist[Insert/update/delete via BOF data portal]
	Persist --> Concurrency{RowsAffected = 1?}
	Concurrency -->|Yes| Sync{External API sync required?}
	Concurrency -->|No| Contention([DB contention/insert error added])
	Sync -->|Yes| Api[Send Contact Manager request]
	Sync -->|No| Done([Changes persisted])
	Api --> Done
```

## Database interactions

The following table summarizes which operations read from or write to the database. Per-step SQL and table citations live in each operation's detail page under `operations/`.

| Operation | SQL | Tables | Type |
| --- | --- | --- | --- |
| [Retrieve provider aggregate](operations/retrieve-provider-aggregate.md) | [SQL-042](sql/SQL-042-retrieve-provider.md), [SQL-053](sql/SQL-053-retrieve-provider-location.md), [SQL-060](sql/SQL-060-retrieve-provider-tax-i-d.md) | [PROVIDER](database-tables.md#provider), [PROVIDER_LOCATION](database-tables.md#provider_location), [PROVIDER_TAX_ID](database-tables.md#provider_tax_id) | Read / Write |
| [Search providers](operations/search-providers.md) | — (dynamic `SqlHelper.ResultSetQuery`) | [PROVIDER_LOCATION](database-tables.md#provider_location), [PROVIDER_ADDRESS](database-tables.md#provider_address), [PROVIDER_TAX_ID](database-tables.md#provider_tax_id) | Read |
| [Maintain provider location](operations/maintain-provider-location.md) | [SQL-028](sql/SQL-028-insert-provider-location.md), [SQL-076](sql/SQL-076-update-provider-location.md), [SQL-098](sql/SQL-098-delete-provider-location.md) | [PROVIDER_LOCATION](database-tables.md#provider_location) | Write |
| [Maintain provider address](operations/maintain-provider-address.md) | [SQL-019](sql/SQL-019-insert-provider-address.md), [SQL-067](sql/SQL-067-update-provider-address.md), [SQL-089](sql/SQL-089-delete-provider-address.md) | [PROVIDER_ADDRESS](database-tables.md#provider_address) | Write |
| [Maintain provider contact](operations/maintain-provider-contact.md) | [SQL-021](sql/SQL-021-insert-provider-contact.md), [SQL-069](sql/SQL-069-update-provider-contact.md), [SQL-091](sql/SQL-091-delete-provider-contact.md) | [PROVIDER_CONTACT](database-tables.md#provider_contact) | Write |
| [Maintain provider identity](operations/maintain-provider-identity.md) | [SQL-024](sql/SQL-024-insert-provider-identity.md), [SQL-072](sql/SQL-072-update-provider-identity.md), [SQL-094](sql/SQL-094-delete-provider-identity.md) | [PROVIDER_IDENTITY](database-tables.md#provider_identity) | Write |
| [Maintain provider tax ID and sync TIN contact](operations/maintain-provider-tax-id.md) | [SQL-036](sql/SQL-036-insert-provider-tax-i-d.md), [SQL-084](sql/SQL-084-update-provider-tax-i-d.md), [SQL-106](sql/SQL-106-delete-provider-tax-i-d.md) | [PROVIDER_TAX_ID](database-tables.md#provider_tax_id), [PROVIDER](database-tables.md#provider) | Write |
| [Maintain provider relationship](operations/maintain-provider-relationship.md) | [SQL-030](sql/SQL-030-insert-provider-relationship.md), [SQL-078](sql/SQL-078-update-provider-relationship.md), [SQL-100](sql/SQL-100-delete-provider-relationship.md) | [PROVIDER_RELATIONSHIP](database-tables.md#provider_relationship), [PROVIDER_LOCATION](database-tables.md#provider_location) | Write |
| [Maintain provider MCO membership](operations/maintain-provider-mco-membership.md) | [SQL-029](sql/SQL-029-insert-provider-m-c-o-membership.md), [SQL-077](sql/SQL-077-update-provider-m-c-o-membership.md), [SQL-099](sql/SQL-099-delete-provider-m-c-o-membership.md) | [MCO_PROVIDER](database-tables.md#mco_provider), [PROVIDER_SERVICE_CONTRACT](database-tables.md#provider_service_contract) | Write |
| [Maintain provider service and service contract](operations/maintain-provider-service-and-contract.md) | [SQL-032](sql/SQL-032-insert-provider-service.md), [SQL-034](sql/SQL-034-insert-provider-service-contract.md), [SQL-035](sql/SQL-035-insert-provider-service-type.md) | [PROVIDER_SERVICE](database-tables.md#provider_service), [PROVIDER_SERVICE_CONTRACT](database-tables.md#provider_service_contract), [PROVIDER_SERVICE_TYPE](database-tables.md#provider_service_type) | Write |
| [Maintain provider location periods](operations/maintain-provider-location-periods.md) | [SQL-026](sql/SQL-026-insert-provider-ineligibility-period.md), [SQL-023](sql/SQL-023-insert-provider-dcbs-cost-charge.md) | [PROVIDER_INELIG_PERIOD](database-tables.md#provider_inelig_period), [PROVIDER_DCBS_COST_CHARGE](database-tables.md#provider_dcbs_cost_charge) | Write |
| [Maintain provider notes](operations/maintain-provider-notes.md) | [SQL-017](sql/SQL-017-insert-note.md), [SQL-065](sql/SQL-065-update-note.md), [SQL-087](sql/SQL-087-delete-note.md) | [CBP_NOTE](database-tables.md#cbp_note) | Write |
| [Retrieve ClaimCenter payment history](operations/retrieve-claimcenter-payment-history.md) | — | — | Read (external REST call only) |
| [Provider reference data lookups](operations/provider-reference-data-lookups.md) | [SQL-061](sql/SQL-061-retrieve-provider-type.md), [SQL-038](sql/SQL-038-retrieve-c-b-p-service.md), [SQL-040](sql/SQL-040-retrieve-m-c-o-plan.md) | [PROVIDER_TYPE_CODE](database-tables.md#provider_type_code), [CBP_SERVICE_CODE](database-tables.md#cbp_service_code), [MCO_PLAN](database-tables.md#mco_plan) | Read / Write (code table CRUD) |

## Failure and edge-case behavior

- Optimistic concurrency is the dominant failure mode: nearly every persisting operation checks the affected row count and adds a DB contention error instead of throwing; several delete paths (location, tax ID, service contract, relationship, MCO membership, ineligibility period, DCBS cost/charge) omit the `UPDATE_NUM` check that their update paths enforce. Detailed per-operation behavior is documented on each operation page.
- External API synchronization (Contact Manager for location/address/contact/identity/tax ID/relationship/MCO membership; ClaimCenter for payment history) is best-effort*: a failed API call is logged and surfaced as an error message on the business object, but the underlying database change is never rolled back, so a provider record can end up temporarily out of sync with the external system.
- Retrieve paths generally return an unpopulated object when no row matches, rather than raising a not-found error; callers must check the populated state themselves.
- [Search providers](operations/search-providers.md) silently truncates result sets beyond 300 rows with no warning surfaced to the caller.
- [Maintain provider location](operations/maintain-provider-location.md) performs no in-use protection (payment, audit, or note history) before allowing a delete, unlike [Maintain provider relationship](operations/maintain-provider-relationship.md), which blocks deletion of an in-use relationship.

## Related documentation

- [Index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Dependencies](dependencies.md)
- [Business rules](business-rules.md)
- [Database tables](database-tables.md)
- [SQL catalog](sql/index.md)
- [API reference](api/index.md)
- [Configuration](configuration.md)

> **Note:** Statements marked with `*` were inferred from code structure, naming
> conventions, or contextual evidence where direct confirmation was not available
> in source artifacts.

## Sources

- `Business\SAIF.Business.Provider\clsProvider.vb`
- `Business\SAIF.Business.Provider\clsProviderSearch.vb`
- `Business\SAIF.Business.Provider\clsProviderLocation.vb`
- `Business\SAIF.Business.Provider\clsProviderAddress.vb`
- `Business\SAIF.Business.Provider\clsProviderContact.vb`
- `Business\SAIF.Business.Provider\clsProviderIdentity.vb`
- `Business\SAIF.Business.Provider\clsProviderTaxID.vb`
- `Business\SAIF.Business.Provider\clsProviderRelationship.vb`
- `Business\SAIF.Business.Provider\clsProviderMCOMembership.vb`
- `Business\SAIF.Business.Provider\clsProviderService.vb`
- `Business\SAIF.Business.Provider\clsProviderServiceContract.vb`
- `Business\SAIF.Business.Provider\clsProviderIneligibilityPeriod.vb`
- `Business\SAIF.Business.Provider\clsProviderDcbsCostCharge.vb`
- `Business\SAIF.Business.Provider\clsNote.vb`
- `Business\SAIF.Business.Provider\Api\clsPaymentApi.vb`
- `Business\SAIF.Business.Provider\Api\clsTaxApi.vb`
