Solaris (Solaris v1.0.0)

Copy Markdown View Source

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: 10

Quick 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

base_url()

@spec base_url() :: String.t()

delete(path, opts \\ [])

@spec delete(
  String.t(),
  keyword()
) :: {:ok, map()} | {:error, Solaris.Error.t()}

Raw authenticated DELETE.

environment()

@spec environment() :: :sandbox | :production

get(path, opts \\ [])

@spec get(
  String.t(),
  keyword()
) :: {:ok, map()} | {:error, Solaris.Error.t()}

Raw authenticated GET — for endpoints not yet covered by the SDK.

patch(path, body \\ %{}, opts \\ [])

@spec patch(String.t(), map(), keyword()) ::
  {:ok, map()} | {:error, Solaris.Error.t()}

Raw authenticated PATCH.

post(path, body \\ %{}, opts \\ [])

@spec post(String.t(), map(), keyword()) :: {:ok, map()} | {:error, Solaris.Error.t()}

Raw authenticated POST.

put(path, body \\ %{}, opts \\ [])

@spec put(String.t(), map(), keyword()) :: {:ok, map()} | {:error, Solaris.Error.t()}

Raw authenticated PUT.

version()

@spec version() :: String.t()