SAIF.Business.EPay.USBank operations and processes¶
This page is the operation catalog and cross-operation hub for SAIF.Business.EPay.USBank. The library exposes nine operations spanning outbound US Bank SOAP integration (user registration, bank accounts, recurring ACH authorizations, service/payment queries), browser redirect payload generation for customer and admin session-transfer flows, local BOF persistence of SAIF-side user and notice records, inbound XML parsing of callback and remittance payloads, and a small local-identifier helper. 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 |
|---|---|---|---|---|---|---|---|
| Register or update a US Bank user | Create or refresh the US Bank profile associated with a SAIF policy/user pair | USBankAPIs.RegisterUser(dpi, userInfo, policyInfo) |
Data-portal info, user info, policy info (address, market) | Persisted/refreshed clsUSBankUser; US Bank profile created or updated |
BR-001, BR-002, BR-003, BR-004, BR-009, BR-016, BR-019 | US_BANK_USER | SQL-002, SQL-004, SQL-008, SQL-011 |
| Add a bank account | Submit a normalized ACH account to US Bank for later payment use | Caller invokes USBankAPIs.AddBankAccount(bankAccount, usBankUser, isVoluntary) |
Encrypted account/routing numbers, account category/type, nickname, US Bank user ID | AddBankAccountResults(Success, AccountKey) |
BR-012, BR-013 | None | None |
| Recurring ACH authorization lifecycle | Establish, amend, or cancel a recurring ACH payment authorization at US Bank | Caller invokes EstablishRecurringAuthorization, UpdateRecurringAuthorizationAmountAndDate, or StopRecurringPayment/CancelPayment |
US Bank user, policy number/name, bank account, amount/date, or a payment confirmation ID | Payment confirmation ID (establish); void SOAP result (update, stop) | BR-012 | None | None |
| Query service health and payment/user metadata | Read gateway health, resolve a US Bank user ID by email, and read recurring-payment metadata | Caller invokes PerformUSBankHealthCheck, GetUserId, or GetPaymentInfo |
Email address, or US Bank user plus market flag | Boolean health result; resolved user ID; formatted amount-due/due-date string | None catalogued* | None | None |
| Generate customer session-transfer posts | Create browser-post payloads that hand a customer off to US Bank's make-payment, manage-payment, or set-up-recurring-payment pages | Caller invokes RemotePostFiller.FillMakePaymentRemotePost, FillManagePaymentRemotePost, or FillSetUpRecurringPaymentRemotePost |
Amount, product code, policy/user/page context | Populated RemotePost (URL plus session/biller inputs) |
BR-014 | None | None |
| Generate admin session-transfer and SSO posts | Create browser-post payloads for admin initiate-call, payor search, payment search, and unregistered make-payment flows | Caller invokes one of the RemotePostFiller.FillAdmin*RemotePost methods |
Admin user ID, policy info (search/payment flows), confirmation number or amount | Populated admin RemotePost (plain fields or encrypted SSO payload) |
BR-015, BR-018 | None | None |
| Persist and retrieve SAIF-side integration records | Maintain the local US_BANK_USER and US_BANK_NONPAY_NOTICE rows that correlate SAIF state with US Bank identifiers |
BOF Create/Retrieve/Save/Delete calls against clsUSBankUser(Collection) and clsUSBankNonpayNotice(Collection) |
Policy number, business-online user ID, notice payload values, sequence numbers | Inserted/updated/deleted rows; populated single objects and collections | BR-001, BR-002, BR-003, BR-004, BR-005, BR-006, BR-007, BR-008, BR-009 | US_BANK_USER, US_BANK_NONPAY_NOTICE, DUAL | SQL-001, SQL-002, SQL-003, SQL-004, SQL-005, SQL-006, SQL-007, SQL-008, SQL-009, SQL-010, SQL-011, SQL-012, SQL-013 |
| Parse callback and remittance XML | Expose typed, read-only access to US Bank callback confirmations, nonpayment notices, and batch remittance payloads | Caller constructs RealTimePaymentConfirmation, RealTimeNonPaymentNotification, or RemittanceDocument from received XML |
Raw XML text or an XDocument |
Typed field accessors (amounts, dates, codes, resolved enums) | None catalogued* | None | None |
| Compose local US Bank user identifier | Build the composite local identifier used to key a SAIF policy/user pair for US Bank | Caller invokes User.GetUser(policyNumber, businessOnlineUserId) |
Policy number, business-online user ID (both as strings) | An immutable User instance carrying the composite ID and a fixed password |
BR-017 | None | None |
Process flow diagram¶
The following diagram shows how the nine operations relate: SAIF registers and persists a local user, uses that user to add bank accounts and manage recurring ACH authorizations, generates browser redirects for customers and admins, and separately ingests inbound XML payloads from US Bank callbacks and batch remittance files.
flowchart TD
Start([Caller initiates ePayment integration]) --> Register[Register or update<br>a US Bank user]
Register --> Persist[Persist and retrieve<br>SAIF-side integration records]
Register --> Compose[Compose local<br>US Bank user identifier]
Persist --> BankAcct[Add a bank account]
Persist --> Recurring[Recurring ACH<br>authorization lifecycle]
Persist --> CustPost[Generate customer<br>session-transfer posts]
Persist --> AdminPost[Generate admin session-transfer<br>and SSO posts]
Register --> Query[Query service health and<br>payment/user metadata]
Inbound([US Bank sends callback<br>or remittance XML]) --> Parse[Parse callback<br>and remittance XML]
Parse --> Persist
Database interactions¶
The following table summarizes which operations read from or write to the database. Per-step SQL and table citations live in each operation's detail page under operations/.
| Operation | SQL | Tables | Type |
|---|---|---|---|
| Register or update a US Bank user | SQL-002, SQL-004, SQL-008, SQL-011 | US_BANK_USER | Read / Write |
| Persist and retrieve SAIF-side integration records | SQL-001 through SQL-013 | US_BANK_USER, US_BANK_NONPAY_NOTICE, DUAL | Read / Write |
Failure and edge-case behavior¶
- Missing business-online user IDs or zero policy numbers block user persistence under BR-001 and BR-002.
- A failed
UpdateUserProfilecall is retried once and, if the retry also fails, is only reported by email rather than raised to the caller, so registration can silently proceed without the US Bank profile actually being refreshed (BR-019). - Duplicate bank-account response codes return a handled failure result instead of an exception under BR-013.
- Invalid return URLs, invalid address payloads, or invalid account-category/type metadata stop request construction before any SOAP call is sent.
- Admin make-payment redirects always target the voluntary biller ID, even for assigned-risk policies, because the assigned-risk biller ID is not configured for credit card payments (BR-018).
- User and notice BOF persistence paths raise contention or insert errors when row counts do not match the exact-row expectations in the related business rules.
- XML parsing operations assume well-formed, schema-conforming payloads; missing expected elements raise unhandled exceptions from the underlying
XElementnavigation rather than a handled library error.*
Related documentation¶
- Index
- Overview
- Architecture
- Dependencies
- Business rules
- Database tables
- Security and authorization
- SQL catalog
- API reference
- Configuration
Note: Statements marked with
*were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts.
Sources¶
Business\SAIF.Business.EPay.USBank\USBankAPIs.vbBusiness\SAIF.Business.EPay.USBank\RemotePostFiller.vbBusiness\SAIF.Business.EPay.USBank\clsUSBankUser.vbBusiness\SAIF.Business.EPay.USBank\clsUSBankUserCollection.vbBusiness\SAIF.Business.EPay.USBank\clsUSBankNonpayNotice.vbBusiness\SAIF.Business.EPay.USBank\RealTimePaymentConfirmation.vbBusiness\SAIF.Business.EPay.USBank\RealTimeNonPaymentNotification.vbBusiness\SAIF.Business.EPay.USBank\RemittanceDocument.vbBusiness\SAIF.Business.EPay.USBank\RemittedPayment.vbBusiness\SAIF.Business.EPay.USBank\epayWebServiceService.vbBusiness\SAIF.Business.EPay.USBank\User.vbBusiness\SAIF.Business.EPay.USBank\USBankCodes.vb