Validated runtime configuration for a Banking Circle client instance.
Supports multiple named clients (e.g. one per legal entity / company id)
running side by side, each with its own credentials, certificate, and
environment — configured either via config/config.exs or passed
explicitly at call time.
Example
config :banking_circle, BankingCircle,
environment: :sandbox,
username: {:system, "BC_USERNAME"},
password: {:system, "BC_PASSWORD"},
certificate_thumbprint: {:system, "BC_CERT_THUMBPRINT"},
client_cert_path: {:system, "BC_CLIENT_CERT_PATH"},
client_key_path: {:system, "BC_CLIENT_KEY_PATH"},
request_timeout_ms: 15_000,
max_retries: 3Multiple clients:
config :banking_circle, :entities,
eu_entity: [environment: :production, username: {:system, "BC_EU_USER"}, ...],
uk_entity: [environment: :production, username: {:system, "BC_UK_USER"}, ...]
Summary
Functions
Loads named config from Application.get_env/3 and validates it.
Builds and validates a BankingCircle.Config from a keyword list.
Types
@type t() :: %BankingCircle.Config{ api_base_url_override: String.t() | nil, auth_base_url_override: String.t() | nil, certificate_thumbprint: String.t(), client_cert_path: String.t() | nil, client_key_path: String.t() | nil, environment: BankingCircle.Environment.t(), finch_pool_size: pos_integer(), max_retries: non_neg_integer(), name: atom(), password: String.t(), request_timeout_ms: pos_integer(), retry_base_delay_ms: pos_integer(), username: String.t(), webhook_encryption_key: String.t() | nil }
Functions
Loads named config from Application.get_env/3 and validates it.
Builds and validates a BankingCircle.Config from a keyword list.
Values may be given as literals or as {:system, "ENV_VAR"} tuples, which
are resolved at build time (never compiled into a release artifact).
Raises NimbleOptions.ValidationError on invalid input.