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

# SAIF.Business.Payment.EFT overview

> **Documentation context:** Packaged Component (NuGet)

`SAIF.Business.Payment.EFT` is the primary implementation library for ACH/EFT electronic payment processing in the SAIF BOF ecosystem. It is the largest and most database-interaction-heavy of the payment-domain libraries, providing concrete business objects for bank account management, EFT authorization, debit-card enrollment, payment detail/allocation, ACH batch generation, payment addenda, and payment return handling. It fulfills the `IBankAccount` and `iPaymentPreference` interface contracts defined in `SAIF.Business.Payment`.

## Purpose
- Implements full CRUD lifecycle for EFT-related entities (bank accounts, payment details, EFT authorizations, debit-card enrollment requests, payment returns, and supporting code tables) against an Oracle database via the SAIF BOF `IBusinessCriteria` pattern.
- Consumed by downstream application and service layers that orchestrate ACH/EFT payments, claim payment workflows, and ePay integrations.

## Responsibilities
- Manage bank account records with masking and account-type classification (`clsBankAccount`/`clsBankAccountCollection`).
- Determine payee and provider payment-method preferences — check, direct deposit, or debit card (`clsPaymentPreference`, `clsProviderPaymentPreference`).
- Record payee EFT authorization and consent (`clsEFTAuthorization`/`clsEFTAuthorizationCollection`).
- Process and track debit-card payment enrollment requests (`clsDebitCardEnrollmentRequest`).
- Record individual payment line items and their allocation across claim/benefit categories (`clsPaymentDetail`, `clsPaymentAllocation`).
- Generate and track ACH batch/file identifiers and payment batch numbers (`clsAchFileID`, `clsPaymentBatchNumber`).
- Attach NACHA addenda records to EFT transactions (`clsPaymentAddenda`).
- Process returned/failed EFT payments and their classification by reason, status, and type (`clsPaymentReturn` and return-code tables).
- Compute dynamically calculated balance values at runtime (`DynamicallyCalculatedBalanceInfoFactory`).
- Expose a comprehensive set of code-table lookup classes supporting all EFT/ACH reference data.

## Key components
- `clsBankAccount` / `clsBankAccountCollection`: concrete bank-account business object implementing `IBankAccount`.
- `clsPaymentPreference` / `clsProviderPaymentPreference`: payment-method preference objects implementing `iPaymentPreference`.
- `clsEFTAuthorization` / `clsEFTAuthorizationCollection`: EFT authorization/consent records stored in `PAYMENT_AUTHORIZATION`.
- `clsDebitCardEnrollmentRequest` / `clsDebitCardEnrollmentRequestCollection`: debit-card enrollment tracking.
- `clsPaymentDetail` / `clsPaymentDetailCollection`: individual payment line items.
- `clsPaymentAllocation` / `clsPaymentAllocationCollection`: payment allocations across benefit categories.
- `clsPaymentAddenda` / `clsPaymentAddendaCollection`: NACHA ACH addenda records.
- `clsPaymentReturn` / `clsPaymentReturnCollection` + return code tables: full ACH return-handling subsystem.
- `clsAchFileID` / `clsPaymentBatchNumber`: ACH batch/file identifier tracking.
- Transfer/session DTOs: `clsBankAccountTransfer`, `clsPaymentAuthorizationSessionTransfer`, `clsSessionTransfer`.
- `DynamicallyCalculatedBalanceInfo` / `DynamicallyCalculatedBalanceInfoFactory`: runtime balance calculation.
- Eighteen code-table lookup classes covering all ACH/EFT reference data.

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

## Sources
- `Business\SAIF.Business.Payment.EFT\SAIF.BOF.Business.Payment.EFT.vbproj`
- `Business\SAIF.Business.Payment.EFT\SAIF.BOF.Business.Payment.EFT.nuspec`
- `Business\SAIF.Business.Payment.EFT\clsBankAccount.vb`
- `Business\SAIF.Business.Payment.EFT\clsPaymentPreference.vb`
- `Business\SAIF.Business.Payment.EFT\clsEFTAuthorization.vb`
- `Business\SAIF.Business.Payment.EFT\clsPaymentDetail.vb`
- `Business\SAIF.Business.Payment.EFT\clsPaymentReturn.vb`
- `Business\SAIF.Business.Payment.EFT\DynamicallyCalculatedBalanceInfoFactory.vb`
