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

# IBankAccount

`IBankAccount` is a read-only contract interface that describes the public shape of a bank-account object within the SAIF payment domain. It exposes account identification, routing data, and account-type flag properties. The interface is defined in this library and implemented by consuming libraries — most likely `clsBankAccount` in `SAIF.Business.Payment.EFT`.*

## Purpose
- Provide a stable, read-only abstraction over bank-account data that payment-processing and claim-payee workflows can consume without taking a direct dependency on the implementing class.

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

## Public members

| Member | Signature | Purpose |
| --- | --- | --- |
| `BankAccountID` | `ReadOnly Property BankAccountID As Decimal` | Unique identifier for the bank account record. |
| `CreateDate` | `ReadOnly Property CreateDate As Date` | Date the bank account record was created. |
| `CreateUser` | `ReadOnly Property CreateUser As String` | Username or identifier of the user who created the bank account record. |
| `NickName` | `ReadOnly Property NickName As String` | Display name or alias for the bank account. |
| `BankAccountTypeDescription` | `ReadOnly Property BankAccountTypeDescription As String` | Human-readable description of the account type. |
| `LastFourDigitsOfAccountNumber` | `ReadOnly Property LastFourDigitsOfAccountNumber As String` | Last four digits of the account number for masked display. |
| `IsBusiness` | `ReadOnly Property IsBusiness As Boolean` | Indicates the account is a business account. |
| `IsConsumer` | `ReadOnly Property IsConsumer As Boolean` | Indicates the account is a consumer (personal) account. |
| `BankAccountNumber` | `ReadOnly Property BankAccountNumber As String` | The full bank account number. |
| `BankRoutingNumber` | `ReadOnly Property BankRoutingNumber As String` | The ABA routing/transit number for the bank. |
| `IsACH` | `ReadOnly Property IsACH As Boolean` | Indicates the account supports ACH transfers. |
| `IsChecking` | `ReadOnly Property IsChecking As Boolean` | Indicates the account is a checking account. |
| `IsSavings` | `ReadOnly Property IsSavings As Boolean` | Indicates the account is a savings account. |

## Behavioral notes
- This interface is entirely read-only; all members are `ReadOnly Property` declarations.
- `CreateDate` and `CreateUser` provide audit metadata about when and by whom the account was recorded.
- `LastFourDigitsOfAccountNumber` is the safe-display token; use it in UI and logs rather than exposing the full `BankAccountNumber`.

## Constraints and usage notes
- Implementations of this interface must reside outside this library (for example, `clsBankAccount` in `SAIF.Business.Payment.EFT`).*
- Do not add write-capable members to this interface without coordinating with implementing libraries, as the contract governs cross-library interactions.

> **Note:** Statements marked with `*` were inferred from code structure, naming
> conventions, or contextual evidence where direct confirmation was not available
> in source artifacts.

## Sources
- `Business\SAIF.Business.Payment\IBankAccount.vb`
