Visa
curl --request POST \
--url https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/australia-visa-passthrough \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"passportNumber": "PA1234567",
"dob": "15-03-1990",
"familyName": "Smith",
"givenName": "Jordan"
}
'import requests
url = "https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/australia-visa-passthrough"
payload = {
"passportNumber": "PA1234567",
"dob": "15-03-1990",
"familyName": "Smith",
"givenName": "Jordan"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
passportNumber: 'PA1234567',
dob: '15-03-1990',
familyName: 'Smith',
givenName: 'Jordan'
})
};
fetch('https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/australia-visa-passthrough', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/australia-visa-passthrough",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'passportNumber' => 'PA1234567',
'dob' => '15-03-1990',
'familyName' => 'Smith',
'givenName' => 'Jordan'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/australia-visa-passthrough"
payload := strings.NewReader("{\n \"passportNumber\": \"PA1234567\",\n \"dob\": \"15-03-1990\",\n \"familyName\": \"Smith\",\n \"givenName\": \"Jordan\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/australia-visa-passthrough")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"passportNumber\": \"PA1234567\",\n \"dob\": \"15-03-1990\",\n \"familyName\": \"Smith\",\n \"givenName\": \"Jordan\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/australia-visa-passthrough")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"passportNumber\": \"PA1234567\",\n \"dob\": \"15-03-1990\",\n \"familyName\": \"Smith\",\n \"givenName\": \"Jordan\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Australia Visa processed successfully",
"data": {
"isValid": true
},
"verificationStatus": "VERIFIED",
"verificationStatusCode": 3,
"transactionId": "79b6f81c-fc48-42ce-b907-763129b0957e",
"verificationType": "australia_visa",
"metadata": {
"yourRef": "testCase-9002"
},
"createdAt": "2026-08-27 02:49:30+0000"
}Australia DVS
Visa
Verify an Australian Visa by submitting the required visa details to the Australian Document Verification Service (DVS).
POST
/
api
/
v3
/
verifications
/
australia-visa-passthrough
Visa
curl --request POST \
--url https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/australia-visa-passthrough \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"passportNumber": "PA1234567",
"dob": "15-03-1990",
"familyName": "Smith",
"givenName": "Jordan"
}
'import requests
url = "https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/australia-visa-passthrough"
payload = {
"passportNumber": "PA1234567",
"dob": "15-03-1990",
"familyName": "Smith",
"givenName": "Jordan"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
passportNumber: 'PA1234567',
dob: '15-03-1990',
familyName: 'Smith',
givenName: 'Jordan'
})
};
fetch('https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/australia-visa-passthrough', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/australia-visa-passthrough",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'passportNumber' => 'PA1234567',
'dob' => '15-03-1990',
'familyName' => 'Smith',
'givenName' => 'Jordan'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/australia-visa-passthrough"
payload := strings.NewReader("{\n \"passportNumber\": \"PA1234567\",\n \"dob\": \"15-03-1990\",\n \"familyName\": \"Smith\",\n \"givenName\": \"Jordan\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/australia-visa-passthrough")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"passportNumber\": \"PA1234567\",\n \"dob\": \"15-03-1990\",\n \"familyName\": \"Smith\",\n \"givenName\": \"Jordan\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/australia-visa-passthrough")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"passportNumber\": \"PA1234567\",\n \"dob\": \"15-03-1990\",\n \"familyName\": \"Smith\",\n \"givenName\": \"Jordan\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Australia Visa processed successfully",
"data": {
"isValid": true
},
"verificationStatus": "VERIFIED",
"verificationStatusCode": 3,
"transactionId": "79b6f81c-fc48-42ce-b907-763129b0957e",
"verificationType": "australia_visa",
"metadata": {
"yourRef": "testCase-9002"
},
"createdAt": "2026-08-27 02:49:30+0000"
}Verify an Australian visa against the Department of Home Affairs record linked to a passport.
A visa is checked through the passport it is attached to, so submit the passport number and country of issue alongside the holder’s name and date of birth. DVS confirms whether a visa record matches those details. It does not return the visa subclass, conditions, or work rights.
Reading the result
Checkdata.isValid to determine whether the submitted details match the issuing agency’s records. A no-match still returns HTTP 200 with success: true — see Introduction to Australia DVS for how to interpret verificationStatus.
Sandbox test data
Visa sandbox payloads
Copy-paste payloads for every outcome.
Authorizations
Use your API token as a Bearer token in the Authorization header.
Headers
Example:
"Bearer {your_api_token}"
Body
application/json
Passport number the visa is linked to.
Date of birth in DD-MM-YYYY format.
Example:
"15-03-1990"
Family name on the passport.
Given name(s) on the passport.
Country that issued the passport.
Example:
"AUS"
Optional key-value pairs echoed back in the response.
Response
Request processed. Check data.isValid and verificationStatus to determine the outcome.
Show child attributes
Show child attributes
Available options:
VERIFIED, REJECTED 3 = Verified, 1 = Rejected.
Example:
"australia_visa"

