Solaris.Onboarding.KYC (Solaris v1.0.0)

Copy Markdown View Source

KYC identification flows for persons and businesses.

Supports: VideoIdent (IDnow), Bankident, AutoIdent (re-KYC), Fourthline.

Supported Identification Methods

  • "idnow" — Video identification via IDnow
  • "bank_ident" — Identification via existing bank account
  • "fourthline" — Fourthline mobile SDK identification
  • "auto_ident" — Automated re-identification

Identification Flow

  1. Create an identification session → get url to redirect user
  2. User completes identification on external provider
  3. Solaris sends IDENTIFICATION webhook on completion
  4. Poll or handle webhook for final status

Signing Flow

Some products require the person to digitally sign documents:

  1. Create a signing via the appropriate identification method
  2. User completes the signing
  3. Receive SIGNING_COMPLETED webhook

Summary

Functions

Creates a business identification session.

Creates a new identification session for a person.

Initiates a document signing for a person.

Retrieves a specific business identification session.

Retrieves a specific identification session.

Retrieves a specific screener hit.

Lists all identification sessions for a business.

Lists all identification sessions for a person.

Lists all signings for a person.

Lists screener hits for a business (AML/sanctions results).

Acknowledges/resolves a screener hit.

Sandbox only. Runs through the identification process using a robot.

Sandbox only. Runs through the signing process using a robot.

Functions

create_business_identification(business_id, attrs, opts \\ [])

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

Creates a business identification session.

create_person_identification(person_id, attrs, opts \\ [])

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

Creates a new identification session for a person.

Returns a URL to redirect the user to complete the identification.

Examples

{:ok, identification} = Solaris.Onboarding.KYC.create_person_identification("cper_123", %{
  method: "idnow",
  language: "de"
})

redirect_to(identification["url"])

create_person_signing(person_id, attrs, opts \\ [])

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

Initiates a document signing for a person.

Examples

{:ok, signing} = Solaris.Onboarding.KYC.create_person_signing("cper_123", %{
  document_id: "cdoc_456",
  method: "idnow"
})

get_business_identification(business_id, identification_id, opts \\ [])

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

Retrieves a specific business identification session.

get_person_identification(person_id, identification_id, opts \\ [])

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

Retrieves a specific identification session.

get_person_signing(person_id, signing_id, opts \\ [])

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

Retrieves a specific signing.

get_screener_hit(business_id, hit_id, opts \\ [])

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

Retrieves a specific screener hit.

list_business_identifications(business_id, opts \\ [])

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

Lists all identification sessions for a business.

list_person_identifications(person_id, opts \\ [])

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

Lists all identification sessions for a person.

list_person_signings(person_id, opts \\ [])

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

Lists all signings for a person.

list_screener_hits(business_id, opts \\ [])

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

Lists screener hits for a business (AML/sanctions results).

resolve_screener_hit(business_id, hit_id, attrs, opts \\ [])

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

Acknowledges/resolves a screener hit.

sandbox_identify_with_robot(robot_name, opts \\ [])

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

Sandbox only. Runs through the identification process using a robot.

Use X-AUTOTEST-{robot_name} as the person's first or last name.

sandbox_sign_with_robot(robot_name, opts \\ [])

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

Sandbox only. Runs through the signing process using a robot.