BankValidator operations and processes¶
This page is the operation catalog and cross-operation hub for BankValidator. The library exposes a single façade, SAIF.clsValidateBank, that groups eight public methods into five cohesive operations against Lyons/CBIZ SOAP vendor services: ABA routing-number validation, company identifier lookup, bank detail retrieval, ATM participation and status, and SSN validation. Each operation's detailed, step-by-step logic lives in its own page under operations/.
Operation catalog¶
| Operation | Intent | Trigger | Inputs | Outputs | Rules | Tables | SQL |
|---|---|---|---|---|---|---|---|
| ABA routing number validation | Determine whether a routing number is structurally valid and/or vendor-verified | Caller invokes IsValidABANumber or IsVerifiedABA on a constructed clsValidateBank |
Routing number | Boolean structural-validity or verification flag |
BR-002 | — | — |
| Company identifier lookup | Resolve a company identifier by serial/payee code or by company name | Caller invokes FindAsCompanyId or FindByCompanyName |
Serial number and payee code, or company name | Integer company ID |
BR-002 | — | — |
| Bank detail retrieval | Fetch bank-detail XML, an unaggregated bank list, or a typed Institutions DataSet for a routing number |
Caller invokes GetBankFullXML, GetBankListXML, or GetBankFullDS |
Routing number | XML string, or a populated/empty Institutions DataSet |
BR-002, BR-003 | — | — |
| ATM participation and status | Check ATM-network participation, retrieve and translate an account status, or translate a bare status code | Caller invokes IsATMParticipant, GetATMAccountStatus, or TranslateStatusCode |
Routing number; for status lookup, also account number and amount; for translation, a status code | Boolean participation flag; status code and description; or a translated description string |
BR-002, BR-004, BR-005 | — | — |
| SSN validation | Submit a Social Security Number to the vendor validation service and return its vendor-supplied result | Caller invokes ValidateSSN |
SSN | Vendor result string | BR-002 | — | — |
Process flow diagram¶
The following diagram shows the common logon/invoke/logoff pattern shared by the five operations and where each one diverges.
flowchart TD
Start([Caller constructs clsValidateBank<br>with company ID, user ID, password]) --> Select{Which operation?}
Select -->|ABA validation/verification| ABALogon[LogonABA]
Select -->|Company lookup| ABALogon
Select -->|Bank detail retrieval| ABALogon
Select -->|ATM participation/status| ATMLogon[LogonATM]
Select -->|SSN validation| SSNLogon[LogonSSN]
ABALogon --> ABACall[Invoke ABAService method]
ATMLogon --> ATMCall[Invoke ATMService method]
SSNLogon --> SSNCall[Invoke SSNKeyService.ValidateSSN]
ABACall --> ABAFault{SoapException?}
ABAFault -->|Yes, bank-detail methods| Empty([Return empty XML/DataSet])
ABAFault -->|No| ABAResult([Return vendor result])
ATMCall --> ATMFault{SoapException?}
ATMFault -->|Yes, IsATMParticipant only| NonParticipant([Return False])
ATMFault -->|No| ATMResult([Return vendor result])
SSNCall --> SSNResult([Return vendor result string])
ABAResult --> Logoff[Logoff helper releases token and disposes proxy]
Empty --> Logoff
NonParticipant --> Logoff
ATMResult --> Logoff
SSNResult --> Logoff
Logoff --> Done([Result returned to caller])
Failure and edge-case behavior¶
- All five operations share the same logon-retry behavior defined by BR-002: a failed
Logon(...)call retries recursively up tom_LogonAttemptsMaxtimes before raisingApplicationException. - Bank detail retrieval methods are the only operation group that converts a vendor
SoapExceptioninto an empty caller result; see BR-003. - ATM participation and status is the only operation group with two distinct fault/edge behaviors: BR-004 for non-participating banks, and BR-005 for
SoapExceptionduring the participation check. - ABA routing number validation, company identifier lookup, and SSN validation have no method-level
Try/Catcharound the vendor invocation; an exception thrown by the vendor call propagates to the caller and skips the correspondingLogoff*call, leaving the session token unreleased.*
Related documentation¶
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¶
Legacy\BankValidator\clsValidateBank.vbLegacy\BankValidator\Institutions.Designer.vb