Build a persistent workspace with Phoenix and SmolBox

OmniBankingEx — One Kernel. Many rails. Multi-provider banking integrations in Elixir

A multi-provider banking integration lab built on the Support and Kernel architecture: an immutable Kernel, a shared Support layer, and shared-nothing plugins.

The proof: the same Kernel.Plugin contract (init/1 + call/2) serves five providers with radically different auth mechanisms and domain models — with zero breaking changes to the Kernel across every phase.

Providers integrated:

Provider Domain Auth Pismo Issuer-processing (BR) OAuth2 Client Credentials Pomelo Card-issuing (LatAm) OAuth2 Client Credentials Asaas Payment institution (BR) Static API Key Pluggy Open Finance (BR) API Key via POST /auth bunq Neobank (EU) RSA handshake Architectural rules, enforced at build time:

Plugins never import plugins — not siblings, not other providers. Cross-domain data travels through the context.

Plugins depend only on Kernel + Support.

mix plugins.check and a phased compiler fail the build on violation.

Five providers. Five auth mechanisms. Two opposite money-flow models (money-out vs. money-in). One Kernel.

🔗 https://github.com/matheuscamarques/omni_banking_ex