Skip to content

Integration Guide ​

This document explains the steps required to integrate identity verification with our system.


Authentication keys ​

To integrate, you will need two keys:

  1. API Key – identifies your application.
  2. Signature Key – used to create and verify request signatures.

Keep these credentials safe. The Signature Key must never be exposed in frontend code.


Initialize identity verification ​

To start an onboarding session, call Endpoint 1 using both your API Key and Signature Key.

How signature works ​

Every request must be signed with an HMAC SHA-256 hash of the request body using your Signature Key.

  • The result is sent in the request header X-Signature.
  • On our side, we recompute the signature the same way and validate it using hash_equals. Example (PHP):
php
<?php

class RequestSigner
{
    public static function sign(Request $request, string $signatureKey): string
    {
        return hash_hmac('sha256', $request->getContent(), $signatureKey);
    }
}
js
import crypto from "crypto";
class RequestSigner {
  static sign(requestBody, signatureKey) {
    return crypto.createHmac("sha256", signatureKey).update(requestBody).digest("hex");
  }
}

Endpoint 1: Initialize onboarding session ​

Request
POST https://api.insyko.com/api/v1/onboardings/{onboardingId}/initiate
X-Api-Key: <API Key>
X-Signature: <HMAC signature>
Content-Type: application/json
{
  "user_consent": true
}
json
HTTP/1.1 200 OK
Content-Type: application/json
{
  "type": "success",
  "is_toast": false,
  "message": "Request has been processed successfully.",
  "auth": {
        "user": {
            "id": 1723,
            "applicantId": null,
            "key": null,
            "name": "Default",
            "steps": [
                {
                    "id": 2195,
                    "key": null,
                    "type": {
                        "name": "INSYKO",
                        "value": "insyko",
                        "displayValue": "Identity verification",
                        "color": null,
                        "icon": null,
                        "iconColor": null
                    },
                    "name": "Default",
                    "order": 1,
                    "stepableId": null,
                    ...
                }
            ],
            ...
            "expiresAt": "2025-09-01T15:20:03+00:00",
            "createdAt": "2025-08-25T15:20:03+00:00",
            "updatedAt": "2025-08-25T15:20:03+00:00"
        },
        "token": "fBIHBAfRFJqEBakNYZ4KZ5HCOilqwfiY1K7Cayk4LEJaUVPkKRwP3A569TV9V3Dx"
    }
}

TIP

  • auth.user.applicant_id is the unique ID of the applicant created for this onboarding session.
  • auth.token is the access token to be used in all subsequent requests for this session.
  • auth.steps contains the list of steps to be completed in this onboarding session.
  • auth.user.id is the unique ID of this onboarding session.
  • auth.user.expiresAt indicates when this onboarding session will expire.

Redirect URL to onboarding session ​

To redirect a user into the onboarding session, build the URL with the following structure:

txt
https://v2.onboarding.insyko.com/onboarding-info
  ?token={token}
  &onboardingStepId={onboardingStepId}
  &onboardingId={onboardingId}
  &lang={lang}
  &apiKey={apiKey}
ParameterDescription
tokenThe token returned in the response from Endpoint 1 (auth.token).
onboardingStepIdThe step ID to start from (first step in auth.steps).
onboardingIdThe onboarding session ID (from auth.user.id).
langLanguage code (e.g. en = English, sk = Slovak, cs = Czech).
apiKeyYour API Key.
autoCloseBoolean field, if set to true the onboarding window will close automatically after the user completes the process. Default is false.

autoClose = Boolean field, if set to true the onboarding window will close automatically after the user completes the process. Default is false.

Example ​

txt
https://v2.onboarding.insyko.com/onboarding-info?token=eyJhbGciOiJI...&onboardingStepId=123&onboardingId=456&lang=en&apiKey=abcd1234&autoClose=true
json
{
  "auth": {
    "token": "<span style='color:#22c55e'>fBIHBAfRFJqE...</span>"
  }
}

After successful onboarding ​

After the user completes the onboarding session, you can check their verification status by calling Endpoint 2.

Endpoint 2: Get applicant status ​

Request
GET https://api.insyko.com/api/v1/onboardings/{onboardingID}/
X-Api-Key: <API Key>
X-Signature: <HMAC signature>
json
HTTP/1.1 200 OK
Content-Type: application/json
{
  "type": "success",
  "is_toast": false,
  "message": "Request has been processed successfully.",
  "data": {
        "id": 94,
        "name": "John",
        "surname": "Doe",
        "nationality": "SVK",
        "dateOfBirth": "2000-01-01",
        "personalNumber": "000101/9999",
        "gender": "M",
        "preferredCurrency": null,
        "type": null,
        ...
  }
}

The data object contains the applicant's details and verification status. You can find photo of the uploaded ID document in the data.identityVerifications array.