Production-grade Elixir client for the Solaris Embedded Finance API.
See: https://docs.solarisgroup.com/api-reference
Overview
Solaris is a Banking-as-a-Service platform providing embedded finance APIs covering:
- Onboarding — Create persons, businesses, KYC/identification flows
- Digital Banking — Accounts, balances, bookings, statements, savings
- SEPA Transfers — SCT, SDD, Instant payments
- Cards — Issuance, lifecycle, tokenization, 3DS
- Lending — Consumer loans, overdraft, splitpay, trade finance
- Webhooks — Real-time event processing
Configuration
config :solaris,
client_id: System.get_env("SOLARIS_CLIENT_ID"),
client_secret: System.get_env("SOLARIS_CLIENT_SECRET"),
environment: :sandbox,
timeout: 30_000,
max_retries: 3,
pool_size: 10Quick Start
{:ok, person} = Solaris.Onboarding.Persons.create(%{
first_name: "Jane",
last_name: "Doe",
email: "jane@example.com",
birth_date: ~D[1990-01-15],
nationality: "DE"
})
{:ok, balance} = Solaris.Banking.Accounts.get_balance(account_id)Error Handling
All functions return {:ok, result} or {:error, %Solaris.Error{}}.
Summary
Functions
Raw authenticated DELETE.
Raw authenticated GET — for endpoints not yet covered by the SDK.
Raw authenticated PATCH.
Raw authenticated POST.
Raw authenticated PUT.
Functions
@spec base_url() :: String.t()
@spec delete( String.t(), keyword() ) :: {:ok, map()} | {:error, Solaris.Error.t()}
Raw authenticated DELETE.
@spec environment() :: :sandbox | :production
@spec get( String.t(), keyword() ) :: {:ok, map()} | {:error, Solaris.Error.t()}
Raw authenticated GET — for endpoints not yet covered by the SDK.
@spec patch(String.t(), map(), keyword()) :: {:ok, map()} | {:error, Solaris.Error.t()}
Raw authenticated PATCH.
@spec post(String.t(), map(), keyword()) :: {:ok, map()} | {:error, Solaris.Error.t()}
Raw authenticated POST.
@spec put(String.t(), map(), keyword()) :: {:ok, map()} | {:error, Solaris.Error.t()}
Raw authenticated PUT.
@spec version() :: String.t()