SAIF.Business.EPay.USBank architecture¶
SAIF.Business.EPay.USBank combines a small BOF persistence layer with a larger SOAP-integration layer. It keeps SAIF-owned state in Oracle tables, delegates payment execution to generated US Bank and session-transfer proxies, and isolates XML parsing and configuration retrieval in dedicated helper types.
Responsibilities¶
- Persist SAIF-side US Bank integration records for users and nonpayment notices.
- Orchestrate SOAP calls for user-profile, bank-account, recurring-payment, payment-information, and health-check operations.
- Build browser-facing session-transfer posts for customer and admin flows.
- Resolve configuration, biller constants, proxy credentials, and external XML-based admin/session-transfer values.
- Parse callback and remittance XML into typed adapters.
Component boundaries¶
clsUSBankUser,clsUSBankUserCollection,clsUSBankNonpayNotice, andclsUSBankNonpayNoticeCollectionown the library's Oracle persistence footprint.USBankAPIsowns request mapping, client-certificate attachment, outbound value normalization, and error/result handling for the primary US Bank SOAP endpoint.RemotePostFillerowns session-transfer string retrieval andRemotePostpayload composition for redirect-based payment flows.USBankCodesandUSBankConstantsown non-code configuration retrieval from environment settings, legacy properties, and the external UNC-hosted constants file.RealTimePaymentConfirmation,RealTimeNonPaymentNotification,RemittanceDocument, andRemittedPaymentremain read-only XML adapters with no write-side effects.Interfaces.vbdefines caller-supplied abstractions that this library consumes but does not implement.
Interaction model¶
- User registration and update flows combine local user-record lookup or creation with outbound SOAP profile calls.
- Bank-account and recurring-authorization flows normalize outbound payload content under BR-011 and BR-012.
- Customer and admin redirect flows obtain a session-transfer token, normalize the return URL under BR-014, and post the resulting form to US Bank.
- Callback and remittance readers deserialize incoming XML separately from the persistence and transport paths.
Architecture diagram¶
The following diagram shows the main handwritten components and the external systems they coordinate.
flowchart TD
Caller[Calling SAIF code] --> APIs[USBankAPIs]
Caller --> Posts[RemotePostFiller]
Caller --> Parsers[XML parser types]
APIs --> UserBO[clsUSBankUser / clsUSBankUserCollection]
APIs --> NoticeBO[clsUSBankNonpayNotice / clsUSBankNonpayNoticeCollection]
APIs --> Gateway[US Bank SOAP gateway]
Posts --> SessionSvc[SAIF session-transfer SOAP wrapper]
Posts --> BrowserPost[RemotePost payload]
APIs --> Config[USBankCodes / USBankConstants]
Posts --> Config
Config --> Env[Environment settings / Properties.xml]
Config --> Constants[UNC-hosted constants XML]
UserBO --> Oracle[(Oracle tables)]
NoticeBO --> Oracle
Sequence diagram¶
The following diagram shows the primary register-or-update-user path.
sequenceDiagram
participant Caller
participant APIs as USBankAPIs
participant UserBO as clsUSBankUser
participant Gateway as US Bank SOAP
participant Oracle as Oracle
Caller->>APIs: Register user request
APIs->>UserBO: Retrieve by policy and business-online user
UserBO->>Oracle: SQL-008 lookup
Oracle-->>UserBO: Existing row or no match
APIs->>Gateway: AddUserProfile or UpdateUserProfile
Gateway-->>APIs: Response code / payload
APIs->>UserBO: Save local names or create row
UserBO->>Oracle: SQL-004 insert or SQL-011 update
Oracle-->>UserBO: Rows affected
APIs-->>Caller: Integration result
Design constraints¶
- The project has no in-repository
ProjectReferencedependencies; its extensibility point is package references, generated proxies, and caller-supplied interfaces. - Persistence is intentionally narrow: only
US_BANK_USERandUS_BANK_NONPAY_NOTICEare updated by handwritten code in this library. - Outbound address, name, and nickname data must satisfy BR-010 and BR-011 before the SOAP call is sent.
- Redirect flows must satisfy BR-014 and admin SSO flows must satisfy BR-015.
- New or updated US Bank user profiles always apply BR-016.
- The library implements no application-level authorization checks; security relies on transport certificates, decryption helpers, proxy impersonation, and admin SSO payload construction.
Related documentation¶
- Index
- Overview
- Dependencies
- Operations and processes
- Business rules
- Database tables
- Security and authorization
- SQL catalog
- API reference
- Configuration
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\Interfaces.vbBusiness\SAIF.Business.EPay.USBank\USBankCodes.vbBusiness\SAIF.Business.EPay.USBank\USBankConstants.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.vb