---
title: clsEFTAuthorization
summary: API reference for clsEFTAuthorization.
status: draft
owner: SAIF
last_reviewed: 2026-07-24
library: SAIF.Business.Payment.EFT
reference_type: package
---

# 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`
