Skip to content

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.

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