Skip to content

The read-side operation family exposes account discovery, balances, and transaction history through typed result handles borrowed from gln_backend_result_t.

Operations

OperationRequestResult accessor
gln_retrieve_accountsnonegln_get_backend_result_accounts
gln_retrieve_balancesgln_list_balances_request_tgln_get_backend_result_balances
gln_retrieve_transactionsgln_list_transactions_request_tgln_get_backend_result_transactions

Backend Support

OperationSupported backends
list_accountsFinTS, EBICS
list_balancesFinTS, EBICS
list_transactionsFinTS, EBICS

Probe support at runtime with gln_check_backend_operation_support before enabling a command against an arbitrary backend handle.

Requests

gln_retrieve_accounts has no request struct.

gln_list_balances_request_t:

FieldRequiredMeaning
ibanyesAccount IBAN whose balance should be listed.

gln_list_transactions_request_t:

FieldRequiredMeaning
ibanyesAccount IBAN.
from_date_or_nullnoInclusive start date, YYYY-MM-DD.
to_date_or_nullnoInclusive end date, YYYY-MM-DD.
limit_or_zeronoMaximum number of rows, or zero for backend default.
page_token_or_nullnoOpaque token from gln_get_transactions_next_page_token.

Result Handles

HandleCountRowKey row accessors
gln_accounts_tgln_get_accounts_countgln_get_account_atgln_get_account_iban, gln_get_account_bic, gln_get_account_owner, gln_get_account_currency, gln_get_account_product_name
gln_balances_tgln_get_balances_countgln_get_balance_atgln_get_balance_iban, gln_get_balance_amount, gln_get_balance_currency, gln_get_balance_status, optional date/time and limit fields
gln_transactions_tgln_get_transactions_countgln_get_transaction_atgln_get_transaction_status, remote identity, purpose, date, amount, currency, references

gln_get_transactions_next_page_token returns a borrowed token for the next page when the backend provides one.

Example: List Transactions

gln_list_transactions_request_t request = {0};
gln_default_list_transactions_request(&request);
request.iban = "DE02120300000000202051";
request.from_date_or_null = "2026-05-01";
request.to_date_or_null = "2026-05-31";
request.limit_or_zero = 200;

gln_backend_result_t* result = NULL;
gln_status_t call_status = gln_retrieve_transactions(backend, &request, &result);
if (call_status != GLN_OK) {
    return 1;
}

if (gln_get_backend_result_outcome(result) == GLN_BACKEND_OUTCOME_SUCCESS) {
    const gln_transactions_t* transactions = gln_get_backend_result_transactions(result);
    for (size_t i = 0; i < gln_get_transactions_count(transactions); ++i) {
        const gln_transaction_t* tx = gln_get_transaction_at(transactions, i);
        const char* amount = gln_get_transaction_amount(tx);
        const char* purpose = gln_get_transaction_purpose(tx);
        (void)amount;
        (void)purpose;
    }
}

gln_destroy_backend_result(result);

Borrowed row and string pointers become invalid when the result envelope is destroyed.