> ## Documentation Index
> Fetch the complete documentation index at: https://docs.frankieone.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Performing a VEVO Visa Check

> A step-by-step guide to verifying an individual's Australian visa status and conditions using the VEVO check.

## What is a VEVO Visa Check?

A Visa Entitlement Verification Online (VEVO) check allows you to confirm the visa status and conditions of a non-Australian citizen, directly against the Department of Home Affairs records. It is a critical tool for ensuring a potential employee has the right to work or that a customer meets residency requirements.

FrankieOne integrates this check as a `VISA` step within our workflow engine, allowing you to automate this process as part of your standard onboarding or due diligence.

<Note>
  The first supported country for Visa Checks is Australia, where the data source is VEVO. This guide focuses on this implementation.
</Note>

### VEVO vs. DVS Passport Check

It's important to understand the distinction between a VEVO check and a DVS Passport check, as they serve different purposes.

* **Use the Document Verification Service (DVS)** to verify the **identity details** on a visa record. It confirms that the document number, name, and date of birth match the record held by the Department of Home Affairs.
* **Use the Visa Entitlement Verification Online (VEVO)** check to verify the **current visa status and conditions** (e.g., work rights, study limitations) linked to a foreign passport.

For identity verification, the DVS check is often sufficient. However, if you need to confirm the specific entitlements and conditions of the visa itself, a VEVO check is required.

***

## How It Works

The process is managed through two main API interactions integrated into a workflow.

<Steps>
  <Step title="1. Provide the Foreign Passport Data">
    First, you create or update an `individual` entity with the details of the **foreign passport** that the Australian visa is linked to.
  </Step>

  <Step title="2. Execute a Workflow">
    Next, you trigger a pre-configured workflow that contains a `VISA` step. FrankieOne securely connects to VEVO, performs the check, and returns the detailed results.
  </Step>
</Steps>

***

## Implementation Guide

### Step 1: Provide the Foreign Passport Data

The VEVO check is performed using the details of a foreign passport. You must include these details in the `documents` array when you create or update an `individual`.

* `type`: Must be `PASSPORT`.
* `primaryIdentifier`: The passport number.
* `country`: The passport's country of issue (e.g., `GBR` for Great Britain).

```json title="Example individual object with a foreign passport" theme={null}
{
    "individual": {
        "name": { "givenName": "John", "familyName": "Smith" },
        "dateOfBirth": { "year": "1990", "month": "05", "day": "15" },
        "documents": [
            {
                "class": "IDENTITY",
                "type": "PASSPORT",
                "primaryIdentifier": "E07148293",
                "country": "GBR" 
            }
        ],
        "consents": [ { "type": "DOCS" } ]
    }
}
```

### Step 2: Execute the Workflow

With the entity created, execute the workflow containing the `VISA` step.

```bash theme={null}
    POST /v2/individuals/{entityId}/serviceprofiles/{serviceName}/workflows/{workflowName}/execute
```

***

## Interpreting the Visa Check Result

The outcome of the check is found within the `workflowStepResults` array, inside the object where `stepName` is `VISA`.

### The VISA Step Summary

The `summary` object gives you a high-level overview and is useful for quick decisioning based on your configured allow/deny lists.

```json title="Example VISA Step Summary" theme={null}
"summary": {
    "stepName": "VISA",
    "country": "AUS",
    "class": "Student",
    "subClass": "500",
    "hasExpired": false,
    "onAllowList": true,
    "onDenyList": false
}
```

* **`onAllowList` / `onDenyList`**: These booleans tell you if the visa's class/subclass matched the lists you configured in the workflow step. This is often all you need for automated decisioning.

### The Process Result (`supplementaryData`)

For the most detailed information, you must inspect the `supplementaryData` object within the step's `processResults`. This contains the full entitlement details returned from VEVO.

| Field                             | Description                                                                                                         |
| :-------------------------------- | :------------------------------------------------------------------------------------------------------------------ |
| `class` & `subClass`              | The official class and subclass of the visa (e.g., "Student", "500").                                               |
| `entitlementStatus`               | The current status of the visa (e.g., "In effect").                                                                 |
| `grantDate` & `expiryDate`        | The dates the visa was granted and when it expires.                                                                 |
| `entitlementConditionDescription` | **Crucial Field:** A human-readable description of the visa's conditions, such as work rights or study limitations. |
| `holderType`                      | Indicates if the individual is the `PRIMARY` or `SECONDARY` holder of the visa.                                     |

***

## Workflow Configuration

The `VISA` step in your workflow can be customized with allow or deny lists based on visa classes and subclasses. This allows you to tailor the check to your specific business needs (e.g., only accepting work visas).

```json title="Example Workflow Step Configuration" theme={null}
"visaCheck": {
    "allowedVisaType": {
        "AU": {
            "classes": [
                { "class": "*", "subclass": "482" },
                { "class": "*", "subclass": "189" }
            ]
        }
    }
}
```

<Callout icon="star" color="#3DD892" iconType="regular">
  This configuration is managed within the FrankieOne Workflow Builder. Consult with your FrankieOne account manager for assistance.
</Callout>

## Supported Visa Categories

Below is a summary of the key visa groups we support:

| Visa Category               | Examples of Subclasses                 | Status                         |
| :-------------------------- | :------------------------------------- | :----------------------------- |
| Partner & Family Visas      | 100, 101, 102, 103, 143, 804, 835–838  | ✔ Actively supported           |
| Skilled & Work Visas        | 186, 187, 189, 190, 191, 482, 491, 494 | ✔ Actively supported           |
| Business & Investor Visas   | 132, 188, 888                          | ✔ Actively supported           |
| Humanitarian Visas          | 200–204, 866                           | ✔ Actively supported           |
| Resident Return & Bridging  | 155, 157, 444 (NZ citizens)            | ✔ Actively supported           |
| Other historical subclasses | 175, 176, 885, 886, 808, 814, etc.     | ⚠ Legacy only – not issued now |

<Callout icon="star" color="#3DD892" iconType="regular">
  \*\*Note: \*\*While many visas listed are still actively issued by the Australian Government, some subclasses have been repealed or closed to new applicants. We include these for legacy verification where the visa is still held by an individual.
</Callout>

***

## Unsupported Visa Types

The following visa types are not currently on our allow list and will result in a failed verification:

| Visa Type                                 | Subclass(es) | Reason        |
| :---------------------------------------- | :----------- | :------------ |
| Visitor visas                             | 600          | Not supported |
| Electronic Travel Authority (ETA)         | 601          | Not supported |
| eVisitor visas                            | 651          | Not supported |
| Student visas                             | 500          | Not supported |
| Working Holiday or Work and Holiday visas | 417, 462     | Not supported |
| Temporary Graduate visas                  | 485          | Not supported |

<Danger>
  If an individual holds one of these visa types, they will not pass verification as their visa subclass is not included in FrankieOne’s allowed configuration.
</Danger>
