Test vs Live Environments
Last Updated: January 5, 2026
VerifyHuman uses a Stripe-style environment system with separate Test and Live modes. This allows you to develop and test your integration without consuming real credits or processing real verifications.
Table of Contents
- Overview
- Environment Toggle
- Test Mode
- Live Mode
- API Key Environments
- Data Separation
- Transitioning to Live
- Best Practices
Overview
| Feature | Test Mode | Live Mode |
|---|---|---|
| Purpose | Development & testing | Production usage |
| Credits | Simulated (not consumed) | Real credits consumed |
| AI Processing | Simulated responses | Real verification provider |
| Data Retention | Separate from live | Production database |
| Billing | No charges | Actual charges apply |
Environment Toggle
The environment toggle appears in the top navigation bar of your dashboard. It allows you to switch between Test and Live modes instantly.
Toggle States:
- Test (Yellow) - Development mode active
- Live (Green) - Production mode active
Switching Environments:
- Click the environment toggle in the navigation bar
- Select "Test" or "Live"
- The page will refresh with data from the selected environment
Note: The environment toggle only affects your dashboard view. Your API keys are environment-specific and determine which mode your integrations use.
Test Mode
Test mode is designed for development, debugging, and integration testing.
Characteristics
- No Credit Consumption: Verifications don't use real credits
- Simulated AI: Returns mock verification results
- Isolated Data: Separate verification history from live
- Unlimited Testing: Test as much as needed without cost
Test Mode Behavior
VerifyHuman Verifications:
- Always returns
PASSstatus after brief delay - Confidence score randomly generated (85-99%)
- JWT token issued (valid for testing)
VerifyAge Verifications:
- Age estimation returns realistic mock values
- ID verification simulated
- Compliance rules still enforced
VerifyIdentity/Compliance:
- Face matching simulated
- OCR returns mock data
- Compliance screening returns "Cleared" status
When to Use Test Mode
- Initial integration development
- Testing error handling
- UI/UX development
- CI/CD pipeline testing
- Demo environments
- Developer training
Live Mode
Live mode processes real verifications using AI services and consumes credits.
Characteristics
- Real AI Processing: Production verification engine for face detection
- Credit Consumption: Each verification uses credits
- Production Data: Results stored in production database
- Billing Active: Overages and subscription billing apply
Live Mode Behavior
VerifyHuman Verifications:
- Real liveness detection via the production verification engine
- Actual face detection and confidence scoring
- Throttling rules enforced (5 failures = 5-minute block)
VerifyAge Verifications:
- Real AI age estimation
- Actual ID document verification when needed
- State-specific compliance rules enforced
VerifyIdentity/Compliance:
- Real face matching against ID photos
- Actual OCR text extraction
- Real AML/PEP/Sanctions screening (VerifyTrust)
When to Use Live Mode
- Production deployments
- Real user verifications
- Compliance audits
- Final integration testing
API Key Environments
API keys are created for specific environments. The environment is embedded in the key metadata.
Creating Environment-Specific Keys
- Go to Dashboard > API Keys
- Click "Create New API Key"
- Select Environment: Test or Live
- Configure scopes and create key
Key Identification
While keys use the same vhk- prefix, they are associated with their creation environment:
| Environment | Usage |
|---|---|
| Test keys | Only work in test mode, no credits consumed |
| Live keys | Only work in live mode, credits consumed |
Key Restrictions
- Test keys cannot access live endpoints
- Live keys cannot access test endpoints
- Using the wrong key returns
403 Forbidden
Data Separation
Test and Live environments maintain completely separate data:
Separated Data
| Data Type | Separation |
|---|---|
| Verifications | Separate tables/queries |
| API Keys | Environment-tagged |
| Usage Statistics | Filtered by environment |
| Reports | Environment parameter required |
| Export Jobs | Environment-specific |
Shared Data
| Data Type | Notes |
|---|---|
| User Accounts | Single account accesses both |
| Subscription Plans | Same plan for both environments |
| Organization/Team | Team settings apply to both |
Transitioning to Live
When you're ready to move from testing to production:
Pre-Launch Checklist
API Key Configuration
- Create Live environment API keys
- Update production environment variables
- Remove test keys from production config
Integration Verification
- Test critical flows in live mode (limited scope)
- Verify webhook endpoints if used
- Confirm error handling works correctly
Credit Verification
- Ensure sufficient credits available
- Set up billing alerts
- Configure auto-upgrade if needed
Security Review
- Enable Two-Factor Authentication
- Review API key scopes
- Configure domain whitelisting (optional)
Launch Steps
- Switch dashboard to Live mode
- Deploy production code with Live API keys
- Monitor initial verifications in dashboard
- Check verification success rates
- Review credit consumption
VerifyFlow Test Mode
VerifyFlow published Flows have dedicated test and live hosted pages.
How it works
When you publish a VerifyFlow, VerifyHuman automatically creates two hosted pages:
| Page | Environment | Credits | Purpose |
|---|---|---|---|
| Live hosted page | Live | Real credits | Share with users |
| Test hosted page | Test | None | Validate setup |
Both pages are created in the same publish step.
The Test Mode banner
Every test hosted page displays a yellow Test Mode banner so users cannot mistake a sample run for a real verification. The banner cannot be hidden.
Opening the test page
From the Flow detail page, find the Test Mode card and click Open in Test Mode, or copy the test link to share internally.
What test mode changes
- No real AI verification is run
- No live credits are consumed
- Test results are labeled separately in your dashboard
- Redirect URLs still fire, so you can validate your post-verification flow
- Branding is identical to the live page (so you can preview how it will look)
→ Full VerifyFlow Test Mode documentation
Best Practices
Development Workflow
1. Local Development → Test Mode
2. Staging Environment → Test Mode
3. Pre-Production Testing → Limited Live Testing
4. Production → Live Mode
Environment Variables
Use separate environment variables for test and live keys:
# Development (.env.development)
VERIFYHUMAN_API_KEY=vhk-test-xxxxx
# Production (.env.production)
VERIFYHUMAN_API_KEY=vhk-live-xxxxx
Testing Best Practices
Use Test Mode for Development
- All feature development in test mode
- No risk of consuming credits
Limited Live Testing
- Only for final verification before launch
- Use real images/data sparingly
Separate Staging from Production
- Staging uses test keys
- Production uses live keys
Monitor Both Environments
- Check test environment for integration issues
- Check live environment for production health
Common Mistakes to Avoid
| Mistake | Consequence | Prevention |
|---|---|---|
| Using live keys in development | Wastes credits | Use test keys locally |
| Forgetting to switch to live | Integration appears broken | Deploy checklist |
| Using test keys in production | All verifications fail | Environment variable check |
| Not testing in live before launch | Unexpected production issues | Pre-launch live testing |
Troubleshooting
"Invalid API key for environment"
Your API key doesn't match the current environment:
- Test key used for live endpoint
- Live key used for test endpoint
Solution: Create key for the correct environment.
"Verifications not appearing in dashboard"
You may be viewing the wrong environment:
- Check environment toggle in navigation
- Switch to the environment matching your API keys
"Test verifications consuming credits"
Test mode should never consume credits. Check:
- Are you using a Live API key?
- Is the environment toggle set to Live?
See Also
- Authentication - API key management
- Getting Started - Integration quickstart
- Dashboard Guide - Dashboard navigation