Step Types Overview
| Type | Description | Use Case |
|---|---|---|
document_upload | Upload and extract data from documents | ID, passport, proof of address |
form_fill | Custom form fields for data collection | Personal info, company details |
selfie | Capture selfie photo for face matching | Identity verification |
liveness | AWS Rekognition Face Liveness detection | Anti-fraud, spoof prevention |
validation | Automated validation checks | Cross-validation, final review |
subsession_collection | Collect verification from related parties | UBOs, submerchants, directors |
Common Step Properties
All step types share these base properties:| Property | Type | Required | Description |
|---|---|---|---|
step_id | string | ✓ | Unique identifier for the step |
order | integer | ✓ | Step order (1-based, sequential) |
name | string | ✓ | Step display name |
type | string | ✓ | Step type: document_upload, form_fill, selfie, liveness, validation, or subsession_collection |
required | boolean | Whether this step is required or optional (default: true) | |
description | string | Step description for internal use | |
instructions | string | Instructions shown to the end user |
Document Upload Step
Collect and process documents with automatic data extraction.Configuration
Document Requirement Properties
| Property | Type | Required | Description |
|---|---|---|---|
document_type | string | ✓ | Type of document to collect |
display_name | string | Name shown to the user | |
required | boolean | Whether document is required (default: true) | |
auto_extract | boolean | Automatically extract data from document (default: false) | |
allow_multiple | boolean | Allow multiple files for this document type (default: false) | |
enable_auto_classification | boolean | Use AI to auto-classify document type (default: false) | |
extraction_profile | string | Custom extraction profile ID (optional) | |
post_upload_validations | array | Validations to run after upload | |
entity_role | string | Entity role for watchlist tagging: individual, ubo, director, shareholder, representative. Entities extracted from these documents inherit this tag. |
Document Types
Individual Documents
| Type | Description |
|---|---|
id | Government-issued ID (passport, driver’s license, national ID) |
id_document | Alias for id |
passport | Passport specifically |
proof_of_address | Utility bill, bank statement, etc. |
selfie | Selfie photo (when uploaded as document) |
Company Documents
| Type | Description |
|---|---|
company_charter | Company charter or constitution |
articles_of_incorporation | Incorporation documents |
tax_certificate | Tax registration certificate |
shareholder_registry | Shareholder registry document |
beneficial_owners | Beneficial ownership declaration |
operating_agreement | Operating agreement for LLCs |
Business Documents
| Type | Description |
|---|---|
business_license | Business operating license |
bank_ownership | Bank account ownership verification |
bank_letter | Bank reference letter |
Generic
| Type | Description |
|---|---|
custom | Custom document type |
other | Other document types |
Example: Multiple Document Requirements
Form Fill Step
Collect structured data using custom form fields with semantic validation.Configuration
Form Fill Properties
| Property | Type | Required | Description |
|---|---|---|---|
custom_fields | array | ✓ | Array of field definitions. See Field Types for all available fields. |
See the Field Types documentation for complete field type reference including semantic fields like
country, name, wallet, domain, and volume.Selfie Step
Capture a selfie photo for face matching against ID documents.Configuration
Selfie Config Properties
| Property | Type | Description |
|---|---|---|
require_good_lighting | boolean | Require adequate lighting conditions |
require_face_centered | boolean | Require face to be centered in frame |
Liveness Step
Perform AWS Rekognition Face Liveness detection to verify the user is a real person and prevent spoofing attacks (printed photos, masks, deep fakes).Configuration
Liveness Config Properties
| Property | Type | Description |
|---|---|---|
min_confidence | number | Minimum confidence threshold (0-100) to pass liveness check. Default: 90.0 |
challenge_type | string | Type of liveness challenge: FaceMovementChallenge (simpler) or FaceMovementAndLightChallenge (more secure). Default: FaceMovementChallenge |
save_reference_image | boolean | Save high-quality reference image from liveness check to S3. Default: true |
save_audit_images | boolean | Save audit images (up to 4 frames from the video) to S3. Default: false |
use_for_face_match | boolean | Use the liveness reference image as source for face matching against ID. Default: true |
max_retries | integer | Maximum number of retry attempts allowed (1-10). Default: 3 |
Challenge Types
| Challenge | Description | Security Level |
|---|---|---|
FaceMovementChallenge | User follows head movement prompts | Standard |
FaceMovementAndLightChallenge | Adds colored light reflections on face | High |
Frontend Integration
The frontend must integrate with AWS Rekognition Face Liveness SDK:Example: Complete Liveness Workflow
Validation Step
Define explicit validation tasks to run at this step.Configuration
Validation Tasks
| Task | Description |
|---|---|
cross_validate_documents | Validate consistency between uploaded documents |
run_sanction_check | Run watchlist/sanctions checks |
run_adverse_media | Run adverse media screening |
run_crypto_check | Validate crypto wallet addresses |
run_face_match | Compare ID photo to selfie/liveness |
Subsession Collection Step
Collect verification from related parties (UBOs, submerchants, directors) by creating independent subsessions that can be completed by third parties.Configuration
Subsession Config Properties
| Property | Type | Required | Description |
|---|---|---|---|
workflow_id | string | ✓ | ID of the workflow to use for subsessions |
max_subsessions | integer | Maximum number of subsessions allowed (default: 1) | |
require_completion_before_proceed | boolean | If true, parent session cannot proceed until all subsessions are completed/approved (default: false) | |
impact_parent_status | boolean | If true, subsession status can affect parent session status (default: false) | |
ttl_days | integer | TTL for subsessions in days (overrides default workflow TTL) |
How It Works
- User reaches subsession step: The frontend displays the subsession collection UI
- Create subsessions: User creates one or more subsessions (up to
max_subsessions) - Share links: Each subsession has its own public access link to share with third parties
- Third parties complete verification: Each third party completes their subsession independently
- Proceed or wait: Depending on
require_completion_before_proceed, the user can proceed immediately or must wait
Completion Behavior
When require_completion_before_proceed: false
- User can complete the step and proceed immediately after creating subsessions
- Subsessions continue independently
- Parent session can be approved even if subsessions are pending
When require_completion_before_proceed: true
- User cannot proceed until all created subsessions are completed or approved
- Frontend should show subsession status and block the “Continue” button
- Useful for strict UBO verification requirements
Status Impact
Whenimpact_parent_status: true:
- If any subsession is rejected, the parent session may be flagged for manual review
- All subsession results are aggregated in the parent session’s processing results
- Watchlist hits or adverse media from subsessions are included in parent session
Example: UBO Workflow for Subsessions
Create a simple workflow for UBO verification:Example: Company KYC with UBO Subsessions
Frontend Integration
The frontend receives the subsession_collection step configuration and should:- Display the step instructions
- Show a form/button to create new subsessions
- List existing subsessions with their status
- Show copy/share buttons for subsession links
- Allow regenerating links if needed
- Block progression if
require_completion_before_proceedis true and subsessions are pending
Complete Workflow Example
Related Documentation
- Field Types - All available field types
- Automation Rules - Automation configuration
- Sessions - Managing KYC sessions
- Public Sessions - Subsessions - Public API for subsession management