VeroID

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

  1. Use a sandbox API key (prefix: sk_sandbox_*)
  2. Send requests to the same endpoints
  3. Receive simulated responses
  4. No credits are deducted

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.

Note: The following document types always return 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).

familyNameResponse CodeStatusDescription
dvsmatchYsuccessData matches — all details match the issuer record
dvsnomatchNfailedNo match — data does not match the issuer record
dvsdataDfailedData error at the issuer (e.g. record not held at source)
dvssystemSerrorSystem error at the issuer or DVS Hub — safe to retry

Example Requests

Driver's Licence — Guaranteed Match (Y)

curl -X POST https://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

FeatureSandboxLive
API Key Prefixsk_sandbox_*sk_live_*
Credits UsedNoYes (1 per verification)
Real VerificationNoYes
Response Time~200ms~500-2000ms