Trusona Encrypted Verifications API

The Encrypted Verifications API from Trusona — 3 operation(s) for encrypted verifications.

Operations 3

POST /api/v1/encrypted/verifications Create a new verification with encrypted response #
GET /api/v1/encrypted/verifications/{verificationId} Get an encrypted verification by ID #
GET /api/v1/encrypted/verifications/{verificationId}/document Get an encrypted document by verification ID #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/trusona-encrypted-verifications-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

trusona-encrypted-verifications-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Encrypted Verifications API
  description: API to manage verifications, messages, checkers, devices, and risk scores.
  contact:
    name: API Support
    url: https://trusona.com
    email: support@trusona.com
  version: 2.2.0
  summary: 'Base URL: https://authcloud.trusona.net'
servers:
- url: https://authcloud.trusona.net
security:
- bearerAuth: []
tags:
- name: Encrypted Verifications
paths:
  /api/v1/encrypted/verifications:
    post:
      tags:
      - Encrypted Verifications
      summary: Create a new verification with encrypted response
      description: Create a new verification and return the verification data encrypted with the provided encryption key.
      operationId: createEncryptedVerification
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateEncryptedVerificationDto'
        required: true
      responses:
        '201':
          description: Verification created successfully with encryption token
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/EncryptedVerificationResponse'
        '400':
          description: Bad request - Must be one of RSA, EC or OKP (crv=X25519) type in JWK format
        '401':
          description: Unauthorized
        '422':
          description: Unprocessable entity - validation failed
  /api/v1/encrypted/verifications/{verificationId}:
    get:
      tags:
      - Encrypted Verifications
      summary: Get an encrypted verification by ID
      operationId: getEncryptedVerification
      parameters:
      - name: verificationId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Verification retrieved successfully
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/EncryptedVerificationResponse'
        '401':
          description: Unauthorized
        '404':
          description: Verification not found
  /api/v1/encrypted/verifications/{verificationId}/document:
    get:
      tags:
      - Encrypted Verifications
      summary: Get an encrypted document by verification ID
      description: Get the verification's document and return it encrypted with the same public key provided when the verification was created.
      operationId: getEncryptedDocument
      parameters:
      - name: verificationId
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Encrypted document retrieved successfully
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/EncryptedDocumentResponse'
        '401':
          description: Unauthorized
        '404':
          description: Verification not found or document is not yet available
        '410':
          description: Document has been removed (occurs when parent verification expires)
components:
  schemas:
    RequestedMnoVerifier:
      allOf:
      - $ref: '#/components/schemas/RequestedVerifier'
      - type: object
        properties:
          phoneNumber:
            type: string
            description: Phone number for MNO verification. Must be in one of the countries the tenant has enabled for MNO, which default to the USA (+1), Canada (+1) and the UK (+44). Dashes, spaces, dots and parentheses are accepted; a missing country code is resolved against the default countries, so numbers from any other enabled country must be given in E.164 form.
            example: '+12025551234'
      description: Request an MNO (mobile network operator) verification.
      required:
      - verifier
    RequestedMessage:
      type: object
      discriminator:
        propertyName: channel
      properties:
        channel:
          type: string
          enum:
          - COPY
          - SMS
          - EMAIL
          - TRUSTED_SMS
      required:
      - channel
    RequestedTrustedSmsMessage:
      allOf:
      - $ref: '#/components/schemas/RequestedMessage'
      - type: object
        properties:
          phoneNumber:
            type: string
            description: Phone number to send the trusted SMS to. Dashes, spaces, dots and parentheses are accepted, as is a missing leading +; the number is stored and returned in E.164 form. A number sent without a country code cannot be resolved and is rejected.
            example: '+12025551234'
      description: Send a trusted SMS with SIM swap detection to the provided phone number.
      required:
      - channel
    EncryptedDocumentResponse:
      type: object
      properties:
        verificationId:
          type: string
          format: uuid
          description: The verification ID associated with this document
          example: 10c9207a-1c3d-45fd-874f-a2af9c2d33d4
          readOnly: true
        encryptedDocument:
          type: string
          description: JWE document object
          example: eyJhbGciOiJSU0EtT0FFUC0yNTYiLCJlbmMiOiJBMjU2R0NNIn0...
          readOnly: true
    EncryptedVerificationResponse:
      type: object
      properties:
        id:
          type: string
          format: uuid
          example: bd30618f-06d3-45c5-ae52-c36751fc20b2
          readOnly: true
        overallRisk:
          type: string
          enum:
          - 'NO'
          - LOW
          - HIGH
          readOnly: true
        encryptedVerification:
          type: string
          description: JWE Verification object
          example: eyJhbGciOiJSU0EtT0FFUC0yNTYiLCJlbmMiOiJBMjU2R0NNIn0...
          readOnly: true
    RequestedDmvVerifier:
      allOf:
      - $ref: '#/components/schemas/RequestedVerifier'
      description: Request a DMV (AAMVA) verification.
      required:
      - verifier
    RequestedSmsMessage:
      allOf:
      - $ref: '#/components/schemas/RequestedMessage'
      - type: object
        properties:
          phoneNumber:
            type: string
            description: Phone number to send the SMS to. Dashes, spaces, dots and parentheses are accepted, as is a missing leading +; the number is stored and returned in E.164 form. A number sent without a country code cannot be resolved and is rejected.
            example: '+12025551234'
      description: Send an SMS message to the provided phone number.
      required:
      - channel
    RequestedLexisNexisVerifier:
      allOf:
      - $ref: '#/components/schemas/RequestedVerifier'
      description: Request a LexisNexis verification.
      required:
      - verifier
    RequestedCopyMessage:
      allOf:
      - $ref: '#/components/schemas/RequestedMessage'
      required:
      - channel
    CreateEncryptedVerificationDto:
      type: object
      properties:
        documentType:
          type: string
          enum:
          - US_CA_DL
          - UK_DL
          - PASSPORT
          - INDIA_DL
          - INDIA_ID
          - INDIA_PAN
          - PHILIPPINES_DL
          - PHILIPPINES_ID
          - PHILIPPINES_MULTI_ID
          - US_MILITARY_ID
          - US_VETERAN_ID
          - SINGAPORE_DL
          - SINGAPORE_ID
          - SINGAPORE_WORK_PERMIT
          - SINGAPORE_EMPLOYMENT_PASS
          - PAKISTAN_ID
          - AUSTRALIA_DL
          - MEXICO_DL
          - NETHERLANDS_DL
          - US_PERMANENT_RESIDENT_CARD
          - GERMANY_ID
          - GERMANY_DL
          - GERMANY_RESIDENCE_PERMIT
          - AUSTRIA_ID
          - AUSTRIA_DL
          - AUSTRIA_RESIDENCE_PERMIT
          example: US_CA_DL
        callbackUrl:
          type:
          - string
          - 'null'
          format: uri
          example: https://example.com/callback/unique/to/this/request/8b62142a99ba759d8c9153b68765513c62180891
        requestedVerifiers:
          type: array
          description: Set of verifiers to run against this verification. Each entry uses the 'verifier' discriminator field.
          example:
          - verifier: DMV
          - verifier: MNO_V
            phoneNumber: '+12025551234'
          items:
            oneOf:
            - $ref: '#/components/schemas/RequestedVerifier'
            - $ref: '#/components/schemas/RequestedDmvVerifier'
            - $ref: '#/components/schemas/RequestedLexisNexisVerifier'
            - $ref: '#/components/schemas/RequestedMnoVerifier'
          uniqueItems: true
        subject:
          type: 'null'
          $ref: '#/components/schemas/VerificationSubject'
          description: Optional identity information about the subject of this verification, used by the ExpectedSubjectVerifier to compare against the scanned document.
        requestedMessages:
          type: array
          description: Set of messages to send for this verification. Each entry uses the 'channel' discriminator field. Maximum 2.
          example:
          - channel: SMS
            phoneNumber: '+12025551234'
          - channel: EMAIL
            emailAddress: user@example.com
          items:
            oneOf:
            - $ref: '#/components/schemas/RequestedMessage'
            - $ref: '#/components/schemas/RequestedCopyMessage'
            - $ref: '#/components/schemas/RequestedEmailMessage'
            - $ref: '#/components/schemas/RequestedSmsMessage'
            - $ref: '#/components/schemas/RequestedTrustedSmsMessage'
          maxItems: 2
          minItems: 0
          uniqueItems: true
        status:
          type:
          - string
          - 'null'
          enum:
          - CREATED
        publicWebKey:
          type: object
          additionalProperties: {}
          description: Public key used for encrypting the verification response. Must be one of RSA, EC or OKP (crv=X25519) type in JWK format.
      required:
      - documentType
    RequestedEmailMessage:
      allOf:
      - $ref: '#/components/schemas/RequestedMessage'
      - type: object
        properties:
          emailAddress:
            type: string
            format: email
            description: Email address to send the message to.
            example: user@example.com
            minLength: 1
      description: Send an email message to the provided email address.
      required:
      - channel
      - emailAddress
    VerificationSubject:
      type: object
      description: Subject identity information supplied by the API consumer for matching against the scanned document.
      properties:
        firstName:
          type: string
          description: Expected first name.
          example: Susan
          maxLength: 128
          minLength: 0
        lastName:
          type: string
          description: Expected last name.
          example: O'Brien
          maxLength: 128
          minLength: 0
        dateOfBirth:
          type: string
          description: Expected date of birth in MM/DD/YYYY format.
          example: 03/14/1990
        city:
          type: string
          description: Expected city.
          example: San Francisco
          maxLength: 32
          minLength: 0
        state:
          type: string
          description: Expected state, province or region.
          example: CA
          maxLength: 32
          minLength: 0
        country:
          type: string
          description: Expected country as ISO 3166-1 alpha-2.
          example: US
          pattern: ^[A-Za-z]{2}$
    RequestedVerifier:
      type: object
      discriminator:
        propertyName: verifier
      properties:
        verifier:
          type: string
          enum:
          - DMV
          - MNO_V
          - SCAN
      required:
      - verifier
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT