Testing Your Integration
How to test your SheerID integration with Test Mode and Live Mode testing — simulate every verification outcome using the test trigger values.
Overview
Every new SheerID program starts in Test Mode — an emulation of the live verification experience. Because test mode does not consult real data sources, the outcome of a verification is driven entirely by the values you submit (see the triggers below). In test mode:
- Successful verifications return a hashed placeholder reward, not a live reward code.
- Requests are not billable.
- Offer protections are disabled.
- SheerID-hosted forms show a red Test Mode banner.
The same REST endpoints and JavaScript library are used for test and live — there is no separate test host. A program’s mode (and its testing allowlist) is configured in MySheerID.
Test Mode vs Live Mode testing
There are two ways to exercise test behavior:
Test Mode (pre-launch). The whole program is in a test state. Use it before launch to verify styling, copy, links, CTAs, and webhooks end to end.
Live Mode testing (post-launch). Once a program is live, add specific email addresses (up to 20) to the program’s testing allowlist in MySheerID. A verification submitted with an allowlisted email gets test-mode behavior (hashed reward, not billable), while every other consumer goes through real verification.
Simulate outcomes by first name
In test mode, set the firstName field to one of these values to force a specific outcome. Any other first name yields the field-based result in the next section.
firstName |
Outcome |
|---|---|
UPLOAD |
Routes straight to the document-upload step. |
REJECTED |
Instant verification fails; routes to document upload if the program allows it. |
EMAILLOOP |
Triggers the email-loop (confirm-your-email) step. |
SSO |
Triggers the school Single Sign-On step. |
ID_CHECK_LOOP |
Triggers the ID-check (government ID) step. |
__ERROR__ |
Returns a simulated error. |
error |
Returns an error outcome. Set lastName to a numeric error code to simulate a specific error (for example, data not available, data source unavailable, or pending). |
delay |
Adds artificial latency before responding. Set lastName to the delay in milliseconds (max 10000) to test client timeouts. |
Simulate pass/fail by field
When firstName is not one of the trigger values, the instant pass/fail result is determined by the first of these fields present on the request:
| Field | Pass | Fail | Error |
|---|---|---|---|
| Birth date | Even year | Odd year | A future date |
| SSN (last 4) | Even number | Odd number | 0 |
| ID number | Even number | Odd number | 0 |
| Postal code | Even number | Odd number | 0 |
For example, a birth date of 1990-01-01 (even year) passes instantly, while 1991-01-01 (odd year) fails and moves to document upload.
What’s different from production
| Test Mode / allowlisted | Live | |
|---|---|---|
| Data sources | Not consulted (inputs drive the result) | Consulted |
| Reward | Hashed placeholder | Real reward code |
| Billing | Not billable | Billable |
| Offer protections | Disabled | Enforced |
Going live
When you’re ready, switch the program out of Test Mode in MySheerID. After launch, use Live Mode testing (the allowlist above) to validate changes without interrupting real consumers — and remember to turn it off when you’re done.
Related
- REST API — the request/response loop you’re testing.
- Errors — interpret the error outcomes you simulate.
- Setting Up Webhooks — verify webhook delivery while testing.
- SheerID Knowledge Base: Testing pre-launch and Live Mode testing.