Testing
Verifa’s sandbox environment lets you build and test your integration without processing real documents or incurring charges. Sandbox sessions return simulated results that you control.
Sandbox vs. production
Sandbox and production are fully isolated — separate API keys, separate webhooks, separate data. A sandbox key cannot access production resources and vice versa.
Creating sandbox sessions
Use a sandbox API key to create test sessions:
The response includes "is_sandbox": true.
Controlling outcomes
Via the capture UI
When you open the capture_url for a sandbox session, the capture flow includes
a final screen where you can select the outcome:
- Approve — Session completes with status
approved - Reject — Session completes with status
rejected - Needs Review — Session routes to the review queue
Via the API
Set the outcome programmatically:
Options: approve, reject, needs_review.
Simulated results
Sandbox sessions return realistic but simulated data:
Testing webhooks
Sandbox sessions fire webhooks to your sandbox webhook endpoints just like production. This lets you test your webhook handler end-to-end.
Send a test event
Sandbox secret visibility
Sandbox webhook secrets are visible in API responses (similar to Stripe’s test mode). This makes it easier to set up and debug during development. Production secrets are only shown on creation and rotation.
Testing the review queue
Create demo review cases in sandbox:
This creates a case with simulated session data, documents, and check results so you can test the review workflow. Maximum 3 demo cases per organization.
Testing specific check types
AML screening
Sandbox AML checks return simulated hits. Use specific names to trigger different outcomes:
- Any name — Returns
clear(no matches) - Use real session flow — Simulated hits based on sandbox outcome selection
List matching
Lists work identically in sandbox and production. Create test lists and items, then create sessions to verify matching behavior.
Fraud signals
Sandbox sessions include simulated fraud signal data. The risk score and triggered signals in the result are realistic examples, not derived from actual client-side collection.
Testing checklist
Before going live, verify:
- Session creation returns a valid
capture_url - Webhook endpoint receives events and verifies signatures correctly
- Your app handles
session.approved,session.declined, andsession.requires-reviewevents - Session result retrieval returns expected data structure
- Error handling works for expired sessions, rate limits, and auth errors
- Review queue integration works (if using manual review)
- Data redaction works (
DELETE /api/v1/sessions/\{id\}/data) - Idempotency keys prevent duplicate session creation
Switching to production
- Create a production API key in the dashboard (prefix:
vk_live_*) - Create a production webhook endpoint
- Update your server configuration to use the production key
- Create a test session in production to verify the full flow with real document processing
Related
- Quickstart — Create your first sandbox session
- Webhooks Guide — Configure and test webhooks
- Sessions — Full session lifecycle
- Errors — Handle error responses