Skip to content

This is the reference for gln, the Galanthus banking CLI. Each leaf command has its own page with a fixed section structure: Synopsis, Options, Description, Requirements, Status and exit codes, Examples, and where relevant Notes.

Synopsis

gln [global-options] <command> [args]

Global options

Argument or flagTypeRequiredDefaultDescription
--profilestringno-Profile name to use.
--pin-stdinflagnofalseRead the PIN from stdin (FinTS only).
--dump-dirpathno-Write raw request/response dumps for scoped diagnostics.
--log-levelintno1C API log verbosity: 0 quiet, 1 info, 2 debug, 3 trace.
--log-filepathno-Append C API logs to this file. Defaults to stderr.
--security-referenceintno-Override security reference (advanced/debug use).
--security-profile-versionstringno-Override security profile version (advanced/debug use).
--timeoutfloatno30.0HTTP timeout in seconds.
--verboseflagnofalseEnable verbose logging to stderr.

Profile resolution order: --profile <name>, then the configured default profile.

Diagnostics

The JSON envelope on stdout is the authoritative result of every command. Two global flags add diagnostic detail when investigating a failure or attaching information to a support request:

  • --verbose writes human-readable trace lines to stderr, including protocol step boundaries and decision points.
  • --dump-dir <path> writes raw request and response payloads to that directory in their native form (FinTS segments, EBICS XML, REST JSON). Use it only for a narrow reproduction window when the JSON envelope and verbose trace are not enough.

The JSON envelope, the stderr trace, and the dumped payloads are independent: stdout stays parseable when the other two are enabled, and dumps remain useful even without --verbose. Raw dumps can contain account identifiers, names, balances, access tokens, TAN challenge data, and other secrets. Keep them local by default, redact or minimize before sharing, transfer them only over an approved secure channel, and delete them as soon as the investigation no longer needs them.

Source builds may include the C API scripted test transport when compiled with GALANTHUS_ENABLE_TEST_TRANSPORT=ON, which is the default for developer builds. The CLI does not expose --scripted-* flags; fixture playback for operational CLI paths goes through the GALANTHUS_CAPI_TEST_* environment before backend open. Binaries distributed for real banking use must be configured with -DGALANTHUS_ENABLE_TEST_TRANSPORT=OFF so scripted response injection is not compiled in.

JSON envelope

Every command writes a single JSON object to stdout. The top-level fields are:

  • status - one of ok, error, rejected, action_required, follow_up_required. The status drives both the exit code and the follow-up workflow.
  • result - the typed result payload. Each command page lists the populated keys under "Result keys".
  • action - present when status is action_required. Carries the details needed to resume (for example details.resume_file).
  • next_steps - optional guidance string for human operators.
  • warnings - optional array of compatibility or advisory warnings.

Use the JSON envelope, not stderr or exit codes alone, to drive scripted workflows.

Shell conventions

All per-command examples in this reference use PowerShell, matching the README. The translation rule is mechanical: PowerShell backtick line continuation maps to bash backslash continuation; flag names and values are identical.

gln --profile demo profile show
gln --profile demo profile show

Exit codes and status values

CodeStatusMeaning
0okCommand completed successfully.
1errorLocal validation, transport, or non-rejection failure.
1rejectedBackend rejected the request (for example VoP failure or invalid IBAN).
10action_requiredTAN or other continuation input is required.
11follow_up_requiredOut-of-band follow-up is required.
130-Interrupted (SIGINT).

The JSON envelope's status field carries the workflow contract; exit codes are additive convenience for shell scripting.

Backend Capability Overview

The public CLI surface below documents supported commands. Profile management and versions commands perform local work; provider commands resolve the active profile before dispatching through the backend path.

FamilyCLI behavior
Profile managementprofile init, profile list, profile show, profile set-default, and profile remove perform local profile-registry work. EBICS setup commands run the EBICS public C API over the active profile. Revolut and Wise auth commands run their public C APIs over the active profile.
Plugin trustplugin approve runs the public plugin approval C API and returns its digest and pin-store report.
Revolut providerrevolut recipients ... and revolut payment-drafts ... run the public Revolut recipient/payment-draft C API over the active profile.
Versionsversions reports local version information.
ReadAccount, balance, transaction, holding, and standing-order reads are wired to active backends.
Writetransfers sepa, transfers instant, transfers batch, direct-debits create, direct-debits batch, standing-orders add, standing-orders modify, standing-orders delete, and prepaid-topup are wired to active backends.
TANtan modes list, tan mode set, tan media list, and tan resume are wired to the FinTS backend.

By task

  • Manage local profile registrations: profile init, profile list, profile show, profile set-default, profile remove
  • Run EBICS setup and key lifecycle workflows: profile status, profile bootstrap, profile bank-keys download, profile bank-keys show, profile bank-keys verify, profile bank-keys reset, profile client-keys reset, profile brief ini, profile brief hia
  • Run Revolut OAuth setup workflows: profile auth login revolut, profile auth status revolut
  • Run Revolut recipient and payment-draft workflows: revolut recipients list, revolut recipients create, revolut recipients delete, revolut payment-drafts list, revolut payment-drafts show, revolut payment-drafts create, revolut payment-drafts delete
  • Run Wise token setup workflows: profile auth login wise, profile auth status wise
  • Approve plugin bundles after operator digest verification: plugin approve
  • Show local version information: versions
  • Read account data, submit supported write operations, and manage TAN follow-up workflows through the active backend paths.

All commands

CommandPurpose
accounts listList accounts on the active profile.
balances listList balances for one IBAN on the active profile.
direct-debits batchSubmit a SEPA direct debit batch from a JSON file.
direct-debits createSubmit one SEPA direct debit from a JSON file.
holdings listList securities holdings for one depot account.
plugin approveApprove a plugin bundle after digest verification.
prepaid-topupSubmit a prepaid mobile top-up via the FinTS backend.
profile initCreate or update a profile.
profile auth login revolutAuthorize a Revolut profile.
profile auth login wiseStore a Wise PersonalToken.
profile auth status revolutShow Revolut OAuth status.
profile auth status wiseShow Wise token status.
profile bank-keys downloadDownload EBICS bank keys for verification.
profile bank-keys resetReset trusted and pending EBICS bank keys.
profile bank-keys showShow EBICS bank-key setup status.
profile bank-keys verifyVerify staged EBICS bank keys.
profile bootstrapSend EBICS setup orders.
profile brief hiaGenerate the EBICS HIA brief.
profile brief iniGenerate the EBICS INI brief.
profile client-keys resetReset local EBICS subscriber keys.
profile listList available profiles.
profile removeRemove a profile registration.
profile set-defaultSet the default profile.
profile showShow the resolved profile configuration.
profile statusShow EBICS setup key status.
revolut payment-drafts createCreate a Revolut payment draft.
revolut payment-drafts deleteDelete a Revolut payment draft.
revolut payment-drafts listList Revolut payment drafts.
revolut payment-drafts showShow a Revolut payment draft.
revolut recipients createCreate a Revolut recipient.
revolut recipients deleteDelete a Revolut recipient.
revolut recipients listList Revolut recipients.
standing-orders addAdd a standing order via the FinTS backend.
standing-orders deleteDelete a standing order via the FinTS backend.
standing-orders listList standing orders for one IBAN on the active FinTS profile.
standing-orders modifyModify a standing order via the FinTS backend.
tan media listList registered TAN media on the active FinTS profile.
tan mode setSelect the TAN method for the active FinTS profile.
tan modes listList TAN methods advertised for the active FinTS profile.
tan resumeResume a TAN-gated FinTS operation.
transactions listList transactions for one IBAN.
transfers batchSubmit a SEPA batch transfer from a JSON file.
transfers instantSubmit an immediate SEPA instant transfer via FinTS.
transfers sepaSubmit one SEPA credit transfer via FinTS or EBICS.
versionsShow local version information.

Profiles

SubgroupCommandPurposeBackends
managementprofile initCreate or update a profile.FinTS, EBICS, Revolut, Wise
managementprofile listList available profiles.-
managementprofile showShow the resolved profile configuration.-
managementprofile set-defaultSet the default profile.-
managementprofile removeRemove a profile registration.-
EBICS setupprofile statusShow EBICS setup key status.EBICS
EBICS setupprofile bootstrapSend EBICS setup orders.EBICS
EBICS setupprofile brief iniGenerate the EBICS INI brief.EBICS
EBICS setupprofile brief hiaGenerate the EBICS HIA brief.EBICS
EBICS keysprofile bank-keys downloadDownload EBICS bank keys for verification.EBICS
EBICS keysprofile bank-keys showShow EBICS bank-key setup status.EBICS
EBICS keysprofile bank-keys verifyVerify staged EBICS bank keys.EBICS
EBICS keysprofile bank-keys resetReset trusted and pending EBICS bank keys.EBICS
EBICS keysprofile client-keys resetReset local EBICS subscriber keys.EBICS
auth setupprofile auth login revolutAuthorize a Revolut profile.Revolut
auth setupprofile auth status revolutShow Revolut OAuth status.Revolut
auth setupprofile auth login wiseStore a Wise PersonalToken.Wise
auth setupprofile auth status wiseShow Wise token status.Wise

Read

CommandPurposeBackends
accounts listList accounts on the active profile.FinTS, EBICS
balances listList balances for one IBAN.FinTS, EBICS
transactions listList transactions for one IBAN.FinTS, EBICS
holdings listList securities holdings for one depot account.FinTS
standing-orders listList standing orders for one IBAN.FinTS

Revolut provider

CommandPurposeBackends
revolut recipients listList Revolut recipients.Revolut
revolut recipients createCreate a Revolut recipient.Revolut
revolut recipients deleteDelete a Revolut recipient.Revolut
revolut payment-drafts listList Revolut payment drafts.Revolut
revolut payment-drafts showShow a Revolut payment draft.Revolut
revolut payment-drafts createCreate a Revolut payment draft.Revolut
revolut payment-drafts deleteDelete a Revolut payment draft.Revolut

TAN

CommandPurposeBackends
tan modes listList TAN methods advertised for the profile.FinTS
tan mode setSelect the TAN method for the profile.FinTS
tan media listList registered TAN media on the profile.FinTS
tan resumeResume a TAN-gated FinTS operation.FinTS

Write

transfers sepa, transfers batch, direct-debits create, and direct-debits batch submit through FinTS or EBICS and support dry-run request previews. transfers instant, standing-orders add, standing-orders modify, standing-orders delete, and prepaid-topup submit through the FinTS backend.

CommandPurposeBackends
transfers sepaSubmit one SEPA credit transfer.FinTS, EBICS
transfers instantSubmit an immediate SEPA instant transfer.FinTS
transfers batchSubmit a SEPA batch transfer from a JSON file.FinTS, EBICS
standing-orders addAdd a standing order via the FinTS backend.FinTS
standing-orders modifyModify a standing order via the FinTS backend.FinTS
standing-orders deleteDelete a standing order via the FinTS backend.FinTS
direct-debits createSubmit one SEPA direct debit from a JSON file.FinTS, EBICS
direct-debits batchSubmit a SEPA direct debit batch from a JSON file.FinTS, EBICS
prepaid-topupSubmit a prepaid mobile top-up.FinTS

Utility

CommandPurposeBackends
versionsShow local version information.-
plugin approveApprove a plugin bundle.-

See also

  • Troubleshooting - cross-cutting failure modes that affect more than one command.
  • Library reference - C ABI setup, continuation handling, and embedding guidance.