VettiGuard

Exercise every verification outcome before production.

Issue non-production response tokens and verify deterministic success, score, context, replay, expiry, and outage scenarios. Sandbox responses never enter live verification state and are rejected by production /siteverify.

Build failure handling without waiting for a real failure.

Each scenario produces a stable class of response while tokens remain individually signed and short-lived.

Issue a token, then verify it as your backend would.

The console calls the same public sandbox endpoints available to automated tests. It never uses a production protected-site key or secret.

1 Issue test token2 Send to backend3 Validate complete response
Live resultReady to run
Idle
{
  "sandbox": true,
  "message": "Choose a scenario and run the test."
}

Generate a response token

curl -X POST https://vettiguard.com/api/v1/sandbox/issue \
  -H "Content-Type: application/json" \
  -d '{
    "site_key": "vg_test_site_key",
    "scenario": "success",
    "action": "checkout",
    "hostname": "sandbox.example.test"
  }'

Use the server-side contract

curl -X POST https://vettiguard.com/api/v1/sandbox/siteverify \
  -H "Content-Type: application/json" \
  -d '{
    "secret": "vg_test_secret_demo_only",
    "response": "vgsbx.generated-token",
    "action": "checkout"
  }'

Strict environment boundary

Sandbox tokens use a separate prefix and verifier. Production endpoints never recognise them.

Repeatable CI scenarios

Outcome classes are stable, while short-lived signed tokens prevent accidental payload mutation.

Test fail-closed behaviour

Exercise low scores, context mismatches, replay, expiry, invalid input, and temporary service errors.