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
- Create an identification session → get
urlto redirect user - User completes identification on external provider
- Solaris sends
IDENTIFICATIONwebhook on completion - Poll or handle webhook for final status
Signing Flow
Some products require the person to digitally sign documents:
- Create a signing via the appropriate identification method
- User completes the signing
- Receive
SIGNING_COMPLETEDwebhook
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 signing.
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
@spec create_business_identification(String.t(), map(), keyword()) :: {:ok, map()} | {:error, Solaris.Error.t()}
Creates a business identification session.
@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"])
@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"
})
@spec get_business_identification(String.t(), String.t(), keyword()) :: {:ok, map()} | {:error, Solaris.Error.t()}
Retrieves a specific business identification session.
@spec get_person_identification(String.t(), String.t(), keyword()) :: {:ok, map()} | {:error, Solaris.Error.t()}
Retrieves a specific identification session.
@spec get_person_signing(String.t(), String.t(), keyword()) :: {:ok, map()} | {:error, Solaris.Error.t()}
Retrieves a specific signing.
@spec get_screener_hit(String.t(), String.t(), keyword()) :: {:ok, map()} | {:error, Solaris.Error.t()}
Retrieves a specific screener hit.
@spec list_business_identifications( String.t(), keyword() ) :: {:ok, [map()]} | {:error, Solaris.Error.t()}
Lists all identification sessions for a business.
@spec list_person_identifications( String.t(), keyword() ) :: {:ok, [map()]} | {:error, Solaris.Error.t()}
Lists all identification sessions for a person.
@spec list_person_signings( String.t(), keyword() ) :: {:ok, [map()]} | {:error, Solaris.Error.t()}
Lists all signings for a person.
@spec list_screener_hits( String.t(), keyword() ) :: {:ok, [map()]} | {:error, Solaris.Error.t()}
Lists screener hits for a business (AML/sanctions results).
@spec resolve_screener_hit(String.t(), String.t(), map(), keyword()) :: {:ok, map()} | {:error, Solaris.Error.t()}
Acknowledges/resolves a screener hit.
@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.
@spec sandbox_sign_with_robot( String.t(), keyword() ) :: {:ok, map()} | {:error, Solaris.Error.t()}
Sandbox only. Runs through the signing process using a robot.