Skip to content

Address and bank-validation support

This operation combines the address-validation helpers from clsAddress, clsAddressStructure, and ObjectServices with the environment-sensitive XML parsing in BankValidatorServices. It standardizes both postal validation and external bank-validation responses for higher-level callers.

Field Value
Operation ID OP-SB-11
Trigger Caller invokes address validators or bank-validator response helpers.
Inputs State, ZIP, country, routing number, account number, bank-validator XML document
Outputs Validation booleans, country name, bank name, or service-availability result
Primary components clsAddress.IsValidState, clsAddress.IsStateZipValid, clsAddress.CountryName, ObjectServices.IsValidState, BankValidatorServices.IsValidBankRoutingNum, BankValidatorServices.IsVerifiedBankRoutingNum
Entry point Business\SAIF.Business\ContactInfo\clsAddress.vb

Steps

  1. Address validators query the address-support SQL family to confirm that a state exists, a country exists, a state/ZIP combination is valid, or an Oregon ZIP belongs to a known county (SQL-022, ALL_STATES, ZIP_CODE, ZIP_MCO_COUNTY, COUNTRY).
  2. clsAddressStructure and clsAddress reuse those validators when callers set or verify postal fields on richer address objects (SQL-022, ALL_STATES, ZIP_CODE, COUNTRY).
  3. ObjectServices.IsValidState exposes the same state-validation check as a lightweight shared helper for callers that do not already have a clsAddress object (SQL-022, ALL_STATES).
  4. Bank-validation helpers inspect the XML response payload and determine whether the upstream service is available, whether an account number or routing number is syntactically valid, and which bank name was returned.
  5. IsVerifiedBankRoutingNum changes behavior by environment: development-style environments short-circuit with permissive behavior, while test, QA, and production environments require a real verification result from the service (BR-SB-008).
  6. When the XML indicates that the service could not log on, the helper methods treat the verification call as unavailable or unsuccessful rather than presenting a positive verification result (BR-SB-008).

Process flow

The following diagram visualizes this operation's control flow.

flowchart TD
    Start([Address or bank-validation request]) --> Kind{Postal or bank?}
    Kind -->|Postal| Postal[Run validation SQL]
    Kind -->|Bank| Bank[Inspect XML response]
    Postal --> Return1([Return validation result])
    Bank --> Env{Environment requires live verification?}
    Env -->|No| Return2([Return permissive dev result])
    Env -->|Yes| Return3([Return verified or unavailable result])

Failure and edge-case behavior

  • Postal validators return False when the lookup tables do not contain the requested state, country, or ZIP combination.
  • Live bank verification is intentionally environment-sensitive and does not behave the same way in development as it does in QA or production (BR-SB-008).
  • XML responses that indicate service-login problems are treated as unavailable or failed verification rather than as valid bank data (BR-SB-008).

Sources

  • Business\SAIF.Business\ContactInfo\clsAddress.vb
  • Business\SAIF.Business\ContactInfo\clsAddressStructure.vb
  • Business\SAIF.Business\ObjectServices.vb
  • Business\SAIF.Business\BankValidatorServices.vb