gln transfers sepa
Submit one SEPA credit transfer through the active FinTS or EBICS profile.
Synopsis
gln [global-options] transfers sepa
{--file <path> |
--source-iban <value> --source-bic <value> --source-name <value>
--recipient-iban <value> --recipient-bic <value> --recipient-name <value>
--amount <value> [--currency <value>] --purpose <value>
[--e2e-ref <value>] [--execution-date <YYYY-MM-DD>]}
[--dry-run]
Options
| Argument or flag | Type | Required | Default | Description | Backends |
|---|---|---|---|---|---|
--file | path | no | - | JSON payload describing the transfer. Mutually exclusive with inline transfer fields. | FinTS, EBICS |
--source-iban | string | inline | - | Source account IBAN. | FinTS, EBICS |
--source-bic | string | inline | - | Source account BIC. | FinTS, EBICS |
--source-name | string | inline | - | Source account holder name. | FinTS, EBICS |
--recipient-iban | string | inline | - | Recipient IBAN. | FinTS, EBICS |
--recipient-bic | string | inline | - | Recipient BIC. | FinTS, EBICS |
--recipient-name | string | inline | - | Recipient name. | FinTS, EBICS |
--amount | string | inline | - | Transfer amount as a decimal string, for example 12.34. | FinTS, EBICS |
--currency | string | no | EUR | ISO 4217 currency code for inline mode. Cannot be combined with --file. | FinTS, EBICS |
--purpose | string | inline | - | Payment purpose or remittance information. | FinTS, EBICS |
--e2e-ref | string | no | - | Optional end-to-end reference. Empty or omitted maps to NOTPROVIDED in pain.001. | FinTS, EBICS |
--execution-date | string | no | - | Optional scheduled execution date value (YYYY-MM-DD). | FinTS, EBICS |
--dry-run | flag | no | false | Validate the request shape and backend kind, then echo the request without opening a backend. | FinTS, EBICS |
The command accepts exactly one input mode. Use either --file <path> or the
inline field set; combining --file with any inline transfer field, including
an explicit --currency, is rejected before the file is read.
File payloads are JSON objects using the same field names as the inline options:
source_iban, source_bic, source_name, recipient_iban, recipient_bic,
recipient_name, amount, currency, purpose, optional
end_to_end_reference, and optional requested_execution_date.
Description
transfers sepa resolves the active profile, validates that the backend is
FinTS or EBICS, validates the request shape, and submits through the C API.
The CLI emits command JSON by reading the typed C result accessors selected by the backend envelope kind.
FinTS submissions can return TAN or VoP-confirmation action-required envelopes.
EBICS submissions are one-shot; EBICS provider-status rows are available on the
typed C transfer-submission handle, not as ordinary CLI result keys.
With --dry-run, the command performs local shape validation and backend-kind
validation, emits the normalized request preview, and does not open the backend
or contact the provider. This is not full bank-format validation; provider and
protocol validation still happen only on submission.
Requirements
- A resolvable FinTS or EBICS profile.
- FinTS calls that require TAN approval must be resumed with
tan resume. - Revolut and Wise profiles are rejected for this command.
Status and exit codes
| Status | Exit | Meaning | Continuation |
|---|---|---|---|
ok | 0 | Dry-run preview or submitted result emitted. | - |
action_required | 10 | FinTS TAN input or VoP confirmation is required. | tan resume |
rejected | 1 | The bank rejected the transfer. | - |
error | 1 | Validation, configuration, transport, or host failure. | - |
Result keys for dry-run: status, source_iban, source_bic, source_name,
recipient_iban, recipient_bic, recipient_name, amount, currency,
purpose, end_to_end_reference, effective_end_to_end_reference,
requested_execution_date. end_to_end_reference and
requested_execution_date are always present in dry-run output and may be
empty strings.
Result keys for non-dry-run submission are emitted from the typed C result accessors.
FinTS success payloads use status, statuses, and optional vop. EBICS
success payloads use status and order_id. Typed C accessors such as
gln_get_transfer_submission_id and
gln_get_transfer_submission_provider_status_at expose additional typed-handle
fields to C callers; they are not separate CLI JSON result keys.
Examples
gln --profile demo transfers sepa --file transfer.json --dry-run
gln --profile demo --pin-stdin transfers sepa `
--source-iban DE02120300000000202051 `
--source-bic BYLADEM1001 `
--source-name "Sender GmbH" `
--recipient-iban DE44500105175407324931 `
--recipient-bic INGDDEFFXXX `
--recipient-name "Receiver GmbH" `
--amount 10.00 `
--purpose "Invoice 2026-001"