Configure REL-ID to Send KYC Requests

⚙️ Configure REL-ID to Send KYC Requests

This guide walks you through the configuration required in the REL-ID Gateway Management Console to enable the transmission of KYC identity data to your backend system.


🧭 Configuration Overview

You will need to:

  1. Enable the KYC challenge in the user activation flow.
  2. Set the API endpoint configuration in the Module Config Management.
  3. Optionally configure encryption or bearer token authentication.

🔐 Step 1: Enable KYC Challenge in Activation Flow

  1. Login to the Gateway Management Console.
  2. Navigate to Authentication Management.
  3. Edit the "First time activation" flow.
  4. Add the challenge RELID-IDV-KYC before RELID-IDV-BiometricOptIn.
  5. Save and restart the Blaze-Server.

This ensures the KYC API is triggered immediately after successful ID scan and face match.


🌐 Step 2: Set KYC API Endpoint

Navigate to Module Config Management and configure the following:

  • Component Name: IDV Server
  • Config Name: kyc.service.api.config
  • Config Value: JSON as shown below
{
  "method": "POST",
  "url": "https://127.0.0.1:9005/kyc",
  "headers": [{
  "headerName": "Content-Type",
  "headerValue": "application/json"
  }, {
  "headerName": "apiversion",
  "headerValue": "v2"
  }
  ],
  "requestEncryption": {
    "enable": <true/false>,
    "algorithm": "AES",
    "key": "<Encryption AES Key>",
    "ivParamSpec": "<Encryption IV Parameters>",
    "cipherSpec": "<Encryption Cipher Spec>",
    "blockSizeBytes": <Encryption Block size>
  },
  "responseDecryption": {
    "enable": <true/false>,
    "algorithm": "AES",
    "key": "<Decryption AES Key>",
    "ivParamSpec": "<Decryption IV Parameters>",
    "cipherSpec": "<Decryption Cipher Spec>",
    "blockSizeBytes": <Decryption Block size>
  },
  "requestBody": "",
  "responseBody": {
    "resultLocator": "result",
    "referenceNumberLocator": "reference_number",
    "userIdLocator": "user_id",
    "primaryUserIdLocator": "",
    "loginIdsLocator": "",
    "statusCodeLocator": "",
    "statusMessageLocator": "",
    "forUserIdLocator": "",
    "orchestrationUseCaseLocator": ""
  },
  "accessTokenEndpoint": {
    "url": "https://127.0.0.1:9005/kyc-service-access-token-endpoint",
    "headers": [{
      "name": <Header name>,
      "value": <Header value>
    }
    ],
  "method": <GET or POST>,
  "postParameters": [{
    "name": <Parameter name>,
    "value": <Parameter value>
    }
    ],
  "bodyParameter": <raw data to be sent in body >
  "accessTokenLocator": <access token locator>
  }
}

🔧 Top-Level Attributes

AttributeDescription
methodHTTP method used for the KYC API call. Only POST is supported.
urlURL endpoint of the enterprise's KYC API which receives the identity verification data. Must be HTTPS.
headersArray of HTTP headers (name-value pairs) to include in the KYC request. May include custom headers or OAuth2 tokens.

🔐 requestEncryption

Controls if the KYC request should be AES encrypted.

FieldDescription
enableBoolean flag to enable request encryption.
algorithmEncryption algorithm (AES only).
keyAES encryption key.
ivParamSpecInitialization Vector. Overrides blockSizeBytes if present.
cipherSpecCipher mode and padding (e.g., AES/CBC/PKCS5Padding).
blockSizeBytesBlock size to use if ivParamSpec is not provided.

🔓 responseDecryption

Controls if the KYC API response should be decrypted.

FieldDescription
enableBoolean flag to enable response decryption.
algorithmDecryption algorithm (AES only).
keyAES decryption key.
ivParamSpecInitialization Vector for decryption.
cipherSpecCipher mode and padding used during encryption.
blockSizeBytesBlock size to use if IV not provided.

📦 requestBody

FieldDescription
requestBodyCustom body format. Use "" to send default JSON. Use macro __REQUEST_BODY_PAYLOAD__ to wrap the KYC payload.

Example Usages

requestBodyrequestEncryption.enableBehavior
""false (default)Sends plain JSON
""trueSends Base64-encoded AES-encrypted JSON
{ "kyc_data": "__REQUEST_BODY_PAYLOAD__" }falseSends KYC data in a key
{ "kyc_data": "__REQUEST_BODY_PAYLOAD__" }trueSends AES-encrypted KYC data in a key

📥 responseBody

Describes how to extract values from the KYC API response.

FieldDescription
resultLocatorJSON path for result (true/false).
referenceNumberLocatorPath to reference number from KYC API.
userIdLocatorPath to user ID from KYC API (mandatory).
primaryUserIdLocatorOptional path for primary user ID.
loginIdsLocatorOptional path for multiple login IDs.
statusCodeLocatorOptional response code path.
statusMessageLocatorOptional message string path.
forUserIdLocatorOptional path for additional user ID context.
orchestrationUseCaseLocatorOptional use case path.

🔄 accessTokenEndpoint

Used to retrieve a dynamic OAuth2 Bearer token for Authorization header.

FieldDescription
urlAccess token endpoint URL.
headersArray of headers for token request.
methodHTTP method (GET or POST).
postParametersParameters for token POST request.
bodyParameterRaw body content (alternative to postParameters).
accessTokenLocatorJSON path to extract token from response.
ℹ️

Use either postParameters or bodyParameter, not both. If both are provided, postParameters take precedence.


🔒 Supported Ciphers

Key SizeCipher Modes
128/192/256 bits with IV (16 bytes)AES/CFB/PKCS5Padding, AES/CBC/PKCS5Padding, AES/GCM/NoPadding, etc.
128/192/256 bits with IV (32 bytes)AES/ECB/PKCS5Padding, AES/GCM/NoPadding, etc.

🚦 Testing and Restart

  1. After updating the config, click Restart on the IDV Server component.
  2. Test activation flow on the REL-ID mobile app.
  3. Monitor logs to ensure KYC API is triggered and response is parsed.