Skip to content

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 UpdateUserProfile call 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 XElement navigation rather than a handled library error.*

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.vb
  • Business\SAIF.Business.EPay.USBank\RemotePostFiller.vb
  • Business\SAIF.Business.EPay.USBank\clsUSBankUser.vb
  • Business\SAIF.Business.EPay.USBank\clsUSBankUserCollection.vb
  • Business\SAIF.Business.EPay.USBank\clsUSBankNonpayNotice.vb
  • Business\SAIF.Business.EPay.USBank\RealTimePaymentConfirmation.vb
  • Business\SAIF.Business.EPay.USBank\RealTimeNonPaymentNotification.vb
  • Business\SAIF.Business.EPay.USBank\RemittanceDocument.vb
  • Business\SAIF.Business.EPay.USBank\RemittedPayment.vb
  • Business\SAIF.Business.EPay.USBank\epayWebServiceService.vb
  • Business\SAIF.Business.EPay.USBank\User.vb
  • Business\SAIF.Business.EPay.USBank\USBankCodes.vb