Skip to content

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 to m_LogonAttemptsMax times before raising ApplicationException.
  • Bank detail retrieval methods are the only operation group that converts a vendor SoapException into 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 SoapException during the participation check.
  • ABA routing number validation, company identifier lookup, and SSN validation have no method-level Try/Catch around the vendor invocation; an exception thrown by the vendor call propagates to the caller and skips the corresponding Logoff* call, leaving the session token unreleased.*

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.vb
  • Legacy\BankValidator\Institutions.Designer.vb