Every claim the platform can disclose. The same list is published live at
`true_claims_supported` in the [discovery metadata](/oauth-oidc-reference/endpoints/discovery-metadata),
which is the one to read from code.

Ask for the narrowest claim that answers your question. Where a credential
offers both a summary and the detail behind it, the summary is usually enough,
and the detail usually contains people who are not your customer.

Every `*.credential` claim below returns a whole Verifiable Credential.
[Credential bodies](/claims-and-credentials/credential-bodies) shows what each
one looks like, clean and with findings.

## TrueIdentity

`trueidentity.*`

| Claim | What it is |
|---|---|
| `trueidentity.credential` | TrueIdentity (shows names, document types, and expiry dates only) |
| `trueidentity.reference` | Unique person reference |
| `trueidentity.valid` | Has a currently valid identity (assertion only, no data) |
| `trueidentity.name` | Full name (as per TrueIdentity) |
| `trueidentity.given_name` | Given names (as per TrueIdentity) |
| `trueidentity.family_name` | Family name (as per TrueIdentity) |
| `trueidentity.email` | Email address |
| `trueidentity.email_verified` | Email address verification status |
| `trueidentity.phone` | Phone number |
| `trueidentity.phone_verified` | Phone number verification status |
| `trueidentity.birth_date` | Birth date |
| `trueidentity.biometric` | Selfie / profile photo |
| `trueidentity.names_verified` | All names verified from all documents |

**Validity.** The earliest expiry among the documents it was built from. One year if none of them expire.

## Australian Nationally Coordinated Criminal History Check

`acicncchc.*`

| Claim | What it is |
|---|---|
| `acicncchc.credential` | Complete Verifiable Credential (all data) |
| `acicncchc.result` | Result (DCO or NDCO - [No?] Disclosable Court Outcomes) |
| `acicncchc.date_expires` | Expiry date |
| `acicncchc.source_download` | Source file (e.g. a result certificate) |
| `acicncchc.source_data` | Source data (raw data used to generate the credential) |

**Validity.** Three months from the date of the check.

## Australian Right-to-Work Check

`vevortw.*`

| Claim | What it is |
|---|---|
| `vevortw.credential` | Complete Verifiable Credential (all data) |
| `vevortw.work_entitlements` | Work entitlements |
| `vevortw.document_number` | Passport/document number (Visa RTW only) |
| `vevortw.document_country` | Passport/document country (Visa RTW only) |
| `vevortw.date_expires` | Expiry date (Visa RTW only) |
| `vevortw.birth_date` | Birth date of checked individual |
| `vevortw.source_download` | Source file (e.g. a result certificate) |
| `vevortw.source_data` | Source data (raw data used to generate the credential) |

**Validity.** Ninety days from the check, or the earliest visa expiry where the check was against a visa.

## PEP & Sanctions Check

`sanctionscheck.*`

| Claim | What it is |
|---|---|
| `sanctionscheck.credential` | Complete Verifiable Credential (all data) |
| `sanctionscheck.person_name` | Name on check |
| `sanctionscheck.is_pep` | PEP status |
| `sanctionscheck.is_sanctioned` | Sanctions status |
| `sanctionscheck.result` | Result summary |
| `sanctionscheck.matches` | Match details |
| `sanctionscheck.date_expires` | Expiry date |

**Validity.** One day. This is the shortest of any credential, deliberately.

If you only need to know whether to escalate, ask for `is_pep` and
`is_sanctioned` and nothing else. `matches` hands over every match, including
names and dates of birth of people who are not your customer.

**A clear check.** `matches` is present and empty rather than absent:

```json
{
  "sanctionscheck.person_name": "Jane Alice Smith",
  "sanctionscheck.is_pep": "No",
  "sanctionscheck.is_sanctioned": "No",
  "sanctionscheck.result": "No PEP or sanctions matches found",
  "sanctionscheck.matches": "[]",
  "sanctionscheck.date_expires": "2026-09-22"
}
```

**A check with a match.** Note that `is_pep` is the string `"Yes"` here but a
boolean inside `matches` - the two are not the same type:

```json
{
  "sanctionscheck.person_name": "Jane Alice Smith",
  "sanctionscheck.is_pep": "Yes",
  "sanctionscheck.is_sanctioned": "No",
  "sanctionscheck.result": "1 PEP match found",
  "sanctionscheck.matches": "[{\"matched_name\":\"Jane A Smith\",\"similarity\":92,\"is_pep\":true,\"is_sanctioned\":false,\"country\":\"au\",\"birth_date\":\"1974-03-02\",\"classification\":\"Regional government\",\"positions\":[\"Member of the Legislative Assembly\"],\"pep_sources\":[\"wd_peps\"]}]",
  "sanctionscheck.date_expires": "2026-09-22"
}
```

Decoded, each entry in `matches` carries the fields below. Anything empty is
left out rather than sent as null, so treat every field as optional:

| Field | Present | Meaning |
|---|---|---|
| `matched_name` | always | The name as the database holds it, which is rarely spelled as yours |
| `similarity` | always | Name match score, 0 to 100 |
| `is_pep`, `is_sanctioned` | always | Booleans, unlike the claims above |
| `country`, `birth_date`, `notes` | when known | From the matched record, not from your customer |
| `classification`, `positions`, `pep_sources` | PEP matches | The office held and where the record came from |
| `sanction_sources`, `sanction_programs` | sanctions matches | Each programme carries `program`, `authority`, `summary`, `start_date` and `provisions` |

A match is a name similarity, not a determination about your customer. The
result says what the databases returned; deciding what it means is yours to do.

## Court Records Check By Name

`courtcheck.*`

| Claim | What it is |
|---|---|
| `courtcheck.credential` | Complete Verifiable Credential (all data) |
| `courtcheck.person_name` | Name on check |
| `courtcheck.result` | Result summary |
| `courtcheck.date_expires` | Expiry date |

**Validity.** Fourteen days.

## Student Credential (Currently Enrolled)

`student.*`

| Claim | What it is |
|---|---|
| `student.credential` | Complete Verifiable Credential (all data) |
| `student.identifier` | Unique Student Identifier |
| `student.date_expires` | Expiry date |

**Validity.** The enrolment's own end date, as the institution gives it.

## Phone Number (Recently Verified)

`phonenumber.*`

| Claim | What it is |
|---|---|
| `phonenumber.credential` | Complete Verifiable Credential (all data) |
| `phonenumber.phone_number` | Phone Number - Ownership verified less than 14 days ago |
| `phonenumber.date_expires` | Expiry date - 14 days since last validation |

**Validity.** Fourteen days from the moment the number was verified.

## Document claims

Fields read from a single verified document, rather than from a credential.
They are named `document.{type}.{field}`.

| Document | Claims |
|---|---|
| `document.centrelink` | `crn` |
| `document.driving_license` | `licence_number`, `state`, `date_expires`, `birth_date` |
| `document.passport` | `travel_document_number`, `date_expires`, `document_country` |
| `document.student` | `identifier`, `date_expires` |
| `document.visa` | `passport_number`, `date_expires`, `document_country` |

`document.passport_foreign.*` is published but not listed: a foreign passport on
its own was superseded by the visa check, which covers the passport and the
entitlement together. The claims still resolve for people who verified before
the change, and there is no way to obtain one now.

Document types not listed here are used to establish identity and disclose no
fields of their own: identity cards, birth, marriage, change of name and
citizenship certificates, bank accounts, the electoral roll, Medicare, ImmiCards
and ASIC/MSIC cards.
