---
title: clsProviderEFT
summary: API reference for clsProviderEFT.
status: draft
owner: SAIF
last_reviewed: 2026-07-24
library: SAIF.Business.Provider.PaymentPreference
reference_type: package
---

# clsProviderEFT

clsProviderEFT is a public type in `SAIF.Business.Provider.PaymentPreference`.

## Purpose
- Business object that represents one provider-location EFT enrollment row and its child payment preference.

## Context
- Namespace: `SAIF.Business.Provider.PaymentPreference`
- Assembly/package: `SAIF.BOF.Business.Provider.PaymentPreference`

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| CHECK | `Public Const CHECK As String = "Paper Check"` | Label used when the location is paid by paper check instead of EFT |
| ProviderPaymentPreference | `Public Property ProviderPaymentPreference As clsProviderPaymentPreference` | Lazy-loaded; setter manages revocation and replacement of EFT authorization |
| ProviderSeqNum | `Public Property ProviderSeqNum() As Decimal` | Key |
| ProviderLocationSeqNum | `Public Property ProviderLocationSeqNum() As Decimal` | Key |
| ProviderLocation | `Public ReadOnly Property ProviderLocation As clsProviderLocation` | Cached, lazy-loaded |
| LocationName | `Public ReadOnly Property LocationName As String` | Business name or formatted personal name |
| PhysicalAddress | `Public ReadOnly Property PhysicalAddress As String` | Delegated to `clsProviderLocation` |
| PaymentAddress | `Public ReadOnly Property PaymentAddress As String` | Delegated to `clsProviderLocation` |
| BankAccount | `Public ReadOnly Property BankAccount As clsBankAccount` | Returns account from authorization, or a new blank account |
| PaymentAccountName | `Public ReadOnly Property PaymentAccountName As String` | Nickname if EFT, else `CHECK` |
| adminUserSeqNum | `Public ReadOnly Property adminUserSeqNum As Decimal` | Returns the parent collection's admin user type sequence number, or `0` when unparented |
| ExtUserEmailAddr | `Public ReadOnly Property ExtUserEmailAddr() As String` | External user email address loaded with EFT-location rows and reused for notifications |
| ExtUserTypeSeqNum | `Public Property ExtUserTypeSeqNum() As Decimal` | Smart decimal |
| defaultToPrimaryFlag | `Public Property defaultToPrimaryFlag As String` | `"Y"`/`"N"` |
| EffDate | `Public Property EffDate As Date` | Smart date, EFT effective date |
| ExpDate | `Public Property ExpDate As Date` | Smart date, EFT expiry date |
| UserName | `Public ReadOnly Property UserName As String` | External user name |
| IsActive | `Public ReadOnly Property IsActive As Boolean` | Tests whether today falls inside the EFT effective window |
| LocationHasEFT | `Public ReadOnly Property LocationHasEFT As Boolean` | True only for an unrevoled direct-deposit authorization |
| UpdateDate | `Public ReadOnly Property UpdateDate() As Date` | Audit date |
| UpdateNum | `Public ReadOnly Property UpdateNum() As Decimal` | Audit/version counter |
| UpdateUser | `Public ReadOnly Property UpdateUser() As String` | Audit user |
| BankValidatorXML | `Public ReadOnly Property BankValidatorXML As XDocument` | Delegated from parent collection |
| MaskBankNumbers | `Public ReadOnly Property MaskBankNumbers As Boolean` | Delegated from parent collection |
| IsUserSAIFEmployee | `Public ReadOnly Property IsUserSAIFEmployee As Boolean` | Delegated from parent collection |
| IsValid | `Public Overrides ReadOnly Property IsValid() As Boolean` | Validates child payment-preference objects |
| IsDirty | `Public Overrides ReadOnly Property IsDirty() As Boolean` | Checks self and child payment preferences |
| NewProviderEFT | `Public Shared Function NewProviderEFT(inDataportal, inProviderSeqNum, inProviderLocSeqNum) As clsProviderEFT` | Creates new EFT |
| GetProviderEFT | `Public Shared Function GetProviderEFT(inDataportal, inProviderSeqNum, inProviderLocSeqNum) As clsProviderEFT` | Loads from DB |
| GetHashCode | `Public Overrides Function GetHashCode() As Integer` | Based on `ProviderLocationSeqNum` |
| Save | `Public Overrides Function Save() As Boolean` | Applies edit and persists BOF plus child-object changes |
| CreateHistory | `Public Function CreateHistory() As Boolean` | Calls `PK83548_PROVIDER_CORR_HIST.EFT_CORR_HIST` |
| AssignPaymentLocation | `Public Sub AssignPaymentLocation(inNewPaymentPreference, [inUserSeqNum])` | Sets a new EFT payment preference and notification fields |
| UnAssignPaymentLoc | `Public Function UnAssignPaymentLoc() As Boolean` | Delegates to `UnAssignPaymentLocation()` |
| UnAssignPaymentLocation | `Public Sub UnAssignPaymentLocation()` | Sets `ExpDate = Today` and revokes authorization |

## Behavioral notes
- `ProviderPaymentPreference` lazy-loads `clsProviderPaymentPreference` and either overlays or revokes the current authorization depending on BOF object state.
- `CreateHistory()` writes correspondence history through the Oracle package documented at [PK83548_PROVIDER_CORR_HIST](../../procedures/pk83548_provider_corr_hist.md).
- Related behavior is cross-referenced from the library-level [Business rules](../../business-rules.md) and [SQL catalog](../../sql/index.md).

## Constraints and usage notes
- Use the documented BOF factory and save patterns exposed by this type.

## Inherited members (from clsBusinessBase)
This type inherits the following public surface from clsBusinessBase (`Legacy\BusinessObjectFramework\clsBusinessBase.vb`), in addition to the members listed above:
| Member | Signature | Purpose |
| --- | --- | --- |
| MyGuid | `ReadOnly Property MyGuid() As String` | Returns the internal GUID that uniquely identifies this in-memory object instance. |
| IsNew | `ReadOnly Property IsNew() As Boolean` | Indicates whether the object has not yet been persisted. |
| IsDeleted | `ReadOnly Property IsDeleted() As Boolean` | Indicates whether the object is marked for deletion. |
| IsDirty | `Overridable ReadOnly Property IsDirty() As Boolean` | Indicates whether the object (or a child) has unsaved changes. |
| IsValid | `Overridable ReadOnly Property IsValid() As Boolean` | Indicates whether the object currently has no broken validation rules. |
| ValidateOnDelete | `Property ValidateOnDelete As Boolean` | Controls whether validation rules run before a delete operation. |
| Rules | `ReadOnly Property Rules() As clsRulesManager` | Returns the rules manager that tracks broken rules for this object. |
| ErrorCount | `ReadOnly Property ErrorCount() As Integer` | Returns the number of broken error-severity rules. |
| ErrorMessages | `ReadOnly Property ErrorMessages() As String()` | Returns the text of all broken error-severity rules. |
| WarningCount | `ReadOnly Property WarningCount() As Integer` | Returns the number of broken warning-severity rules. |
| WarningMessages | `ReadOnly Property WarningMessages() As String()` | Returns the text of all broken warning-severity rules. |
| InformationalCount | `ReadOnly Property InformationalCount() As Integer` | Returns the number of broken informational-severity rules. |
| InformationalMessages | `ReadOnly Property InformationalMessages() As String()` | Returns the text of all broken informational-severity rules. |
| BeginEdit | `Sub BeginEdit()` | Begins an editable transaction, snapshotting current field values. |
| CancelEdit | `Sub CancelEdit()` | Rolls back field values to the last `BeginEdit` snapshot. |
| ApplyEdit | `Sub ApplyEdit()` | Commits the current edit transaction, discarding the rollback snapshot. |
| Delete | `Sub Delete()` | Marks the object for deletion on the next save. |
| Save | `Overridable Function Save() As Boolean` | Persists the object (insert, update, or delete) through the BOF data portal, if valid. |
| SaveChild | `Overridable Function SaveChild() As Boolean` | Persists the object as a child of a parent object/collection. |
| Clone | `Function Clone() As Object` | Returns a deep copy of the object. |
| XMLElementName | `Property XMLElementName() As String` | Gets or sets the XML element name used when serializing this object. |
| GetDataset | `Sub GetDataset(ByRef inDS As DataSet)` | Populates a `DataSet` with the object's field values. |
| GetDataset (named table) | `Sub GetDataset(ByRef inDS As DataSet, ByVal inTableName As String)` | Populates a `DataSet` table with the given name with the object's field values. |
| GetReportXML | `Function GetReportXML(ByVal inElementName As String) As String` | Returns an XML fragment representing the object using the supplied element name. |
| GetReportXML (default name) | `Function GetReportXML() As String` | Returns an XML fragment representing the object using the default XML element name. |
| ToXml | `Function ToXml() As String` | Serializes the object to XML using the default element name. |
| ToXml (named tag) | `Function ToXml(ByVal inTagName As String) As String` | Serializes the object to XML using the supplied tag name. |
| PreviousLinkItem / NextLinkItem | `ReadOnly Property PreviousLinkItem() As ILinkItem` / `ReadOnly Property NextLinkItem() As ILinkItem` | Returns the adjacent linked-list item for collection traversal. |
| SetValueOnChange | `Function SetValueOnChange(Of T)(ByRef inFieldValue As T, ByVal inSetValue As T, Optional ByVal inMarkDirty As Boolean = True) As Boolean` | Sets a backing field only when the value changes, optionally marking the object dirty. |

## Sources
- `Business\SAIF.Business.Provider.PaymentPreference\clsProviderEFT.vb`
