Neobank integrations
galanthus extends the same bank-integration model to provider APIs such as Revolut and Wise. Applications keep one approach to profiles, credential handling, capability discovery, and structured results, while provider plugins contain each API's authentication and payload rules.
Provider API references:
Plugin model
Neobank backends are delivered as shared libraries that implement the public plugin ABI. Each plugin owns the wire-level concerns of one provider: HTTP base URL, auth scheme, idempotency conventions, payload shape, and provider-specific error details.
Plugin loading goes through an explicit trust boundary. Discovery resolves a
plugin id such as revolut or wise to a concrete binary on the configured
search path. Before a backend is loaded, the library checks whether the resolved
binary is already trusted; if it is not, the operator approves it through
plugin approve and the approval is
recorded as a pin against that binary. Plugin trust failures surface as
GLN_ERR_PLUGIN_NOT_TRUSTED; discovery failures surface as
GLN_ERR_PLUGIN_NOT_FOUND.
Revolut
Revolut is integrated against the Revolut Business API. It uses an OAuth flow with a client-assertion private key, supports recipient management, and stages outgoing payments as Revolut payment drafts.
CLI entry points:
profile initwith--backend revolutrecords the endpoint, product credential reference, galanthus-owned storage root, and shared profile metadata.profile auth login revolutexchanges an authorization code collected by the caller-managed browser flow. The command does not open a browser or wait for a redirect.profile auth status revolutreports the redacted token status for the active Revolut profile.gln revolut payment-drafts create | list | show | deletemanages Revolut payment drafts. Seecreate,list,show, anddelete.gln revolut recipients create | list | deletemanages Revolut counterparties. Seecreate,list, anddelete.
Library entry: open a Revolut backend with gln_open_revolut_backend. The
config carries the product credential reference and root, environment, storage
root, and optional profile, plugin, and diagnostic fields. Revolut uses a state
store and galanthus-owned token storage. The full library reference lives at
Revolut.
Wise
Wise is integrated against the Wise API. It uses a Wise PersonalToken stored in encrypted host storage or in the supplied Wise token store, depending on the opened backend configuration.
CLI entry points:
profile initwith--backend wiserecords the Wise endpoint, user, product metadata, and backend binding.profile auth login wisestores the Wise PersonalToken from a hidden prompt or--token-stdin.profile auth status wisereports the redacted token status for the active Wise profile.
Library entry: open a Wise backend with gln_open_wise_backend. The config
carries the Wise endpoint, optional Wise profile id, optional local profile
name, optional plugin path, dump directory, and timeout. Wise backends require a
state store and a Wise token store. The full library reference lives at
Wise.
Provider-specific operations
Revolut and Wise add operations that are specific to each provider. Shared banking operations are discovered through the same runtime capability model used by other backends.
| Surface | Revolut | Wise |
|---|---|---|
| Profile configuration | yes | yes |
| OAuth authorize/code exchange | yes | - |
| PersonalToken setup | - | yes |
| Token status/delete | yes | yes |
| Recipients management | yes | - |
| Payment drafts | yes | - |
Shared backend operations must be capability-probed at runtime before a caller exposes them for a Revolut or Wise backend.