Browse guides

ID Pass - DVS mode

DVS mode (document_verification: dvs) is the default ID Pass verification strategy. It verifies each identity document directly against the Australian Document Verification Service (DVS) and returns the DVS result code and details to you.

This is the right mode for most KYC use cases where you want full visibility into the DVS outcome.

Requirements

  • Your account must have a DVS Identity (OAC) registered for live environments. Registration is a free process available for Australian businesses - contact your Global Data account manager to register for the DVS.
  • No DVS Identity is required in sandbox.

Quick start

1. Create an ID Pass

Call POST /idpass/register with document_verification set to dvs and the documents you want to collect. Optionally enable the liveness and biometric face match checks via check_liveness.

Example request:

{
  "document_verification": "dvs",
  "check_liveness": true,
  "document_1_allowed_types": ["licence", "passport"],
  "document_2_allowed_types": ["licence", "passport", "medicare"],
  "webhook_url": "https://example.com/webhooks/idpass"
}

The response contains the id, the link to send to your customer, and a cipher_key for decrypting the results later:

{
  "id": "19517924-94f0-4000-8e02-afba96ad5101",
  "link": "https://idpass.example.com/fe4291ca-d831-4760-96df-c9cb03b3cd95",
  "cipher_key": "IHm81bkcMsTL7J1ilxhDNE59+p5OQkvUJ3mZQhlUNHA="
}

See the ID Pass API Reference for all available request options (number of documents, return URL, image retention, requested identity, and so on).

2. Send the link to your customer

Provide the link to your customer by SMS, email, or by redirecting them from your application. See What your customer experiences for what they will see.

3. Track progress (optional)

If you supplied a webhook_url when creating the ID Pass, Global Data will POST a small payload to your endpoint each time the status changes:

{
  "id": "19517924-94f0-4000-8e02-afba96ad5101",
  "status": "complete"
}

See the Webhooks section of the overview for supported events.

4. Retrieve results

Once the ID Pass status is complete, call GET /idpass/details/{id} with the cipher_key to retrieve the full result.

The top-level verification_status is passed when all documents match and cross-document identity data is consistent, failed otherwise. The default response also includes a decrypted validation_summary with strategy-agnostic per-document results:

{
  "message": "Ok",
  "id": "19517924-94f0-4000-8e02-afba96ad5101",
  "status": "complete",
  "verification_status": "passed",
  "verification_description": "The identity was verified successfully",
  "config": { "...": "..." },
  "created_at": "2026-04-16T04:28:53+00:00",
  "consent_given_at": "2026-04-16T04:29:00+00:00",
  "consent_text": "...",
  "completed_at": "2026-04-16T04:29:30+00:00",
  "ip_address": "203.22.251.3",
  "validation_summary": {
    "document_verification": "dvs",
    "liveness_result": {
      "validated": true,
      "confidence": "99.811",
      "threshold": 70,
      "liveness_attempts": 1,
      "bounding_box": { "...": "..." }
    },
    "document_1_result": {
      "document_type": "licence",
      "validated_fields": {
        "first_name": "John",
        "last_name": "Smith",
        "date_of_birth": "1990-03-21"
      },
      "biographic_validated": true,
      "changes": {},
      "biometric_validated": true,
      "biometric_similarity": "98.876",
      "biometric_threshold": 80
    },
    "verified_identity": {
      "first_name": "John",
      "middle_name": null,
      "last_name": "Smith",
      "date_of_birth": "1990-03-21"
    },
    "requested_identity_mismatch": false
  }
}

Key signals in DVS mode:

  • verification_status - passed or failed for the overall ID Pass.
  • verification_description - human-readable reason.
  • validation_summary.document_N_result.biographic_validated - whether the document matched against DVS.
  • validation_summary.document_N_result.biometric_validated - whether the biometric face match passed for that document (when a photo ID was supplied).

Opting in to the raw DVS detail

To see the DVS result code and details, pass return_documents: true on the details request. The response then also contains a documents object with a per-document validation_result:

{
  "...": "...top-level fields as above...",
  "documents": {
    "document_1": {
      "document_type": "licence",
      "document_number": 1,
      "ocr_status": "complete",
      "ocr_attempts": 1,
      "validation_status": "complete",
      "validation_result": {
        "strategy": "dvs",
        "verification_result_code": "Y",
        "verification_request_number": "7a3ed6e1-b707-4e2d-bacb-e2dfe8f57406",
        "additional_information": null,
        "originating_agency_code": "UOO1",
        "checked_at": "2026-04-16 04:28:53"
      },
      "validation_attempts": 1,
      "biometric_result": {
        "passed": true,
        "threshold": 80,
        "similarity": 98.8764,
        "face_occluded": false
      },
      "ocr_data": { "...": "..." },
      "validation_data": { "...": "..." }
    }
  }
}

Key validation_result fields for DVS mode:

  • strategy - dvs
  • verification_result_code - DVS result: Y (match), N (no match), or D (document invalid)
  • verification_request_number - DVS request identifier, required for any official queries on the result
  • additional_information - detail about any mismatch (e.g. "Card number did not match")
  • originating_agency_code - the OAC used for the request
  • checked_at - timestamp of the DVS call

Sandbox testing

In sandbox, no real DVS calls are made and no fees are charged. Uploading a DVS sample document produces that sample's documented sandbox response - when you opt in with return_documents: true, the verification_result_code, additional_information, and other DVS fields are returned exactly as they would be for a direct DVS sandbox call. See Sandbox testing in the ID Pass Overview for the full picture.