Skip to main content
Scope
  • OIDC: GET /userinfo
  • REST API: GET /verifications/{id}/userinfo

Provenance (shape)

type ProvenanceShape = {
  presentation: {
    channel?: {
      type: 'centralized_idp' | 'chip_based' | 'wallet' | string
      transport: 'internet' | 'nfc' | 'ble' | 'qr_code' | string
    }
    credentials: Array<{
      type: string // providerId used when starting the verification (e.g., smartid, bankidse)
      issuer?: { id: string; authority_name?: string; is_government?: boolean }
      claims: Record<string, unknown>
      evidence?: {
        token?: Record<string, unknown>
        names?: string // semicolon-delimited list of keys present under token
      }
    }>
  }
  _metadata: { verification_id: string; verified_at?: string }
}
Learn more: Provenance

Copy & Paste Types

  • TypeScript
  • Go
  • C#
  • Java
export interface Proof {
  presentation: Presentation
  _metadata: Metadata
}

export interface Presentation {
  channel?: Channel
  credentials: Credential[]
}

export interface Channel {
  type: 'centralized_idp' | 'chip_based' | 'wallet' | string
  transport: 'internet' | 'nfc' | 'ble' | 'qr_code' | string
}

export interface Credential {
  type: string // providerId used when starting the verification (e.g., smartid, bankidse)
  issuer?: Issuer
  claims: Record<string, unknown>
  evidence?: Evidence // may or may not be present
}

export interface Issuer {
  id: string
  authority_name?: string
  is_government?: boolean
}

export interface Evidence {
  token?: Record<string, unknown>
  names?: string // semicolon-delimited list of keys under token
}

export interface Metadata {
  verification_id: string
  verified_at?: string // ISO8601
}

Notes

  • Issuer and claims can vary by credential type; treat unknown fields as opaque.