---
title: SAIF.Business.Claim.Payment architecture
summary: Architectural responsibilities, boundaries, and interaction patterns.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-07-28
library: SAIF.Business.Claim.Payment
reference_type: package
---

# SAIF.Business.Claim.Payment architecture

`SAIF.Business.Claim.Payment` is the claim-payment business component for financial transactions, benefit periods and schedules, payees, awards, payment posting, and wage and time-loss calculation workflows backed primarily by Oracle package contracts.

## Responsibilities

- Persist and retrieve financial transactions, transaction detail, transaction remarks, and payment postings.
- Maintain benefit remarks, benefit periods, benefit schedules, payees, awards, and award offsets.
- Expose payment-list and pending-award retrieval workflows for payment operations.
- Calculate wage, offset, and time-loss payment data across primary and secondary calculation models.
- Support adjustment and recovery scenarios that depend on payment and financial-transaction state.

## Inherited framework context (from Legends CLI)

Cached `resolvedTypes[].queries[]` results for `SAIF.Business.Claim.Payment` indicate the following inherited framework behavior:

- `IBusinessCriteria` provides the BOF criteria contract that supplies overridable create/retrieve/insert/update/delete request slots for database and API-backed requests.† (source: `saif-framework-core` library docs)
- `IDataPortalInfo` supplies connection, data-access-layer, API-client, and scalar-execution context to business objects during persistence and retrieval.† (source: `saif-framework-core` library docs)
- `IDataRequest` represents the request abstraction used by the Oracle and SQL portal implementations beneath BOF business objects.† (source: `saif-framework-core` library docs)
- `clsBusinessBase` contributes edit lifecycle support and a per-object `clsRulesManager` used to surface validation state.† (source: `saif-framework-core` library docs)
- `clsBusinessCollection(Of T)` contributes typed collection traversal, deleted-item tracking, and collection-level validation surfacing.† (source: `saif-framework-core` library docs)
- `clsBusinessCollectionBase` contributes collection traversal, deleted-item tracking, and `IDataErrorInfo` validation surfacing for collection objects.† (source: `saif-framework-core` library docs)
- `clsResultSet` is identified as a framework result-wrapper type, but no deeper indexed behavior was returned by the cached Legends results.† (source: `saif-framework-core` library docs)
- `clsSAIFDataReader` is identified as a framework data-reader abstraction, but no deeper indexed behavior was returned by the cached Legends results.† (source: `saif-framework-core` library docs)
- `clsSmartDate` is part of the BOF smart-value wrapper set used to carry null-safe date values through business objects.† (source: `saif-framework-core` library docs)
- `clsSmartDecimal` is part of the BOF smart-value wrapper set used to carry null-safe decimal values through business objects.† (source: `saif-framework-core` library docs)
- `clsSmartString` is part of the BOF smart-value wrapper set used to carry null-safe string values through business objects.† (source: `saif-framework-core` library docs)

## Component boundaries

- **Financial-transaction boundary**: `FinancialTransaction\*` classes own transaction header, detail, remark, posting, and payment-total persistence.
- **Benefit and payee boundary**: `clsBenefitRemark`, `Periods\clsBenefitPeriod*`, `Payees\*`, and `Payments\clsPaymentBase` own benefit- and payee-centric payment state.
- **Award boundary**: `Payments\StateAwardPayments\*` owns award, award-offset, and state-award payee behavior.
- **Payment-list boundary**: `clsPaymentList*` owns filtered list retrieval for operational payment queues.
- **Wage and time-loss boundary**: `Wage and Job\*` and related timeloss classes own wage-period, earnings, offset, and time-loss calculation state.

## Interaction model

Consumers save or retrieve BOF payment objects and collections, each object fills criteria SQL or stored-procedure names, and `IDataPortalInfo` routes those requests to Oracle. Financial-transaction and benefit modules depend heavily on package contracts, while wage-calculation classes persist their own calculation tables through many criteria-specific CRUD objects.

## Architecture diagram

The following diagram shows high-level component interactions.

```mermaid

flowchart TD

    A[Payment applications] --> B[Payment business objects]

    B --> C[Financial transaction layer]

    B --> D[Benefit and payee layer]

    B --> E[Wage and timeloss calculations]

    C --> F[PK82343_FINANCIAL_TRANS]

    D --> G[PK82394_CLAIM_BENEFIT]

    E --> H[Payment calculation tables]

    F --> I[Oracle payment tables]

    G --> I

```

## Sequence diagram

The following diagram shows the primary request/response sequence.

```mermaid

sequenceDiagram

    participant App as Payment application

    participant Trans as clsFinancialTrans

    participant DPI as IDataPortalInfo

    participant Proc as pk82343_financial_trans

    participant DB as Payment tables

    App->>Trans: Save financial transaction

    Trans->>DPI: Submit insert or update request

    DPI->>Proc: Execute financial transaction package method

    Proc->>DB: Persist transaction header and detail state

    DB-->>Proc: Rowcount and transaction data

    Proc-->>DPI: Package result

    DPI-->>Trans: Materialized payment object

    Trans-->>App: Updated transaction state

```

## Design constraints

- The payment library is package-heavy: benefit, financial-transaction, payment-list, and posting workflows depend on Oracle package contracts rather than purely inline SQL.
- Stage 1b could not retrieve source for `PK82394_CLAIM_BENEFIT`, `PK82343_FINANCIAL_TRANS`, or `PK82395_OVERPAYMENTS`, so database-side behavior is only traceable to caller contracts and live SQL signatures.
- Wage and time-loss calculations add a large number of criteria-driven table mappings, increasing schema-coupling and regression scope.
- No local security or configuration surface was identified, so runtime behavior depends mainly on BOF infrastructure and Oracle contracts rather than library-owned settings.

## Related documentation

- [Index](index.md)
- [Overview](overview.md)
- [Dependencies](dependencies.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [Database tables](database-tables.md)
- [SQL catalog](sql/index.md)
- [Procedures](procedures/index.md)
- [API reference](api/index.md)

> **Note:** Statements marked with `†` are derived from dependency library documentation via the Legends CLI. Statements marked with `**` could not be confirmed; treat them as unknown until verified.

## Sources

- `Business\SAIF.Business.Claim.Payment\clsBenefitRemark.vb`
- `Business\SAIF.Business.Claim.Payment\clsPaymentListCollection.vb`
- `Business\SAIF.Business.Claim.Payment\Adjustments\clsAdjustmentCategory.vb`
- `Business\SAIF.Business.Claim.Payment\FinancialTransaction\clsFinancialTrans.vb`
- `Business\SAIF.Business.Claim.Payment\FinancialTransaction\clsFinancialTransCollection.vb`
- `Business\SAIF.Business.Claim.Payment\FinancialTransaction\clsFinancialTransDtl.vb`
- `Business\SAIF.Business.Claim.Payment\FinancialTransaction\clsFinancialTranRemark.vb`
- `Business\SAIF.Business.Claim.Payment\FinancialTransaction\clsPaymentPosting.vb`
- `Business\SAIF.Business.Claim.Payment\Payees\clsPayeeBase.vb`
- `Business\SAIF.Business.Claim.Payment\Payments\clsPaymentBase.vb`
- `Business\SAIF.Business.Claim.Payment\Payments\TimelossPayments\clsBenefitSchedule.vb`
- `Business\SAIF.Business.Claim.Payment\Periods\clsBenefitPeriod.vb`
- `Business\SAIF.Business.Claim.Payment\Wage and Job\clsClaimTimelossCalculation.vb`
- `Business\SAIF.Business.Claim.Payment\Pipelines\build-vars.yml`
- `Business\SAIF.Business.Claim.Payment\packages.config`
- `Business\SAIF.Business.Claim.Payment\SAIF.BOF.Business.Claim.Payment.nuspec`
- `Business\SAIF.Business.Claim.Payment\Adjustments\Refunds\clsNdRefund.vb`
- `Business\SAIF.Business.Claim.Payment\Adjustments\clsBillPaymentAdjustment.vb`
- `Business\SAIF.Business.Claim.Payment\FinancialTransaction\clsFinancialTransDtlCollection.vb`
- `Business\SAIF.Business.Claim.Payment\FinancialTransaction\clsPaymentPostingCollection.vb`
- `Business\SAIF.Business.Claim.Payment\FinancialTransaction\clsPaymentTotalManager.vb`
- `Business\SAIF.Business.Claim.Payment\Payees\clsAwardPayeeInfo.vb`
- `Business\SAIF.Business.Claim.Payment\Payees\clsPayeeCollection.vb`
- `Business\SAIF.Business.Claim.Payment\Payees\clsSupportPayee.vb`
- `Business\SAIF.Business.Claim.Payment\Payments\NonRecurringPayments\clsEmployerRefundPayment.vb`
- `Business\SAIF.Business.Claim.Payment\Payments\SettlementPayments\clsDCSPayment.vb`
- `Business\SAIF.Business.Claim.Payment\Payments\SettlementPayments\clsSettlementPayment.vb`
- `Business\SAIF.Business.Claim.Payment\Payments\StateAwardPayments\clsAward.vb`
- `Business\SAIF.Business.Claim.Payment\Payments\StateAwardPayments\clsAwardCollection.vb`
- `Business\SAIF.Business.Claim.Payment\Payments\StateAwardPayments\clsAwardSSOffset.vb`
- `Business\SAIF.Business.Claim.Payment\Payments\StateAwardPayments\clsAwardSSOffsetCollection.vb`
- `Business\SAIF.Business.Claim.Payment\Payments\TimelossPayments\clsBenefitScheduleCollection.vb`
- `Business\SAIF.Business.Claim.Payment\Payments\TimelossPayments\clsOffsetWageCalcPeriod.vb`
- `Business\SAIF.Business.Claim.Payment\Payments\TimelossPayments\clsOffsetWageCalcPeriods.vb`
- `Business\SAIF.Business.Claim.Payment\Payments\TimelossPayments\clsOffsetWageCalculation.vb`
- `Business\SAIF.Business.Claim.Payment\Payments\TimelossPayments\clsSupplementalWagePeriod.vb`
- `Business\SAIF.Business.Claim.Payment\Payments\TimelossPayments\clsSupplementalWagePeriods.vb`
- `Business\SAIF.Business.Claim.Payment\Payments\TimelossPayments\clsSupplementalWages.vb`
- `Business\SAIF.Business.Claim.Payment\Payments\TimelossPayments\clsTimelossPayment.vb`
- `Business\SAIF.Business.Claim.Payment\Periods\clsBenefitPeriodCollection.vb`
- `Business\SAIF.Business.Claim.Payment\Wage and Job\clsInjuryClaimWageAndJob.vb`
- `Business\SAIF.Business.Claim.Payment\Wage and Job\clsSecTimelossCalculation.vb`
- `Business\SAIF.Business.Claim.Payment\Wage and Job\clsSecWageCalcPeriodEarnings.vb`
- `Business\SAIF.Business.Claim.Payment\Wage and Job\clsSecWageCalculationPeriod.vb`
- `Business\SAIF.Business.Claim.Payment\Wage and Job\clsWageCalcPeriodEarnings.vb`
- `Business\SAIF.Business.Claim.Payment\Wage and Job\clsWageCalculationPeriod.vb`
- `Business\SAIF.Business.Claim.Payment\SAIF.BOF.Business.Claim.Payment.vbproj`
