Sandbox Mode
Test your integration without using credits
Sandbox mode lets you test your integration without consuming credits or making real verification requests.
How It Works
- Use a sandbox API key (prefix:
sk_sandbox_*) - Send requests to
https://test-api.veroid.com.au - Receive simulated responses
- No credits are deducted
Sandbox is available from the moment a developer account is active — before the onboarding fee is paid — and is the supported way to build your integration while your account is being assessed for production DVS access. Dashboard accounts have no API keys and so no sandbox.
Sandbox Behaviour
The VeroID sandbox mirrors the real DVS sandpit environment. By design, the DVS sandpit returns random results (Y, N, D, or S) for most requests — this reflects how the real sandpit works. Use the family name triggers below to get deterministic results during development.
S (system error) in the sandbox, regardless of any trigger value used. This matches real DVS sandpit behaviour where these issuers are unavailable in the test environment: passport, birth_certificate, death_certificate, marriage_certificate, change_of_name_certificate, citizenship.Deterministic Triggers
Use these exact familyName values to force a specific DVS response code in the sandbox. Any other family name returns a random result (Y, N, D, or S).
| familyName | Response Code | Status | Description |
|---|---|---|---|
dvsmatch | Y | success | Data matches — all details match the issuer record |
dvsnomatch | N | failed | No match — data does not match the issuer record |
dvsdata | D | failed | Data error at the issuer (e.g. record not held at source) |
dvssystem | S | error | System error at the issuer or DVS Hub — safe to retry |
Example Requests
Driver's Licence — Guaranteed Match (Y)
curl -X POST https://test-api.veroid.com.au/v1/verify \
-H "Content-Type: application/json" \
-H "X-API-Key: sk_sandbox_your_key" \
-d '{
"documentType": "drivers_licence",
"givenName": "John",
"familyName": "dvsmatch",
"dateOfBirth": "1990-01-15",
"licenceNumber": "1234567",
"stateOfIssue": "NSW",
"cardNumber": "1234567890",
"consentAttestedAt": "2026-05-19T10:30:00Z",
"consentVersion": "1.0"
}'Medicare Card
Medicare uses fullName (as printed on the card) instead of givenName/familyName. Because the trigger is matched against the name field, Medicare always returns a random result in the sandbox — the deterministic triggers only work for document types that have a familyName field.
{
"documentType": "medicare",
"fullName": "JOHN SMITH",
"medicareNumber": "2123456701",
"individualReferenceNumber": 1,
"cardColour": "G",
"expiryDate": "2027-11",
"consentAttestedAt": "2026-05-19T10:30:00Z",
"consentVersion": "1.0"
}Sandbox vs Live
| Feature | Sandbox | Live |
|---|---|---|
| API Key Prefix | sk_sandbox_* | sk_live_* |
| Base URL | test-api.veroid.com.au | api.veroid.com.au |
| Availability | As soon as your developer account is active | After the onboarding fee is paid and VeroID approves you for production DVS |
| Credits Used | No | Yes (1 per verification) |
| Real Verification | No | Yes |
| Response Time | ~200ms | ~500-2000ms |