Skip to main content

OpenFin8:US - README

US open banking (FDX v6.x): consent-managed account data sharing between a bank (data provider) and registered third-party data recipients - plus the money-movement read/cancel surface, event notifications, and the hosted consent UI. The in-place successor of OpenFin8:US.

Summary​

OpenFin8:US is a Rust service that plays the FDX data provider role for the US market: it serves consented account/transaction/ statement data to registered recipients over the /fdx/v{major}/* API (the major segment from the configured OPENFIN8_US_VERSION), enforces consent on every request with CSDF data minimization, and serves the recipient-side surfaces (/v1/recipient/*) used by eFinTech-style apps and the platform-hosted consent RFW screens. The provider and the recipient are independent organizations: the recipient registers its OAuth client at the provider's authorization server (DCR, RFC 7591), and each institution keeps its own consent records - the bank its grant ledger, the fintech its connection registry (the two-ledger model).

The service embeds openfin8-core - the jurisdiction-agnostic kernel (OBARCH-1) - and supplies the US FDX profile, the FDX ceremony (DCR + PAR + PKCE + DPoP), and the FDX provider router. The Canadian and UK adapters (bank8-open-ca, bank8-open-uk) follow the same contract.

Motivation​

Open banking requires that every data read is attributable to a live consent grant with the customer in control: consents are scope-limited, revocable, and expiring; provider tokens are sender-constrained (DPoP + secret references); and recipients register dynamically rather than being configured by hand. The service centralizes the consent check, the FDX contract validation, and the audit trail so no provider route can bypass them.

Licensing posture: the FDX API specification is licensed under the FDX API License Agreement and distributed exclusively by FDX - this repository never publishes it. The published docs/openapi.json carries bank8-owned routes only, enforced by a CI drift guard; customers supply their licensed FDX specification under gitignored specs/fdx/{version}/ (see specs/README.md).

Architecture & High-Level Design​

Read DESIGN.md (OBARCH-3) for the full design: the rename inventory from bank8-fdx, the version-configurable route contract, and the spec-publication policy.

Status​

Skeleton - the trait-shaped binary boots on the sentin8 shell with a stub registration; the OBARCH-1 core extraction lands first, then this service takes the extracted FDX wire handlers, the version-parameterized mounts, and the renamed registration.

Development​

make help # the available targets
make build # cargo build
make test # cargo test
make lint # cargo fmt -- --check
make start # infra + trimmed boot if captain is down
make status # fleet rows for openfin8:us
make enroll # register this repo (composable enrollment, RS §6)

Contributing & License​

Apache-2.0 (see LICENSE, NOTICE). The security model is platform-wide - read SECURITY.md.


Architecture & Design: openfin8:us and its underlying concepts were designed by Hamid Jahanzad.