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

# clsProviderBankAccount

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

## Purpose
- Read-only wrapper around one provider-linked bank account.

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

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| BankAccountSeqNum | `Public Property BankAccountSeqNum As Decimal` | Key |
| BankAccountNickName | `Public ReadOnly Property BankAccountNickName As String` | Delegated to `clsBankAccount` |
| BankRoutingNumber | `Public ReadOnly Property BankRoutingNumber As String` | Decrypted through `SAIF.Security.clsSecureEncrypt.DecryptString()` |
| BankAccountNumber | `Public ReadOnly Property BankAccountNumber As String` | Decrypted through `SAIF.Security.clsSecureEncrypt.DecryptString()` |
| MaskedBankAccountNumber | `Public ReadOnly Property MaskedBankAccountNumber As String` | Delegated to `clsBankAccount` |
| NewProviderBankAccount | `Public Shared Function NewProviderBankAccount(inDataportal, inProviderSeqNum) As clsProviderBankAccount` | Creates a new unsaved wrapper |
| GetHashCode | `Public Overrides Function GetHashCode() As Integer` | Based on `BankAccountSeqNum` |

## Behavioral notes
- `BankAccount` is resolved lazily from `SAIF.BOF.Business.Payment`.
- Routing and account numbers are decrypted on demand through the locally referenced `SAIFEncrypt.dll` implementation.
- Related behavior is cross-referenced from the library-level [Business rules](../../business-rules.md) and [SQL catalog](../../sql/index.md).

## Constraints and usage notes
- `clsProviderBankAccountCollection.Load()` is the verified retrieval path for populated objects.

## 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\clsProviderBankAccounts.vb`

