curl --request GET \
--url 'https://api.hopae.com/connect/v2/verifications/{verificationId}/userinfo?provenance=true&missing_claims=true' \
--user '{appId}:{appSecret}'
{
"user": {
"given_name": "OK",
"family_name": "TESTNUMBER",
"name": "OK TESTNUMBER",
"birthdate": "1905-04-04",
"nationality": "LT",
"source_id": "PNOLT-40504040001"
},
"missing_claims": [
"email"
],
"acr": "urn:hopae:loa:4",
"hopae_loa": 4,
"hopae_loa_label": "high",
"verification_model": "disclosure",
"provenance": {
"presentation": {
"credentials": [
{
"claims": {
"documentNumber": "PNOLT-40504040001-MOCK-Q",
"birthdate": "1905-04-04",
"countryCode": "LT",
"givenName": "OK",
"surname": "TESTNUMBER"
},
"evidence": {
"token": {
"id_token": "<BASE64_ID_TOKEN>",
"expires_at": "2026-09-03T10:19:52.000Z",
"access_token": "<OPAQUE_ACCESS_TOKEN>",
"token_type": "Bearer"
},
"names": "id_token;expires_at;access_token;token_type"
}
}
]
},
"_metadata": {
"verification_id": "019bc4f2-8a31-7c5e-9d02-4f7a1b3e60d8",
"verified_at": "2026-09-03T09:19:52.110Z",
"status": "completed",
"provider_id": "smart-id",
"connection_id": "smart-id",
"credential_id": "smart-id",
"connection_instance_id": "conn_01J8XK2P4M9QR3TV"
}
},
"sub": "019bc4f2-8a31-7c5e-9d02-4f7a1b3e60d8"
}
{
"user": {
"name": "Manuela Elisa da Mota",
"cpf": "12345678900"
},
"missing_claims": [],
"hopae_loa": 4,
"hopae_loa_label": "high",
"verification_model": "match",
"match": {
"matched": false,
"granularity": "per_field",
"submitted_fields": [
"name",
"birthdate",
"cpf"
],
"details": {
"name": {
"matched": true,
"submitted_value": "Manuela Elisa da Mota",
"similarity": 100
},
"birthdate": {
"matched": false,
"submitted_value": "1975-06-05"
},
"cpf": {
"matched": true,
"submitted_value": "12345678900"
}
}
},
"provenance": {
"presentation": {
"credentials": [
{
"claims": {
"rfb_existe": true,
"cnh_existe": true,
"qrcode": {
"nome": true,
"data_nascimento": false
}
},
"evidence": {
"token": {
"integrator_jws": "eyJhbGciOiJSUzI1NiIsInR5cCI6...",
"token_type": "integrator"
},
"names": "integrator_jws;token_type"
}
}
]
},
"_metadata": {
"verification_id": "019bc4f7-2b44-7f1a-9c3d-8e5b0a6f2c77",
"verified_at": "2026-09-03T10:02:19.551Z",
"status": "completed",
"provider_id": "br-cpf",
"connection_id": "br-cpf-cnh-match",
"credential_id": "br-cnh-match",
"connection_instance_id": "conn_01J8XK7T1B5NM0WD"
}
},
"sub": "019bc4f7-2b44-7f1a-9c3d-8e5b0a6f2c77"
}
{
"user": {
"given_name": "OK",
"family_name": "TESTNUMBER",
"name": "OK TESTNUMBER",
"birthdate": "1905-04-04",
"nationality": "LT",
"source_id": "PNOLT-40504040001"
},
"acr": "urn:hopae:loa:4",
"hopae_loa": 4,
"hopae_loa_label": "high",
"verification_model": "disclosure",
"sub": "019bc4f2-8a31-7c5e-9d02-4f7a1b3e60d8"
}
Get Verification UserInfo
Return the verified claims for a completed verification, and on request the provenance and missing claims.
curl --request GET \
--url 'https://api.hopae.com/connect/v2/verifications/{verificationId}/userinfo?provenance=true&missing_claims=true' \
--user '{appId}:{appSecret}'
{
"user": {
"given_name": "OK",
"family_name": "TESTNUMBER",
"name": "OK TESTNUMBER",
"birthdate": "1905-04-04",
"nationality": "LT",
"source_id": "PNOLT-40504040001"
},
"missing_claims": [
"email"
],
"acr": "urn:hopae:loa:4",
"hopae_loa": 4,
"hopae_loa_label": "high",
"verification_model": "disclosure",
"provenance": {
"presentation": {
"credentials": [
{
"claims": {
"documentNumber": "PNOLT-40504040001-MOCK-Q",
"birthdate": "1905-04-04",
"countryCode": "LT",
"givenName": "OK",
"surname": "TESTNUMBER"
},
"evidence": {
"token": {
"id_token": "<BASE64_ID_TOKEN>",
"expires_at": "2026-09-03T10:19:52.000Z",
"access_token": "<OPAQUE_ACCESS_TOKEN>",
"token_type": "Bearer"
},
"names": "id_token;expires_at;access_token;token_type"
}
}
]
},
"_metadata": {
"verification_id": "019bc4f2-8a31-7c5e-9d02-4f7a1b3e60d8",
"verified_at": "2026-09-03T09:19:52.110Z",
"status": "completed",
"provider_id": "smart-id",
"connection_id": "smart-id",
"credential_id": "smart-id",
"connection_instance_id": "conn_01J8XK2P4M9QR3TV"
}
},
"sub": "019bc4f2-8a31-7c5e-9d02-4f7a1b3e60d8"
}
{
"user": {
"name": "Manuela Elisa da Mota",
"cpf": "12345678900"
},
"missing_claims": [],
"hopae_loa": 4,
"hopae_loa_label": "high",
"verification_model": "match",
"match": {
"matched": false,
"granularity": "per_field",
"submitted_fields": [
"name",
"birthdate",
"cpf"
],
"details": {
"name": {
"matched": true,
"submitted_value": "Manuela Elisa da Mota",
"similarity": 100
},
"birthdate": {
"matched": false,
"submitted_value": "1975-06-05"
},
"cpf": {
"matched": true,
"submitted_value": "12345678900"
}
}
},
"provenance": {
"presentation": {
"credentials": [
{
"claims": {
"rfb_existe": true,
"cnh_existe": true,
"qrcode": {
"nome": true,
"data_nascimento": false
}
},
"evidence": {
"token": {
"integrator_jws": "eyJhbGciOiJSUzI1NiIsInR5cCI6...",
"token_type": "integrator"
},
"names": "integrator_jws;token_type"
}
}
]
},
"_metadata": {
"verification_id": "019bc4f7-2b44-7f1a-9c3d-8e5b0a6f2c77",
"verified_at": "2026-09-03T10:02:19.551Z",
"status": "completed",
"provider_id": "br-cpf",
"connection_id": "br-cpf-cnh-match",
"credential_id": "br-cnh-match",
"connection_instance_id": "conn_01J8XK7T1B5NM0WD"
}
},
"sub": "019bc4f7-2b44-7f1a-9c3d-8e5b0a6f2c77"
}
{
"user": {
"given_name": "OK",
"family_name": "TESTNUMBER",
"name": "OK TESTNUMBER",
"birthdate": "1905-04-04",
"nationality": "LT",
"source_id": "PNOLT-40504040001"
},
"acr": "urn:hopae:loa:4",
"hopae_loa": 4,
"hopae_loa_label": "high",
"verification_model": "disclosure",
"sub": "019bc4f2-8a31-7c5e-9d02-4f7a1b3e60d8"
}
match connections, the match outcome. The audit trail (provenance) and missing_claims are returned only when you request them with the query parameters below. Available when the session is completed, or when it failed with error.code: "loa_insufficient" (the lax assurance result).
Headers
Basic <base64(appId:appSecret)>. See Authentication.Path Parameters
Query Parameters
true (or 1) adds the provenance block, including the connection identity under provenance._metadata. Omitted or any other value leaves it out.true (or 1) adds the missing_claims list. Omitted or any other value leaves it out.Response
Connection identity appears only underprovenance._metadata, never as top-level userinfo fields, so request provenance=true to read it. The IDs are snapshotted when the session is created.
verificationId. A verification is a one-time event, not an account. Use user.source_id to recognise a returning person.substantial).provenance=true. The provider of the connection that ran, as a catalog provider id (e.g. smart-id, google-wallet).google-wallet-us-mdl). Human-readable but opaque: read provider_id and credential_id instead of parsing it.us-mdl).provenance=true. The activated connection instance the session ran on (conn_…), the instance resolved at creation.disclosure (attributes under user) or match (comparison under match, with user echoing the verified subset of what you submitted). See Verification Model.missing_claims=true. Requested claims the source could not provide. Includes source_id when it was requested but could not be derived for this person. [] when nothing is missing.match connections it contains the verified subset of the values you submitted in userInput. Per-field providers: only fields with matched: true. Aggregate providers: every submitted field when the aggregate outcome is true, otherwise empty.Show Common fields
Show Common fields
YYYY-MM-DDsource_id is selected in the workflow’s data request and the connection can derive it.verification_model is match.provenance=true. What the source returned, as handed over by the provider. See Return Data Model.Show Presentation
Show Presentation
Show Metadata
Show Metadata
provenance._metadata.provider_id, connection_id, credential_id, and connection_instance_id. It is never repeated at the top level of userinfo.failed with code: "loa_insufficient" (the provider returned a lower LoA than the workflow asked for). The data is still returned so you can decide how to handle it.check-min-loa, check-claim, evaluate) add their outputs to this response, for example metLoa, hasClaim, or computed.<field>. See Workflow Nodes.curl --request GET \
--url 'https://api.hopae.com/connect/v2/verifications/{verificationId}/userinfo?provenance=true&missing_claims=true' \
--user '{appId}:{appSecret}'
{
"user": {
"given_name": "OK",
"family_name": "TESTNUMBER",
"name": "OK TESTNUMBER",
"birthdate": "1905-04-04",
"nationality": "LT",
"source_id": "PNOLT-40504040001"
},
"missing_claims": [
"email"
],
"acr": "urn:hopae:loa:4",
"hopae_loa": 4,
"hopae_loa_label": "high",
"verification_model": "disclosure",
"provenance": {
"presentation": {
"credentials": [
{
"claims": {
"documentNumber": "PNOLT-40504040001-MOCK-Q",
"birthdate": "1905-04-04",
"countryCode": "LT",
"givenName": "OK",
"surname": "TESTNUMBER"
},
"evidence": {
"token": {
"id_token": "<BASE64_ID_TOKEN>",
"expires_at": "2026-09-03T10:19:52.000Z",
"access_token": "<OPAQUE_ACCESS_TOKEN>",
"token_type": "Bearer"
},
"names": "id_token;expires_at;access_token;token_type"
}
}
]
},
"_metadata": {
"verification_id": "019bc4f2-8a31-7c5e-9d02-4f7a1b3e60d8",
"verified_at": "2026-09-03T09:19:52.110Z",
"status": "completed",
"provider_id": "smart-id",
"connection_id": "smart-id",
"credential_id": "smart-id",
"connection_instance_id": "conn_01J8XK2P4M9QR3TV"
}
},
"sub": "019bc4f2-8a31-7c5e-9d02-4f7a1b3e60d8"
}
{
"user": {
"name": "Manuela Elisa da Mota",
"cpf": "12345678900"
},
"missing_claims": [],
"hopae_loa": 4,
"hopae_loa_label": "high",
"verification_model": "match",
"match": {
"matched": false,
"granularity": "per_field",
"submitted_fields": [
"name",
"birthdate",
"cpf"
],
"details": {
"name": {
"matched": true,
"submitted_value": "Manuela Elisa da Mota",
"similarity": 100
},
"birthdate": {
"matched": false,
"submitted_value": "1975-06-05"
},
"cpf": {
"matched": true,
"submitted_value": "12345678900"
}
}
},
"provenance": {
"presentation": {
"credentials": [
{
"claims": {
"rfb_existe": true,
"cnh_existe": true,
"qrcode": {
"nome": true,
"data_nascimento": false
}
},
"evidence": {
"token": {
"integrator_jws": "eyJhbGciOiJSUzI1NiIsInR5cCI6...",
"token_type": "integrator"
},
"names": "integrator_jws;token_type"
}
}
]
},
"_metadata": {
"verification_id": "019bc4f7-2b44-7f1a-9c3d-8e5b0a6f2c77",
"verified_at": "2026-09-03T10:02:19.551Z",
"status": "completed",
"provider_id": "br-cpf",
"connection_id": "br-cpf-cnh-match",
"credential_id": "br-cnh-match",
"connection_instance_id": "conn_01J8XK7T1B5NM0WD"
}
},
"sub": "019bc4f7-2b44-7f1a-9c3d-8e5b0a6f2c77"
}
{
"user": {
"given_name": "OK",
"family_name": "TESTNUMBER",
"name": "OK TESTNUMBER",
"birthdate": "1905-04-04",
"nationality": "LT",
"source_id": "PNOLT-40504040001"
},
"acr": "urn:hopae:loa:4",
"hopae_loa": 4,
"hopae_loa_label": "high",
"verification_model": "disclosure",
"sub": "019bc4f2-8a31-7c5e-9d02-4f7a1b3e60d8"
}
provenance.presentation.credentials[].claims is the provider’s own response in its native field names (for match providers, typically per-field confirmations). userInput, match.submitted_fields, and match.details use OIDC-normalized keys (e.g. name, birthdate), so the audit trail stays aligned with the source while your request and the outcome stay normalized.Errors
| HTTP | Code | When |
|---|---|---|
| 404 | SESSION_VERIFICATION_NOT_FOUND | Unknown id, a session of another app, or an environment mismatch |
| 409 | SESSION_INVALID_STATUS_TRANSITION | The session is not completed and is not a failed session with error.code: "loa_insufficient" |
| 403 | AUTH_DATA_PROTECTED | The session was started over OIDC with private_mode |
Authorizations
Basic base64(appId:appSecret). See Authentication.
Path Parameters
The session id.
Query Parameters
true (or 1) adds the provenance block, including the connection identity under provenance._metadata. Off by default.
true (or 1) adds the missing_claims list. Off by default.
Response
Verified data.
Verified attributes, limited to the claims the workflow requested. source_id appears only when selected in the workflow and the source provided it. See Normalized User Data.
Returned only with missing_claims=true. Requested claims the source could not provide (may include source_id).
Authentication Context Class Reference.
Numeric Level of Assurance, 1 to 5.
LoA label.
disclosure or match.
disclosure, match Match outcome: matched, granularity, submitted_fields, details. Match connections only.
Present when the achieved LoA was lower than requested (loa_insufficient).
Returned only with provenance=true. What the source returned, plus verification metadata. See Return Data Model.
Show child attributes
Show child attributes
The verification id. New for every verification, so it is not a stable user identifier. Use user.source_id to recognise a returning person. Always the last key.

