Skip to content

Verification Workflow API

API endpoints for KYC verification processing using AWS Rekognition (face comparison) and AWS Textract (OCR).

Base URL: /verification

Endpoints Summary

MethodEndpointDescription
POST/verification/process/:jobIdTrigger verification
GET/verification/results/:jobIdGet verification results
GET/verification/status/:jobIdGet current status
POST/verification/test-face-comparisonTest face matching
POST/verification/test-ocrTest OCR extraction

Process Verification

POST /verification/process/:jobId

Triggers the full verification workflow for a KYC job.

Prerequisites:

  • Job must exist
  • User must have uploaded ID front and selfie images
  • ID back image is optional

Returns:

FieldDescription
jobIdJob UUID
statusCOMPLETED, REJECTED, or FAILED
currentStageCurrent workflow stage
progressPercentage0-100 completion
ocrResultExtracted ID data
faceComparisonResultFace match result
decisionapproved, rejected, or manual_review

Get Verification Results

GET /verification/results/:jobId

Returns: Complete verification results including:

FieldDescription
jobIdJob UUID
statusJob status
stageProgressProgress of each stage
rejectionReasonReason if rejected
userInfoUser profile and images

Get Verification Status

GET /verification/status/:jobId

Returns:

FieldDescription
currentStatusPENDING, PROCESSING, COMPLETED, REJECTED
currentStageActive workflow stage
progressPercentageCompletion percentage
stageProgressStatus of each stage
estimatedTimeRemainingEstimated time to complete

Test Face Comparison

POST /verification/test-face-comparison

Tests face comparison without creating a job.

Request Body:

FieldTypeRequiredDescription
sourceImagestringYesID document image URL
targetImagestringYesSelfie image URL
similarityThresholdnumberNoMatch threshold (default: 80)

Returns:

FieldDescription
isMatchtrue/false based on threshold
similaritySimilarity percentage (0-100)
confidenceAWS confidence score
faceDetailsBounding box and quality metrics
decisionapproved/rejected/manual_review

Test OCR Extraction

POST /verification/test-ocr

Tests OCR extraction from a document image.

Request Body:

FieldTypeRequiredDescription
imageUrlstringYesDocument image URL

Returns:

FieldDescription
personalInfoExtracted name, ID, DOB, sex
confidenceExtraction confidence (0-100)
validationCompleteness and issues
extractedFieldsList of fields found

Verification Stages

StageDescriptionDuration
submittedDocuments uploaded, awaiting processing-
ocr_processingExtracting data from ID (AWS Textract)~3 min
face_verificationComparing selfie to ID (AWS Rekognition)~2 min
final_reviewAutomated/manual review~1 min
completedVerification successful-
rejectedVerification failed-

Decision Types

DecisionDescription
approvedVerification successful, user verified
rejectedVerification failed, reason provided
manual_reviewRequires human review

OCR Extracted Fields

FieldDescription
firstNameFirst name from ID
lastNameLast name from ID
idNumberGovernment ID number
dateOfBirthDate of birth (YYYY-MM-DD)
sexMALE or FEMALE
nationalityNationality
expiryDateID expiry date

Face Comparison Thresholds

ThresholdDescription
≥80%Match - approved
60-79%Uncertain - manual review
<60%No match - rejected

Error Responses

StatusErrorDescription
404Job not foundInvalid job ID
404KYC user data not foundUser not found
400Required images not foundMissing ID front or selfie
500Face comparison failedAWS Rekognition error
500OCR extraction failedAWS Textract error

Internal use only - Keshless Payment Platform