Digital banking is a channel over an authoritative core
Internet banking should not copy core-banking behavior into a web application. The channel owns customer experience, device/session controls, orchestration, and channel-specific limits; the core remains authoritative for accounts, balances, posting, and product rules that belong there. The integration boundary must make that ownership explicit.
Separate channel models from core contracts
- Expose channel-friendly APIs that map to stable internal banking commands.
- Validate channel eligibility and authorization before sending a posting command to the core.
- Treat a core timeout as an unknown outcome until status is reconciled; do not assume failure.
- Use immutable request IDs so retries can discover an existing posting.
- Normalize core errors into safe channel error codes while preserving original diagnostic references internally.
A transfer from browser to core
The channel establishes customer/session context, verifies the operation, sends one identified command through the integration adapter, then reconciles the authoritative core result.
Internet-banking transfer path
The channel establishes customer/session context, verifies the operation, sends one identified command through the integration adapter, then reconciles the authoritative core result.
Handling a core timeout without double posting
Integration mistakes with financial consequences
Channel-to-core checklist
- Document system-of-record ownership for balances and transactions.
- Use a unique channel request reference for every mutation.
- Define pending, success, rejected, and unknown/reconcile states.
- Apply device/session/OTP policy server-side.
- Test lost responses, duplicate submits, and core unavailability.
