@spendprofile/bank-library
v0.0.3
Published
Open dataset of Nigerian financial institutions — identity, aliases, routing codes, and logos. Part of the Spendprofile ecosystem.
Maintainers
Readme
Spendprofile Bank Library
The canonical, open dataset of Nigerian financial institutions — identity, aliases, routing codes, and logos. One reviewable file per bank, validated in CI.
This repository is the single source of truth for bank data across the Spendprofile ecosystem. Everything downstream is a build artifact of it:
- the
@spendprofile/bank-librarynpm package (and a PyPI twin), - the CDN bundle behind the public directory at banks.spendprofile.app,
- the seed data for the Bank Library REST API,
- the bank-identity layer consumed by the Spendprofile B2B API and ML engine.
Fix a bank once here; it propagates everywhere on the next release.
What's in a record
Each data/<slug>.json follows schema/bank.schema.json:
| Field | Purpose |
|-------|---------|
| slug | Stable join key. Lowercase kebab-case, never reused. |
| name, shortName, aliases | Identity + every spelling people use (powers name → bank resolution). |
| type | commercial · merchant · microfinance · mobile-money · payment-service-bank · fintech-wallet. |
| status | active · renamed · merged · defunct (+ successorSlug). |
| codes | CBN / NIP / sort / USSD / SWIFT — each gated by codes.verified. |
| brand.colors | Brand hex, primary first (UI theming). |
| logo | Repo-relative SVG paths (svg required; mono, mark optional). |
| contact, meta | Website/support, plus provenance + lastReviewed. |
Open layer vs. the private moat
This dataset is the open commodity layer — logos, identity, and public routing
codes, MIT-licensed and open to contribution. It deliberately does not contain
Spendprofile's proprietary statement-detection metadata (header layouts, parsing
fingerprints). That lives in a private source and is joined to these records by slug
at serve time, exposed only on paid API tiers.
On codes.verified
Routing codes may be present but "verified": false. Treat unverified codes as
informational — do not rely on them for money movement until a maintainer confirms them
against an authoritative source and flips the flag.
Contributing
- Add or edit
data/<slug>.json(filename must equal theslug). - Drop logo assets under
assets/logos/<slug>/. - Run
npm install && npm run validate. - Open a PR — CI runs the same validation.
Logos are trademarks of their respective institutions and are included for
identification only. See LICENSE.
