---
title: SAIF.Business.Payment overview
summary: High-level purpose, scope, and responsibilities for this library.
status: draft
owner: <owner>
last_reviewed: 2026-07-24
library: SAIF.Business.Payment
reference_type: package
---

# SAIF.Business.Payment overview

> **Documentation context:** NuGet package (nuspec-referenced)

`SAIF.Business.Payment` is a component-tier BOF business library in the payment domain. It defines shared contracts (`IBankAccount`, `iPaymentPreference`) used by downstream payment-processing libraries and hosts the claim-payee-eligibility business object (`clsEligPayeeClaim`/`clsEligPayeeClaimCollection`). This is a contract-only library: despite the presence of `IBusinessCriteria` nested classes, no live SQL is executed; both business objects use in-memory BOF factory scaffolding.

## Purpose
- Define the `IBankAccount` and `iPaymentPreference` contracts that describe the public shape of bank-account and payment-preference data, enabling implementing libraries (primarily `SAIF.Business.Payment.EFT`) to fulfill the contracts independently.*
- Model claim-level payee eligibility via `clsEligPayeeClaim` and `clsEligPayeeClaimCollection`.
- Distribute as a NuGet package consumed by downstream payment and claim libraries.

## Responsibilities
- Declare the `IBankAccount` read-only interface (routing number, account number, account-type flags).
- Declare the `iPaymentPreference` interface and the `PaymentPreferenceTypes` enum (Check, DirectDeposit, DebitCard, UnSpecified).
- Provide `clsEligPayeeClaim` as the business object representing an eligible payee for a claim payment.
- Provide `clsEligPayeeClaimCollection` as the in-memory collection of eligible-payee records for a claim.

## Key components
- `clsEligPayeeClaim`: BOF business object inheriting `clsBusinessBase`; models a single eligible-payee-for-claim record.
- `clsEligPayeeClaimCollection`: BOF collection inheriting `clsBusinessCollectionBase`; assembles an in-memory list of eligible payees for a given claim.
- `IBankAccount`: read-only contract interface describing a bank account's public shape.
- `iPaymentPreference`: contract interface describing a payee's preferred payment method.
- `PaymentPreferenceTypes`: enum providing payment-method type codes.

## Related documentation
- [Index](index.md)
- [Architecture](architecture.md)
- [Configuration settings](configuration.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)
- [API reference](api/index.md)

> **Note:** Statements marked with `*` are inferred from code behavior rather than explicit documentation or comments.

## Sources
- `Business\SAIF.Business.Payment\clsEligPayeeClaim.vb`
- `Business\SAIF.Business.Payment\clsEligPayeeClaimCollection.vb`
- `Business\SAIF.Business.Payment\IBankAccount.vb`
- `Business\SAIF.Business.Payment\IPaymentPreference.vb`
- `Business\SAIF.Business.Payment\SAIF.BOF.Business.Payment.nuspec`
