Credential bodies
What a whole credential looks like, type by type, with and without findings.
Ask for <type>.credential and you get the entire Verifiable Credential as a JSON object, under true in the userinfo response. This page shows what comes back, for each of the seven.
The shape they all share
Every credential is an Open Badges 3.0 AchievementCredential. Six of the seven share this envelope exactly, and only name, the dates and evidence change. TrueIdentity is the exception - its achievement block is described in its own section below.
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json",
"https://purl.imsglobal.org/spec/ob/v3p0/extensions.json",
"https://app.truevault.com.au/baric/credential/tv-vocab/1.jsonld"
],
"id": "https://app.truevault.com.au/baric/credential/acicncchc/9f2c1d4e-7a63-5b28-9e14-3c8d5f0a7b61/1a7be03d-5c92-5f41-b8d0-6e2f9a4c1d33",
"type": ["VerifiableCredential", "OpenBadgeCredential"],
"name": "Australian Nationally Coordinated Criminal History Check",
"issuer": {
"id": "https://app.truevault.com.au/baric/credential/issuer.json",
"type": ["Profile"],
"name": "TrueVault Credential Issuer",
"description": "TrueVault Credential Issuer",
"url": "https://app.truevault.com.au/",
"email": "issuer@truevault.com.au"
},
"credentialSubject": {
"id": "https://app.truevault.com.au/baric/credential/acicncchc/9f2c1d4e-7a63-5b28-9e14-3c8d5f0a7b61/1a7be03d-5c92-5f41-b8d0-6e2f9a4c1d33",
"type": ["AchievementSubject"],
"achievement": {
"id": "https://app.truevault.com.au/baric/credential/achievement/acicncchc/1a7be03d-5c92-5f41-b8d0-6e2f9a4c1d33",
"type": ["Achievement"],
"achievementType": "Certificate",
"name": "Australian Nationally Coordinated Criminal History Check",
"description": "Australian Nationally Coordinated Criminal History Check",
"criteria": {
"id": "https://app.truevault.com.au/baric/credential/criteria/acicncchc/1a7be03d-5c92-5f41-b8d0-6e2f9a4c1d33",
"narrative": "Australian Nationally Coordinated Criminal History Check"
},
"identifier": {
"type": "acicncchc",
"hashed": false,
"identityType": "reference",
"identityValue": "1a7be03d-5c92-5f41-b8d0-6e2f9a4c1d33"
},
"image": {
"id": "https://app.truevault.com.au/baric/credential/badge/acicncchc/9f2c1d4e-7a63-5b28-9e14-3c8d5f0a7b61/1a7be03d-5c92-5f41-b8d0-6e2f9a4c1d33",
"type": "Image",
"caption": "Australian Nationally Coordinated Criminal History Check"
},
"tags": ["acic", "ncchc", "criminal-history", "australia"],
"inLanguage": "en-AU"
}
},
"credentialSchema": [
{
"id": "https://purl.imsglobal.org/spec/ob/v3p0/schema/json-ld/ob_v3p0_achievementcredential_schema.json",
"type": "JsonSchema2020"
}
],
"credentialStatus": {
"id": "https://app.truevault.com.au/baric/credential/status-lists/list/1#2502",
"type": "BitstringStatusListEntry",
"statusPurpose": "revocation",
"statusListIndex": "2502",
"statusListCredential": "https://app.truevault.com.au/baric/credential/status-lists/list/1"
},
"issuanceDate": "2026-09-09T01:14:22Z",
"validFrom": "2026-09-08T14:00:00Z",
"validUntil": "2026-12-07T14:00:00Z",
"evidence": []
}
| Field | What to do with it |
|---|---|
id | The credential's address. Contains the credential type, the person reference and the credential reference |
name | The credential type in words. The stable machine value is credentialSubject.achievement.identifier.type |
issuer | Always TrueVault. Reading the check is not the same as issuing the credential |
credentialStatus | Where to check revocation. See What "expired" means |
validFrom | When the underlying statement became true - usually the date the check ran, not the date we wrote it down |
validUntil | When it stops being evidence of anything. Varies enormously by type |
evidence | What the check actually found. This is the part that differs, and the rest of this page |
Dates are UTC, formatted YYYY-MM-DDThh:mm:ssZ. A date-only source value (a court date, an ACIC result date) becomes midnight local time converted to UTC, which is why you will see 14:00:00Z on Australian dates.
Everything below is the evidence array from that envelope.
Australian Nationally Coordinated Criminal History Check
acicncchc
The first entry is always the result. result is NDCO (no disclosable court outcomes) or DCO (disclosable court outcomes), and that single value is what most integrations should read - as the acicncchc.result claim, not the whole credential.
Nothing to disclose
[
{
"id": "https://app.truevault.com.au/baric/credential/evidence/acicncchc/1a7be03d-5c92-5f41-b8d0-6e2f9a4c1d33/result",
"name": "NCCHC Result",
"description": "Processed by TrueVault. Reference: NC-482913",
"type": ["Evidence"],
"dateCreated": "2026-09-01T14:00:00Z",
"dateIssued": "2026-09-08T14:00:00Z",
"issuer": "https://app.truevault.com.au/baric/credential/issuer.json",
"tv:dataObject": {
"result": "NDCO"
}
}
]
Disclosable court outcomes
Each outcome is its own evidence entry, after the result. There is no count to read: the number of Disclosable Court Outcome entries is the number of outcomes.
[
{
"id": "https://app.truevault.com.au/baric/credential/evidence/acicncchc/1a7be03d-5c92-5f41-b8d0-6e2f9a4c1d33/result",
"name": "NCCHC Result",
"description": "Processed by TrueVault. Reference: NC-482913",
"type": ["Evidence"],
"dateCreated": "2026-09-01T14:00:00Z",
"dateIssued": "2026-09-08T14:00:00Z",
"issuer": "https://app.truevault.com.au/baric/credential/issuer.json",
"tv:dataObject": {
"result": "DCO"
}
},
{
"id": "https://app.truevault.com.au/baric/credential/evidence/acic/1a7be03d-5c92-5f41-b8d0-6e2f9a4c1d33/VIC-2019-06-15",
"name": "Disclosable Court Outcome",
"description": "Exceed speed limit by 25 km/h or more",
"type": ["Evidence"],
"dateCreated": "2019-06-14T14:00:00Z",
"dateIssued": "2019-06-14T14:00:00Z",
"issuer": "https://app.truevault.com.au/baric/credential/issuer.json",
"tv:dataObject": {
"court": "Melbourne Magistrates Court",
"source": "VIC",
"date": "2019-06-15",
"offence": "Exceed speed limit by 25 km/h or more",
"result": "Convicted, fined $500, licence suspended 1 month"
}
},
{
"id": "https://app.truevault.com.au/baric/credential/evidence/acic/1a7be03d-5c92-5f41-b8d0-6e2f9a4c1d33/NSW-2016-11-02",
"name": "Disclosable Court Outcome",
"description": "Damage property",
"type": ["Evidence"],
"dateCreated": "2016-11-01T13:00:00Z",
"dateIssued": "2016-11-01T13:00:00Z",
"issuer": "https://app.truevault.com.au/baric/credential/issuer.json",
"tv:dataObject": {
"court": "Sydney Local Court",
"source": "NSW",
"date": "2016-11-02",
"offence": "Damage property",
"result": "Without conviction, fined $60"
}
}
]
An outcome's date is the court date, which may be years before the check. The dateCreated and dateIssued on the entry are that same court date, not the date of the check - the check date is on the result entry above.
Court Records Check By Name
courtcheck
Two entries always: the name searched, and the result summary. Records follow.
No records found
[
{
"id": "https://app.truevault.com.au/baric/credential/evidence/courtcheck/4e81c2fa-9d37-5a06-b1e8-72f4c0a91b58/name",
"name": "Court Check Person Name",
"description": "The name for which Australian court records have been searched (as the only identifying metric).",
"type": ["Evidence"],
"dateCreated": "2026-09-08T04:20:11Z",
"dateIssued": "2026-09-08T04:22:47Z",
"issuer": "https://app.truevault.com.au/baric/credential/issuer.json",
"tv:dataObject": {
"name": "Jane Alice Smith"
}
},
{
"id": "https://app.truevault.com.au/baric/credential/evidence/courtcheck/4e81c2fa-9d37-5a06-b1e8-72f4c0a91b58/result",
"name": "Court Check Result Summary",
"description": "The records below are included based on the name 'Jane Alice Smith' appearing in public court records in the states and territories of Australia, and must not be taken to directly represent the Jane Alice Smith from this credential. Organisations must make their own enquiries as to the accuracy and appropriate use of this information.",
"type": ["Evidence"],
"dateCreated": "2026-09-08T04:20:11Z",
"dateIssued": "2026-09-08T04:22:47Z",
"issuer": "https://app.truevault.com.au/baric/credential/issuer.json",
"tv:dataObject": {
"result": "No court records found"
}
}
]
Records found
The summary becomes "2 court records found", and each record follows as its own entry. Record fields come from the search provider and any that are empty are dropped, so treat all of them as optional.
[
{
"id": "https://app.truevault.com.au/baric/credential/evidence/courtcheck/4e81c2fa-9d37-5a06-b1e8-72f4c0a91b58/result",
"name": "Court Check Result Summary",
"description": "The records below are included based on the name 'Jane Alice Smith' appearing in public court records in the states and territories of Australia, and must not be taken to directly represent the Jane Alice Smith from this credential. Organisations must make their own enquiries as to the accuracy and appropriate use of this information.",
"type": ["Evidence"],
"dateCreated": "2026-09-08T04:20:11Z",
"dateIssued": "2026-09-08T04:22:47Z",
"issuer": "https://app.truevault.com.au/baric/credential/issuer.json",
"tv:dataObject": {
"result": "2 court records found"
}
},
{
"id": "https://app.truevault.com.au/baric/credential/evidence/courtcheck/4e81c2fa-9d37-5a06-b1e8-72f4c0a91b58/2023-01234",
"name": "Court Record",
"description": "Smith v Alderton Property Group Pty Ltd",
"type": ["Evidence"],
"dateCreated": "2026-09-08T04:20:11Z",
"dateIssued": "2026-09-08T04:22:47Z",
"issuer": "https://app.truevault.com.au/baric/credential/issuer.json",
"tv:dataObject": {
"case_no": "2023-01234",
"date": "2023-04-19",
"court": "District Court of South Australia",
"type": "civil",
"case_title": "Smith v Alderton Property Group Pty Ltd",
"listing_type": "Directions hearing"
}
},
{
"id": "https://app.truevault.com.au/baric/credential/evidence/courtcheck/4e81c2fa-9d37-5a06-b1e8-72f4c0a91b58/2021-00877",
"name": "Court Record",
"description": "Court record",
"type": ["Evidence"],
"dateCreated": "2026-09-08T04:20:11Z",
"dateIssued": "2026-09-08T04:22:47Z",
"issuer": "https://app.truevault.com.au/baric/credential/issuer.json",
"tv:dataObject": {
"name": "Court Record (disputed, hidden)",
"court": "Magistrates Court of Tasmania",
"date": "2021-08-03",
"type": "criminal"
}
}
]
The second record there was disputed. Before the credential is issued, the person is shown every record the search returned and can mark any of them as somebody else. A disputed record is not deleted - the count still includes it - but it is redacted to court, date and type, and the entry says so in its own name field. If you are counting records, count entries; if you are reading them, check for "Court Record (disputed, hidden)" first.
PEP & Sanctions Check
sanctionscheck
Two entries always, then one per match. Remember this credential is valid for one day.
No matches
[
{
"id": "https://app.truevault.com.au/baric/credential/evidence/sanctionscheck/b30d9e77-1f45-5c8a-a2b6-04e7d1c85f92/name",
"name": "PEP & Sanctions Check Person Name",
"description": "The name and date of birth for which PEP and sanctions databases have been searched.",
"type": ["Evidence"],
"dateCreated": "2026-09-08T23:41:05Z",
"dateIssued": "2026-09-08T23:41:38Z",
"issuer": "https://app.truevault.com.au/baric/credential/issuer.json",
"tv:dataObject": {
"name": "Jane Alice Smith"
}
},
{
"id": "https://app.truevault.com.au/baric/credential/evidence/sanctionscheck/b30d9e77-1f45-5c8a-a2b6-04e7d1c85f92/result",
"name": "PEP & Sanctions Check Result Summary",
"description": "PEP and international sanctions screening results for 'Jane Alice Smith'. Matches are based on name similarity and date of birth against international PEP and sanctions databases. Organisations must make their own enquiries as to the accuracy and appropriate use of this information.",
"type": ["Evidence"],
"dateCreated": "2026-09-08T23:41:05Z",
"dateIssued": "2026-09-08T23:41:38Z",
"issuer": "https://app.truevault.com.au/baric/credential/issuer.json",
"tv:dataObject": {
"result": "No PEP or sanctions matches found",
"is_pep": "N",
"is_sanctioned": "N",
"total_matches": 0
}
}
]
A PEP match
The summary entry changes, and each match arrives as its own entry named for what it is and who it matched.
[
{
"id": "https://app.truevault.com.au/baric/credential/evidence/sanctionscheck/b30d9e77-1f45-5c8a-a2b6-04e7d1c85f92/result",
"name": "PEP & Sanctions Check Result Summary",
"description": "PEP and international sanctions screening results for 'Jane Alice Smith'. Matches are based on name similarity and date of birth against international PEP and sanctions databases. Organisations must make their own enquiries as to the accuracy and appropriate use of this information.",
"type": ["Evidence"],
"dateCreated": "2026-09-08T23:41:05Z",
"dateIssued": "2026-09-08T23:41:38Z",
"issuer": "https://app.truevault.com.au/baric/credential/issuer.json",
"tv:dataObject": {
"result": "1 PEP match found",
"is_pep": "Y",
"is_sanctioned": "N",
"total_matches": 1
}
},
{
"id": "https://app.truevault.com.au/baric/credential/evidence/sanctionscheck/b30d9e77-1f45-5c8a-a2b6-04e7d1c85f92/NK-2f81c0d3",
"name": "PEP: Jane A Smith",
"description": "PEP record matched with 92% similarity.",
"type": ["Evidence"],
"dateCreated": "2026-09-08T23:41:05Z",
"dateIssued": "2026-09-08T23:41:38Z",
"issuer": "https://app.truevault.com.au/baric/credential/issuer.json",
"tv:dataObject": {
"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"]
}
}
]
A sanctions match
A sanctioned match carries sanction_sources and sanction_programs instead of the PEP fields. A match that is both carries both sets, and the entry is named Sanctioned & PEP: <name>.
[
{
"id": "https://app.truevault.com.au/baric/credential/evidence/sanctionscheck/b30d9e77-1f45-5c8a-a2b6-04e7d1c85f92/result",
"name": "PEP & Sanctions Check Result Summary",
"description": "PEP and international sanctions screening results for 'Jane Alice Smith'. Matches are based on name similarity and date of birth against international PEP and sanctions databases. Organisations must make their own enquiries as to the accuracy and appropriate use of this information.",
"type": ["Evidence"],
"dateCreated": "2026-09-08T23:41:05Z",
"dateIssued": "2026-09-08T23:41:38Z",
"issuer": "https://app.truevault.com.au/baric/credential/issuer.json",
"tv:dataObject": {
"result": "1 sanctioned match found",
"is_pep": "N",
"is_sanctioned": "Y",
"total_matches": 1
}
},
{
"id": "https://app.truevault.com.au/baric/credential/evidence/sanctionscheck/b30d9e77-1f45-5c8a-a2b6-04e7d1c85f92/NK-6b40a7e1",
"name": "Sanctioned: Jayne Smyth",
"description": "Sanctioned record matched with 78% similarity.",
"type": ["Evidence"],
"dateCreated": "2026-09-08T23:41:05Z",
"dateIssued": "2026-09-08T23:41:38Z",
"issuer": "https://app.truevault.com.au/baric/credential/issuer.json",
"tv:dataObject": {
"matched_name": "Jayne Smyth",
"similarity": 78,
"is_pep": false,
"is_sanctioned": true,
"country": "ru",
"birth_date": "1969-10-22",
"sanction_sources": ["au_dfat_sanctions"],
"sanction_programs": [
{
"program": "Autonomous Sanctions (Russia, Crimea and Sevastopol)",
"authority": "Australian Department of Foreign Affairs and Trade",
"summary": "Designated person - targeted financial sanctions and travel ban",
"start_date": "2022-04-07",
"provisions": "Autonomous Sanctions Regulations 2011"
}
]
}
}
]
Three ways of saying the same thing
is_pep and is_sanctioned appear in three places, in three types. This catches people out, so:
| Where | Type | Clean | Flagged |
|---|---|---|---|
The sanctionscheck.is_pep claim | string | "No" | "Yes" |
tv:dataObject on the result entry | string | "N" | "Y" |
Inside a match entry, and inside sanctionscheck.matches | boolean | false | true |
The claim is the one to read. It is a single value, it costs you nothing else, and it is the only one of the three that does not come wrapped in somebody's personal details.
TrueIdentity
trueidentity
TrueIdentity carries the badge rather than a certificate, so its achievement differs from the envelope above:
{
"id": "https://app.truevault.com.au/baric/credential/achievement/9f2c1d4e-7a63-5b28-9e14-3c8d5f0a7b61/db46a71c-ead0-5d83-8be7-97c17bd6ec1e",
"type": ["Achievement"],
"achievementType": "Badge",
"name": "TrueVault TrueIdentity",
"description": "TrueVault Biometrically Anchored TrueIdentity Credential",
"criteria": {
"narrative": "Completed the Biometrically Verified Identity Process."
},
"identifier": {
"type": "IdentityObject",
"hashed": 1,
"identityType": "uuid",
"identityHash": "3d9f0c1a7b52e846d0f31c9a4e6b8720"
},
"image": {
"id": "https://app.truevault.com.au/baric/credential/badge/9f2c1d4e-7a63-5b28-9e14-3c8d5f0a7b61/db46a71c-ead0-5d83-8be7-97c17bd6ec1e",
"type": "Image",
"caption": "TrueVault TrueIdentity Icon"
},
"inLanguage": "en-GB"
}
There is no identifier.identityValue on this one, and tags is empty. To recognise the credential type, read name on the credential itself rather than anything under achievement.
The evidence is one entry per verified document. tv:evidenceTypes says what the document was and how it was checked; tv:dataObject carries references rather than the document itself. The document number is masked, in description.
[
{
"id": "https://app.truevault.com.au/baric/credential/evidence/db46a71c-ead0-5d83-8be7-97c17bd6ec1e/2550426f-96ef-52b5-b4b0-c949f1c1dcff",
"name": "Australian Passport",
"description": "Document number: RA*****88",
"type": ["Evidence"],
"dateCreated": "2026-07-22T23:47:17Z",
"dateIssued": "2026-07-22T23:47:17Z",
"issuer": "https://app.truevault.com.au/baric/credential/issuer.json",
"tv:evidenceTypes": {
"docType": "PASSPORT",
"inputType": "Biometric & OCR",
"authoritativeSource": "Australian DVS"
},
"tv:dataObject": {
"truevaultReference": "2550426f-96ef-52b5-b4b0-c949f1c1dcff",
"serviceReference": "8f00c8f7-26b4-5ed8-927f-3359cff9b77c",
"verifierReference": "e255c913-1261-479d-9467-7a002f5a0225",
"namesVerified": "Requires 'All names verified from documents' disclosure",
"dateExpires": "2031-03-14T13:00:00Z"
}
},
{
"id": "https://app.truevault.com.au/baric/credential/evidence/db46a71c-ead0-5d83-8be7-97c17bd6ec1e/6f9a0909-0a56-56cd-8e44-3ee12f202bb8",
"name": "Australian Driving Licence",
"description": "Licence number: DR***9",
"type": ["Evidence"],
"dateCreated": "2026-07-22T23:51:32Z",
"dateIssued": "2026-07-22T23:50:44Z",
"issuer": "https://app.truevault.com.au/baric/credential/issuer.json",
"tv:evidenceTypes": {
"docType": "DRIVING_LICENSE",
"inputType": "Manually Submitted",
"authoritativeSource": "Australian DVS"
},
"tv:dataObject": {
"truevaultReference": "6f9a0909-0a56-56cd-8e44-3ee12f202bb8",
"serviceReference": "9219d2fb-97b4-57f7-941e-5a4ce103c771",
"verifierReference": "e4015a53-0aa9-4c39-b554-1687dd89c2c2",
"namesVerified": "Requires 'All names verified from documents' disclosure",
"dateExpires": "2028-11-30T13:00:00Z"
}
}
]
namesVerified holds the names read off that document, but only for a client that asked for trueidentity.names_verified. Without that disclosure you get the sentence above in its place - the field is always present, so check its shape before reading it.
dateExpires is dropped from documents that do not expire. The credential's own validUntil is the earliest of the ones that do.
Australian Right-to-Work Check
vevortw
Two shapes, depending on how the entitlement was established. Both produce the same vevortw.work_entitlements claim, which is what most integrations want.
Checked against a visa
One entry, straight from VEVO.
[
{
"id": "https://app.truevault.com.au/baric/credential/evidence/vevortw/7c15b8ea-3d04-5297-8f6b-91a0e5d72c4f/result",
"name": "Australian Right-to-Work Check - VEVO Visa Check",
"description": "Processed by TrueVault. Reference: VV-771204",
"type": ["Evidence"],
"dateCreated": "2026-09-08T02:15:33Z",
"dateIssued": "2026-09-08T02:15:33Z",
"issuer": "https://app.truevault.com.au/baric/credential/issuer.json",
"tv:dataObject": {
"workEntitlements": "Work limited to 48 hours per fortnight while course is in session",
"familyName": "Okafor",
"givenNames": "Chidi Daniel",
"birthDate": "1998-02-17",
"category": "STUDENT",
"documentNumber": "P*****67",
"location": "Onshore",
"workConditionCode": "8105",
"workConditionDescription": "Work limitation - student visa",
"reference": "VV-771204",
"visaClass": "500",
"visaGrantDate": "2025-01-30",
"visaExpiryDate": "2027-02-28",
"visaStream": "Higher Education Sector",
"visaType": "Student",
"applicantRole": "Primary"
}
}
]
The credential can never outlive the visa: validUntil is the earlier of ninety days and visaExpiryDate.
documentNumber is masked here. The unmasked number is the vevortw.document_number claim, which you have to ask for by name.
Citizen or permanent resident
No visa to check, so the entitlement comes from the identity documents already verified. The summary entry is followed by the document evidence, in the same shape as TrueIdentity above.
[
{
"id": "https://app.truevault.com.au/baric/credential/evidence/vevortw/7c15b8ea-3d04-5297-8f6b-91a0e5d72c4f/result",
"name": "Australian Right-to-Work Check - Citizen or Resident",
"description": "Processed by TrueVault. Reference: VV-771205",
"type": ["Evidence"],
"dateCreated": "2026-09-08T02:19:44Z",
"dateIssued": "2026-09-08T02:19:44Z",
"issuer": "https://app.truevault.com.au/baric/credential/issuer.json",
"tv:dataObject": {
"workEntitlements": "UNLIMITED",
"verifiedDocuments": ["PASSPORT", "CITIZENSHIP_CERTIFICATE"],
"reference": "VV-771205"
}
}
]
workEntitlements is the literal string UNLIMITED here. On a visa check it is whatever VEVO returned, in VEVO's words. Match on the visa shape's workConditionCode if you need something machine-readable.
Student Credential (Currently Enrolled)
student
One entry, the enrolment document itself, in the shared document shape.
[
{
"id": "https://app.truevault.com.au/baric/credential/evidence/c8f31a90-6e27-5db4-9c05-38b1f7e42a6d/5d0c9b18-4a72-5e30-bf96-2c81d4a07e55",
"name": "Current student enrolment",
"description": "Student identifier: A5******P3",
"type": ["Evidence"],
"dateCreated": "2026-03-02T04:11:09Z",
"dateIssued": "2026-03-02T04:11:09Z",
"issuer": "https://app.truevault.com.au/baric/credential/issuer.json",
"tv:evidenceTypes": {
"docType": "STUDENT",
"inputType": "Manually Submitted",
"authoritativeSource": "AAF Student Verification"
},
"tv:dataObject": {
"truevaultReference": "5d0c9b18-4a72-5e30-bf96-2c81d4a07e55",
"serviceReference": "a41e7c62-9b08-5f14-83d7-6e2a0c95b731",
"verifierReference": "3f8b21d5-70c4-4e19-9a86-15dc7f043b28",
"dateExpires": "2026-12-13T13:00:00Z"
}
}
]
validUntil is the enrolment's own end date. There is no rounding and no minimum - an enrolment ending next week gives you a credential that expires next week.
Phone Number (Recently Verified)
phonenumber
One entry. The number in the evidence is masked; the full number is the phonenumber.phone_number claim, and only if you asked for it.
[
{
"id": "https://app.truevault.com.au/baric/credential/evidence/e2a6d504-8c31-5b79-a04f-91d3c7e685b2/f70b1c93-2d48-5a61-8e05-4b9c2f10d873",
"name": "Verified Phone Number",
"description": "Phone number ownership verified with SMS OTP",
"type": ["Evidence"],
"dateCreated": "2026-09-08T22:04:51Z",
"dateIssued": "2026-09-08T22:05:02Z",
"dateExpires": "2026-09-22T22:05:02Z",
"issuer": "https://app.truevault.com.au/baric/credential/issuer.json",
"tv:dataObject": {
"truevault_reference": "f70b1c93-2d48-5a61-8e05-4b9c2f10d873",
"verification_type": "SMS OTP Code",
"number": "+61 4** *** *89"
}
}
]
This is the only credential that puts dateExpires on the evidence entry as well as validUntil on the envelope. They are the same moment.
What none of this contains
No identity document images. No raw check payloads. No PDF certificates.
A credential is the finding and the trail that supports it, and that is deliberate - the documents behind a TrueIdentity are gone. Where a source file does still exist, because a third party issued it and we hold it for you, it is a separate claim you have to ask for by name: source_download for the file and source_data for the payload the credential was built from. Both are available on acicncchc and vevortw only.