Skip to content

clsEFTAuthorization

clsEFTAuthorization is the EFT authorization/consent business object in SAIF.Business.Payment.EFT. It persists and retrieves payee electronic-funds-transfer authorization records in the PAYMENT_AUTHORIZATION Oracle table. Authorization records establish a payee's consent to receive payments via ACH/EFT and carry all required NACHA fields including customer identity, bank account reference, prenote tracking, IAT flags, and revocation status.

Purpose

  • Create, retrieve, update, and delete EFT authorization records in PAYMENT_AUTHORIZATION.
  • Support multiple retrieval variants: by sequence number, by auto-pay confirmation number, and (possibly) by CustomerID via a stored procedure.
  • Track prenote success/failure dates, revocation status, and IAT (International ACH Transaction) address fields.

Context

  • Namespace: SAIF.Business.Payment.EFT
  • Assembly/package: SAIF.BOF.Business.Payment.EFT (NuGet)
  • Implements: IBusinessCriteria
  • Inherits: clsBusinessBase (SAIF.BOF.Framework)

Public members

Member Signature Purpose
PaymentAuthorizationSeqNum Property PaymentAuthorizationSeqNum As Decimal Primary key for the authorization record.
AuthorizationTypeCode Property AuthorizationTypeCode As String Code identifying the authorization type (FK to AUTHORIZATION_TYPE_CODE).
EnrollRequestSeqNum Property EnrollRequestSeqNum As Decimal FK to DEBIT_CARD_ENROLLMENT_REQUEST.
AuthDate Property AuthDate As Date Date the authorization was established.
BankAccountSeqNum Property BankAccountSeqNum As Decimal FK to BANK_ACCOUNT.
CustomerID Property CustomerID As String Payee customer identifier.
CustomerSecondID Property CustomerSecondID As String Secondary customer identifier.
CustomerTypeCode Property CustomerTypeCode As String Customer type code (FK to CUSTOMER_TYPE_CODE).
PaymentSourceSystemCode Property PaymentSourceSystemCode As String Source system code for the payment.
PrenoteRequiredFlag Property PrenoteRequiredFlag As String Indicates whether a prenote is required before live payment.
PrenoteSuccessDate Property PrenoteSuccessDate As Date Date the prenote succeeded.
PrenoteFailDate Property PrenoteFailDate As Date Date the prenote failed.
RevokeReasonCode Property RevokeReasonCode As String Revocation reason code (FK to REVOKE_REASON_CODE).
RevokeDate Property RevokeDate As Date Date the authorization was revoked.
AutoPayConfirmationNum Property AutoPayConfirmationNum As String Auto-pay confirmation number.
IATFlag Property IATFlag As String International ACH Transaction flag.
IATCity Property IATCity As String IAT city address field.
IATStreetAddress Property IATStreetAddress As String IAT street address field.
PaymentDayOFMonthNum Property PaymentDayOFMonthNum As Decimal Day of month for scheduled payments.
CustomerEmailNotificationFlag Property CustomerEmailNotificationFlag As String Email notification preference.
UpdateDate Property UpdateDate As Date Last update date.
UpdateUser Property UpdateUser As String User who last updated the record.

Behavioral notes

  • BeforeRetrieve selects among three variants: (A) retrieve by PaymentAuthorizationSeqNum, (B) retrieve by AutoPayConfirmationNum, or (C) CustomerID branch that calls PK72970_EPAY.retrieve_EFTAuth_ByCustomerID stored procedure (status: not-found in this environment — possibly dead code).**
  • InsertSQL inserts 33 parameters into PAYMENT_AUTHORIZATION; RowsAffected = 1 enforced.*
  • UpdateSQL updates 30 parameters including revoke status and IAT fields; RowsAffected = 1 enforced.*
  • DeleteSQL hard-deletes the row from PAYMENT_AUTHORIZATION (unlike clsBankAccount which soft-deletes).*
  • clsEFTAuthorizationCollection.BeforeRetrieve calls BuildSQL() to append dynamic WHERE predicates (by bank account ID, date ranges, customer IDs, authorization type, prenote flags) and ORDER BY auth_date DESC.*

Constraints and usage notes

  • An EFT authorization record must exist before payment detail records can be electronically disbursed to the payee.
  • The CustomerID retrieval branch references a stored procedure whose Oracle source was not available in this environment; treat that path as potentially dead code until confirmed.**

Note: Statements marked with * were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts. Statements marked with ** could not be confirmed; treat as unknown until verified.

Sources

  • Business\SAIF.Business.Payment.EFT\clsEFTAuthorization.vb
  • Business\SAIF.Business.Payment.EFT\clsEFTAuthorizationCollection.vb