Verification Profiles

Create custom identity verification workflows tailored to your risk appetite, compliance requirements, and user experience goals.

Verification Profiles

Design custom verification workflows by combining document checks, biometrics, database lookups, and risk assessments to match your specific compliance and business requirements.

What are Verification Profiles?

Verification profiles are reusable workflow templates that define:

  • Which checks to perform (document, biometric, database)
  • In what order checks execute
  • Automatic vs. manual review rules
  • Pass/fail thresholds
  • Required vs. optional steps

Flexibility

Create multiple profiles for different customer segments (e.g., retail customers vs. high-net-worth individuals, low-value vs. high-value transactions).

Pre-Built Profiles

VeriPlus includes 3 standard profiles:

Express Profile

Checks: Document verification only Time: 30 seconds Cost: 1 Credit Risk Level: Low-Medium

Best For:

  • Low-risk customers
  • Small transaction values (<$1,000)
  • Quick onboarding required
  • Non-regulated industries

Process:

  1. User uploads ID document
  2. AI verifies authenticity
  3. Data extracted automatically
  4. Auto-approve if document valid

Limitations:

  • No proof of possession (could be stolen ID)
  • No liveness check
  • Higher fraud risk

Standard Profile

Checks: Document + Selfie + Face Match Time: 60 seconds Cost: 1 Credit Risk Level: Medium

Best For:

  • General KYC compliance
  • Most use cases
  • Regulated industries (basic tier)
  • E-commerce, marketplace

Process:

  1. User uploads ID document
  2. Document verified
  3. User takes selfie
  4. Face match performed
  5. Auto-approve if both pass

Security: Proves person possesses the document (not just a photo of it)

Enhanced Profile

Checks: Document + Selfie + Liveness + Face Match Time: 90 seconds Cost: 2 Credits Risk Level: Low (High Assurance)

Best For:

  • High-risk customers (PEPs, sanctions screening required)
  • Large transactions (>$10,000)
  • Cryptocurrency exchanges
  • Financial institutions
  • Gaming/gambling

Process:

  1. User uploads ID document
  2. Document verified
  3. User takes selfie with liveness check
  4. Liveness verified (real person)
  5. Face match performed
  6. Auto-approve if all pass

Security: Maximum fraud prevention with liveness detection

Creating Custom Profiles

Profile Builder

POST /api/v3/verification-profiles
 
{
  "name": "High-Value Customer",
  "description": "For transactions above $10,000",
  "steps": [
    {
      "type": "document",
      "required": true,
      "allowedDocuments": ["passport", "national_id"],
      "fraudThreshold": 30
    },
    {
      "type": "selfie",
      "required": true,
      "livenessType": "active"
    },
    {
      "type": "face_match",
      "required": true,
      "minimumScore": 85
    },
    {
      "type": "aml_screening",
      "required": true,
      "categories": ["sanctions", "pep", "adverse_media"]
    }
  ],
  "autoApprove": {
    "enabled": false // Always manual review
  }
}

Step Types

Step TypeDescriptionCredit Cost
documentID document verification1
non_documentDatabase/credit bureau checks1
selfieSelfie capture (with/without liveness)1
face_matchCompare selfie to documentIncluded
aml_screeningSanctions/PEP screening1-5
deepfakeAI-generated content detection2-10
kyt_cryptoCrypto wallet screening2
manual_reviewHuman review required0

Conditional Logic

Add conditional steps based on risk signals:

{
  "steps": [
    {
      "type": "document",
      "required": true
    },
    {
      "type": "aml_screening",
      "required": false,
      "conditions": {
        "triggerIf": {
          "country": ["RU", "IR", "KP"], // High-risk countries
          "OR": {
            "transactionValue": ">= 10000"
          }
        }
      }
    },
    {
      "type": "deepfake",
      "required": false,
      "conditions": {
        "triggerIf": {
          "documentFraudScore": ">= 40"
        }
      }
    }
  ]
}

Conditional Triggers:

  • Country of residence
  • Transaction value
  • Customer risk score
  • Document fraud score
  • Age
  • Previous verification history

Auto-Approval Rules

Configure when verifications auto-approve vs. require manual review:

Rule Configuration

{
  "autoApprove": {
    "enabled": true,
    "rules": [
      {
        "condition": "ALL",
        "checks": [
          { "documentFraudScore": "< 30" },
          { "faceMatchScore": ">= 85" },
          { "livenessResult": "== pass" },
          { "amlHits": "== 0" }
        ]
      }
    ]
  },
  "autoReject": {
    "enabled": true,
    "rules": [
      {
        "condition": "ANY",
        "checks": [
          { "documentFraudScore": ">= 70" },
          { "faceMatchScore": "< 60" },
          { "amlSanctionsHit": "== true" }
        ]
      }
    ]
  }
}

Review Queue

Verifications that don't auto-approve or auto-reject go to manual review:

{
  "manualReview": {
    "assignTo": "compliance_team",
    "priority": "high", // or "medium", "low"
    "sla": 4 // hours
  }
}

Risk-Based Profiles

Different profiles for different customer risk levels:

Low-Risk Profile

Criteria: Small transactions, low-risk countries, existing customer Workflow: Express (document only) Cost: 1 Credit

Medium-Risk Profile

Criteria: Standard transactions, most countries, new customer Workflow: Standard (document + selfie) Cost: 1 Credit

High-Risk Profile

Criteria: Large transactions, high-risk countries, PEPs Workflow: Enhanced + AML Cost: 6 credits (3 for Enhanced + 3 for AML)

Dynamic Profile Selection:

function selectProfile(applicant, transaction) {
  const riskScore = calculateRisk(applicant);
 
  if (riskScore < 30) return 'low_risk_profile';
  if (riskScore < 70) return 'medium_risk_profile';
  return 'high_risk_profile';
}

Industry-Specific Profiles

Cryptocurrency Exchange

Requirements:

  • Document verification (passport or national ID)
  • Liveness detection (prevent deepfakes)
  • AML screening (sanctions, PEP)
  • KYT crypto wallet screening
  • Manual review for PEPs
{
  "name": "Crypto Exchange KYC",
  "steps": [
    { "type": "document", "allowedDocuments": ["passport", "national_id"] },
    { "type": "selfie", "livenessType": "active" },
    { "type": "face_match", "minimumScore": 90 },
    { "type": "aml_screening", "categories": ["sanctions", "pep"] },
    { "type": "kyt_crypto", "walletAddress": "{{applicant.cryptoWallet}}" }
  ],
  "autoApprove": {
    "enabled": true,
    "rules": [
      { "amlHits": "== 0" },
      { "kytRiskScore": "< 40" }
    ]
  }
}

Online Gaming/Gambling

Requirements:

  • Age verification (18+ or 21+)
  • Document verification
  • Address verification
  • Responsible gambling checks
{
  "name": "Gaming Age Verification",
  "steps": [
    { "type": "age_estimation", "minimumAge": 18 },
    { "type": "document", "required": true },
    { "type": "selfie", "required": true },
    { "type": "face_match", "minimumScore": 80 }
  ],
  "autoReject": {
    "rules": [
      { "estimatedAge": "< 18" },
      { "documentExpired": "== true" }
    ]
  }
}

Fintech/Banking

Requirements:

  • Document + biometric
  • AML screening
  • Credit bureau check (optional)
  • Address verification
{
  "name": "Bank Account Opening",
  "steps": [
    { "type": "document" },
    { "type": "selfie", "livenessType": "passive" },
    { "type": "face_match", "minimumScore": 85 },
    { "type": "aml_screening", "categories": ["sanctions", "pep", "adverse_media"] },
    { "type": "non_document", "methods": ["credit_bureau", "address_verification"] }
  ],
  "manualReview": {
    "always": false,
    "triggerIf": {
      "amlHits": "> 0",
      "OR": { "faceMatchScore": "< 85" }
    }
  }
}

Healthcare

Requirements:

  • Identity verification
  • Insurance verification
  • HIPAA compliance
{
  "name": "Patient Onboarding",
  "steps": [
    { "type": "document" },
    { "type": "selfie" },
    { "type": "face_match" }
  ],
  "dataRetention": {
    "period": "7_years", // HIPAA requirement
    "deleteAfter": true
  }
}

Re-Verification Profiles

For existing customers requiring periodic re-verification:

{
  "name": "Annual Re-Verification",
  "steps": [
    { "type": "selfie", "livenessType": "passive" },
    { "type": "face_match", "compareTo": "original_document" }
  ],
  "skipIf": {
    "lastVerification": "< 365_days",
    "riskScore": "< 30"
  }
}

Re-Verification Triggers:

  • Annual compliance requirement
  • Transaction threshold exceeded
  • Risk score increase
  • Customer request
  • Regulatory requirement

Testing Profiles

Test profiles in sandbox before production:

POST /api/v3/verification-profiles/:id/test
 
{
  "testData": {
    "document": "sample_passport.jpg",
    "selfie": "sample_selfie.jpg"
  }
}
 
// Returns simulated results
{
  "result": "approved",
  "steps": [
    { "type": "document", "status": "pass", "duration": "2.3s" },
    { "type": "selfie", "status": "pass", "duration": "1.1s" },
    { "type": "face_match", "status": "pass", "score": 92 }
  ],
  "totalCost": 2,
  "totalDuration": "5.2s"
}

Profile Analytics

Track performance metrics for each profile:

GET /api/v3/verification-profiles/:id/analytics
 
{
  "profile": "Standard KYC",
  "period": "last_30_days",
  "metrics": {
    "totalVerifications": 1245,
    "autoApproved": 892, // 71.6%
    "manualReview": 287, // 23.0%
    "autoRejected": 66, // 5.3%
    "averageCost": 2.1,
    "averageDuration": "58s",
    "passRate": 95.2%
  },
  "stepPerformance": {
    "document": { "passRate": 98.1%, "avgDuration": "12s" },
    "face_match": { "passRate": 94.3%, "avgDuration": "3s" }
  }
}

Optimization Insights:

  • Which steps cause most manual reviews?
  • Average cost per verification
  • Conversion rate (completed verifications)
  • User drop-off points

Best Practices

  1. Start with Standard profile - Works for most use cases
  2. Test before deploying - Use sandbox to validate profile logic
  3. Monitor analytics - Adjust thresholds based on false positive/negative rates
  4. Have clear triggers - Know when to use each profile
  5. Document your profiles - Explain why each step is required (for audits)
  6. Balance security vs. UX - More steps = higher security but worse conversion
  7. Regular review - Update profiles as regulations and fraud patterns change
  8. A/B test - Compare profiles to optimise pass rates and cost

Migration Between Profiles

Upgrade existing customers to higher assurance levels:

POST /api/v3/applicants/:id/upgrade-verification
 
{
  "fromProfile": "express",
  "toProfile": "standard",
  "reason": "Transaction limit increase"
}
 
// Only performs incremental steps (e.g., adds selfie if document already done)

Compliance Mapping

Map profiles to regulatory requirements:

RegulationMinimum ProfileNotes
6AMLD (EU)StandardEnhanced for PEPs
PATRIOT Act (US)Standard+ AML screening
FATF RecommendationsStandardEnhanced for high-risk
MiCA (Crypto - EU)Enhanced+ KYT crypto
GDPR (EU)AnyConsent + data minimization
UK MLR 2017StandardEnhanced for PEPs

Next Steps

See it in action

Experience the full power of VeriPlus compliance platform.

Start Free Trial

Ready to get started?

Start with our free plan. No credit card required.

We value your privacy

We use cookies to enhance your browsing experience, serve personalized content, and analyze our traffic. By clicking "Accept All", you consent to our use of cookies. Read our Privacy Policy and Cookie Policy for more information.