---
title: clsValidateBank
summary: API reference for the SAIF.clsValidateBank type.
status: draft
owner: SAIF
last_reviewed: 2026-07-24
library: BankValidator
reference_type: package
---

# clsValidateBank

`SAIF.clsValidateBank` is the library's handwritten façade for Lyons/CBIZ SOAP services covering ABA validation, company lookup, bank-detail retrieval, ATM queries, and SSN validation.

## Purpose
- Expose a single public class for the library's vendor-backed validation and lookup operations.
- Encapsulate service endpoint properties, logon sequencing, and SOAP proxy disposal.

## Context
- Namespace: `SAIF`
- Assembly/package: `BankValidator` / `SAIF.Legacy.BankValidator`

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `New` | `Sub New(inCompanyId As Integer, inUserId As String, inPassword As String, Optional inLogonRetryAttempts As Integer = 3)` | Store vendor credentials and an optional retry-limit override. |
| `URLABA` | `Property URLABA As String` | Get or set the ABA service endpoint URL. |
| `URLABAExpress` | `Property URLABAExpress As String` | Get or set the ABA Express service endpoint URL. |
| `URLATM` | `Property URLATM As String` | Get or set the ATM service endpoint URL. |
| `URLOFAC` | `Property URLOFAC As String` | Get or set the OFAC service endpoint URL. |
| `URLSSNKey` | `Property URLSSNKey As String` | Get or set the SSNKey service endpoint URL. |
| `FindAsCompanyId` | `Function FindAsCompanyId(inSerialNum As String, inPayeeCode As String) As Integer` | Resolve a company ID from serial number and payee code. |
| `FindByCompanyName` | `Function FindByCompanyName(inCompanyName As String) As Integer` | Resolve a company ID from a company name. |
| `GetATMAccountStatus` | `Function GetATMAccountStatus(inRoutingNum As String, inAccountNum As String, inAmount As Decimal, ByRef outStatusDescription As String) As Integer` | Return an ATM status code and output description for an account inquiry. |
| `GetBankFullDS` | `Function GetBankFullDS(inRoutingNum As String) As DataSet` | Return bank details loaded into an `Institutions` DataSet. |
| `GetBankFullXML` | `Function GetBankFullXML(inRoutingNum As String) As String` | Return full bank-detail XML for a routing number. |
| `GetBankListXML` | `Function GetBankListXML(inRoutingNum As String) As String` | Return the vendor bank-list XML for a routing number search. |
| `IsATMParticipant` | `Function IsATMParticipant(inRoutingNum As String) As Boolean` | Check whether a routing number participates in the ATM network. |
| `IsValidABANumber` | `Function IsValidABANumber(inRoutingNum As String) As Boolean` | Validate a routing number through the ABA service. |
| `IsVerifiedABA` | `Function IsVerifiedABA(inRoutingNum As String) As Boolean` | Verify a routing number through the ABA service. |
| `TranslateStatusCode` | `Function TranslateStatusCode(inStatus As Integer) As String` | Translate an ATM status code into the vendor description string. |
| `ValidateSSN` | `Function ValidateSSN(inSSN As String) As String` | Validate an SSN through the SSNKey service. |
| `Dispose` | `Sub Dispose()` | Dispose generated SOAP proxy instances and suppress finalization. |

## Behavioral notes
- Bank-detail methods apply the empty-result behavior defined by [BR-003](../../business-rules.md#br-003-bank-lookup-soap-faults-return-empty-results).
- ATM account-status lookups apply the non-participant outcome defined by [BR-004](../../business-rules.md#br-004-non-participating-banks-return-unknown-atm-status).
- Logon helper methods apply the retry behavior defined by [BR-002](../../business-rules.md#br-002-vendor-logon-retry-handling).
- The class implements a dispose/finalize pattern, but the public type declaration does not declare `IDisposable` in its class signature.

## Constraints and usage notes
- Construction requires company ID, user ID, and password values used for vendor `Logon(...)` calls.
- All public operations perform synchronous network requests against SOAP endpoints.
- Callers that need non-default vendor endpoints must assign the public URL properties before invoking service methods.
- `GetBankFullDS` returns `DataSet`, but the implementation populates an `Institutions` instance before returning it.

## Sources
- `Legacy\BankValidator\clsValidateBank.vb`
