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

# BankValidatorServices

`BankValidatorServices` is a public class in `SAIF.Business` that wraps the external bank-validation service used by EFT workflows.

## Purpose
- Validates routing numbers and bank account numbers against the configured external bank-validation service.
- Retrieves bank-name metadata for valid routing numbers.
- Applies environment-specific behavior so development environments avoid chargeable live verification calls.

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

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `IsServiceAvailable` | `Public Shared Function IsServiceAvailable(ByVal inBankValidatorXMLDocument As XDocument) As Boolean` | Checks whether the configured bank-validation service can be reached. |
| `IsValidBankAccountNum` | `Public Shared Function IsValidBankAccountNum(ByVal inBankValidatorXMLDocument As XDocument, ByVal inRoutingNum As String, ByVal inAccountNum As String, ByRef outAccountNumStatus As String) As Boolean` | Validates a bank account number and returns a status message when the service rejects the account. |
| `IsValidBankRoutingNum` | `Public Shared Function IsValidBankRoutingNum(ByVal inBankValidatorXMLDocument As XDocument, ByVal inRoutingNum As String) As Boolean` | Validates a routing number through the configured bank-validation service. |
| `RetrieveBankName` | `Public Shared Function RetrieveBankName(ByVal inBankValidatorXMLDocument As XDocument, ByVal inRoutingNum As String) As String` | Retrieves the bank name associated with a routing number. |
| `IsVerifiedBankRoutingNum` | `Public Shared Function IsVerifiedBankRoutingNum(ByVal inBankValidatorXMLDocument As XDocument, ByVal inRoutingNum As String) As Boolean` | Performs live routing-number verification in test, QA, and production environments. |

## Behavioral notes
- Development environments short-circuit service calls to avoid external dependencies and per-use charges.
- Service-login failures are treated as availability or validation failures instead of surfacing raw connection exceptions to callers.
- Account-status handling maps known vendor status codes into SAIF validation outcomes and localized error messages.

## Constraints and usage notes
- Callers must provide an `XDocument` containing the `BankValidator` configuration element and required credential and endpoint values.
- `IsVerifiedBankRoutingNum` only performs live verification in test, QA, and production environments.
- `RetrieveBankName` throws an `ApplicationException` for unexpected errors other than known service-logon failures.

## Sources
- `Business\SAIF.Business\BankValidatorServices.vb`
