Changelog

KYC Status Webhooks

List of webhooks sent to your server

KYC Status Updates

KYC status update webhooks are sent to the path /kyc appended to your Webhook URL configured on the Striga dashboard.

interface KYCStatusWebhook {
  userId: string;
  status: VerificationStatus; // Refer to the enum below for a list of statuses
  details?: Array<string>; // Details on why the KYC failed, if it did
  rejectionComments?: {
    userComment: string; // KYC rejection comment for the user from the compliance team
    autoComment: string; // KYC rejection comment generated by the system
  };
  rejectionFinal?: boolean; // If the KYC rejection is final, the user cannot be verified
}
  
enum VerificationStatus {
  NOT_STARTED = 'NOT_STARTED',
  INITIATED = 'INITIATED', // The "Start KYC" endpoint has been called and the SumSub token has been fetched
  PENDING_REVIEW = 'PENDING_REVIEW', // Documents have been submitted and are pending review
  ON_HOLD = 'ON_HOLD', // Requires manual review from the compliance team
  APPROVED = 'APPROVED', // User approved
  REJECTED = 'REJECTED', // User rejected - Can be final or not
  REJECTED_FINAL = 'REJECTED_FINAL'
}

You can use the above webhook format to inform your user about the current status of KYC and details on why an attempt may be rejected and require re-submission of documents.

In the case that a user is REJECTED, the following details are available via the webhook and the Get KYC Status API.

{
  "userId": "9541f4cf-b71b-4fc9-8cc1-e1d9f6076c5e",
  "status": "REJECTED",
  "details": [
    "UNSATISFACTORY_PHOTOS",
    "SCREENSHOTS",
    "PROBLEMATIC_APPLICANT_DATA"
  ],
  "rejectionComments": {
    "userComment": "The full name on the profile is either missing or incorrect.",
    "autoComment": "Please enter your first and last name exactly as they are written in your identity document."
  }
}

In the case that a user is REJECTED_FINAL, this means that the user cannot be verified and the following details are available.

{
  "userId": "9541f4cf-b71b-4fc9-8cc1-e1d9f6076c5e",
  "status": "REJECTED_FINAL",
  "details": [
    "UNSATISFACTORY_PHOTOS",
    "SCREENSHOTS",
    "NOT_DOCUMENT"
  ],
  "rejectionComments": {
    "userComment": "- Document printout.",
    "autoComment": "We could not verify your profile. If you have any questions, please contact the Company where you try to verify your profile [email protected]"
  }
}