> ## Documentation Index
> Fetch the complete documentation index at: https://docs.verify.privue.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Read verification data

> Return normalized result plus per-step detail. Valid at any status, partial before completion.



## OpenAPI

````yaml /api-reference/openapi.json get /verifications/{verification_id}/data
openapi: 3.1.0
info:
  title: Verify with Privue
  description: >-
    Verify your users' identity and business details through Privue's hosted
    flow.


    **Authentication.** Every request takes your API key as a bearer token:
    `Authorization: Bearer <your-key>`.


    **Flow.**


    1. `POST /verifications` with the user's phone. We start their verification
    session and return a `verification_id`.

    2. Redirect the user to `https://verify.privue.ai/<your-slug>` to complete
    the steps.

    3. Poll `GET /verifications/{verification_id}` for status and step progress,
    and `GET /verifications/{verification_id}/data` for the collected result.

    4. Optionally `POST /verifications/{verification_id}/cancel` to end a
    verification early.


    **Identifiers.** `verification_id` is ours and names the verification on
    every read. `reference_id` is your own optional correlation id - stored and
    echoed back, never used as a key.


    **Timestamps.** Timestamps are in IST.


    **Polling.** Reads are free and safe to poll as often as you need.
  version: 0.1.0
servers:
  - url: https://api.verify.privue.ai
    description: Production
security: []
paths:
  /verifications/{verification_id}/data:
    get:
      tags:
        - Verifications
      summary: Read verification data
      description: >-
        Return normalized result plus per-step detail. Valid at any status,
        partial before completion.
      operationId: read_verification_data_verifications__verification_id__data_get
      parameters:
        - name: verification_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            title: Verification Id
      responses:
        '200':
          description: Normalized result plus per-step detail; partial before completion.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VerificationDataResponse'
              example:
                verification_id: 3f2504e0-4f89-41d3-9a0c-0305e82c3301
                reference_id: ord_991
                status: completed
                steps:
                  - key: consent
                    title: Consent
                    required: true
                    status: completed
                    completed_at: '2026-08-06T14:31:05'
                    data:
                      terms_accepted: true
                      privacy_accepted: true
                      accepted_at: '2026-08-06T14:31:05'
                    documents: []
                  - key: identity
                    title: Identity
                    required: true
                    status: completed
                    completed_at: '2026-08-06T14:33:40'
                    data:
                      full_name: Asha Menon
                      date_of_birth: '1988-04-12'
                      pan: ABCDE1234F
                      aadhaar_last4: '6789'
                      email: asha.menon@example.com
                      mobile: '+919876543210'
                    documents: []
                  - key: business
                    title: Business details
                    required: true
                    status: completed
                    completed_at: '2026-08-06T14:36:20'
                    data:
                      legal_name: Menon Traders
                      trade_name: Menon Traders
                      entity_type: proprietorship
                      pan: ABCDE1234F
                      gstin: 29ABCDE1234F1Z5
                      registered_address:
                        line1: 14, MG Road
                        city: Bengaluru
                        state: Karnataka
                        pincode: '560001'
                    documents: []
                  - key: bank
                    title: Bank account
                    required: true
                    status: completed
                    completed_at: '2026-08-06T14:38:55'
                    data:
                      account_holder_name: Asha Menon
                      account_number: '50100247891234'
                      ifsc: HDFC0001234
                      bank_name: HDFC Bank
                      branch: MG Road, Bengaluru
                      account_type: current
                    documents: []
                  - key: documents
                    title: Documents
                    required: false
                    status: completed
                    completed_at: '2026-08-06T14:40:12'
                    documents:
                      - document_id: b0f3e1c2-5a8d-4e77-9f21-3d4c6a2b1e90
                        tag: gst_certificate
                        kind: document
                        filename: gst-certificate.pdf
                        content_type: application/pdf
                        size_bytes: 184320
                        uploaded_at: '2026-08-06T14:39:20'
                      - document_id: 7c1d90a4-2e6b-4f38-8a11-9b5f0c7d2e41
                        tag: pan_card
                        kind: image
                        filename: pan-card.jpg
                        content_type: image/jpeg
                        size_bytes: 96117
                        uploaded_at: '2026-08-06T14:39:48'
                      - document_id: e5a2f7b9-3c40-4d1a-b6e8-1f2c3d4a5b60
                        tag: bank_statement
                        kind: document
                        filename: bank-statement.pdf
                        content_type: application/pdf
                        size_bytes: 251904
                        uploaded_at: '2026-08-06T14:40:12'
                  - key: review
                    title: Review and submit
                    required: true
                    status: completed
                    completed_at: '2026-08-06T14:41:00'
                    documents: []
        '401':
          description: Missing, malformed, or rejected API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                detail: API key is missing, malformed, or rejected.
        '403':
          description: The API key is valid but not enrolled as a verification client.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                detail: No active verification client for this API key.
        '404':
          description: No verification with that verification_id for this client.
          content:
            application/json:
              example:
                detail: No verification with id 3f2504e0-4f89-41d3-9a0c-0305e82c3301.
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - HTTPBearer: []
components:
  schemas:
    VerificationDataResponse:
      properties:
        verification_id:
          type: string
          format: uuid
          title: Verification Id
          description: Our id for this verification
        reference_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Reference Id
          description: Your correlation id, echoed back; null if you sent none
        status:
          $ref: '#/components/schemas/VerificationStatus'
          description: Current lifecycle status
        steps:
          items:
            $ref: '#/components/schemas/StepDataPublic'
          type: array
          title: Steps
          description: Every journey step with the data and documents it collected
      type: object
      required:
        - verification_id
        - reference_id
        - status
        - steps
      title: VerificationDataResponse
      description: >-
        The collected result for one verification: each journey step with the
        data and documents it gathered.


        Readable at any status; partial before completion.
    ErrorResponse:
      properties:
        detail:
          type: string
          title: Detail
          description: A human-readable explanation of what went wrong
      type: object
      required:
        - detail
      title: ErrorResponse
      description: >-
        Every error on this API returns this shape. Branch on the HTTP status,
        not the message text.
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    VerificationStatus:
      type: string
      enum:
        - created
        - in-progress
        - completed
        - cancelled
        - expired
      title: VerificationStatus
      description: >-
        Lifecycle of one user's verification.


        There is no expiry state: a verification is a durable record keyed on
        the user, and the user

        returns to their verification session whenever they choose, so nothing
        lapses on a clock.
    StepDataPublic:
      properties:
        key:
          type: string
          title: Key
          description: Stable step identifier, e.g. identity or bank
        title:
          type: string
          title: Title
          description: Human-readable step name
        required:
          type: boolean
          title: Required
          description: Whether this step must be completed before the user can submit
        status:
          $ref: '#/components/schemas/StepStatus'
          description: This step's current progress
        completed_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Completed At
          description: When the step was completed (IST), or null if not yet
        data:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Data
          description: What the step collected, as a free-form object; null until complete
        documents:
          items:
            $ref: '#/components/schemas/DocumentPublic'
          type: array
          title: Documents
          description: >-
            Files collected against this step, each downloadable by its
            document_id
      type: object
      required:
        - key
        - title
        - required
        - status
      title: StepDataPublic
      description: >-
        A step plus the data and documents it collected. Carried by the data
        endpoint, not the status poll.


        ``data`` is what the step collected, as a free-form object, or null
        before it completes. ``documents``

        are the files gathered against the step, each downloadable by its
        ``document_id``.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    StepStatus:
      type: string
      enum:
        - pending
        - in-progress
        - completed
        - failed
        - skipped
      title: StepStatus
      description: Progress of one step within a verification.
    DocumentPublic:
      properties:
        document_id:
          type: string
          format: uuid
          title: Document Id
        tag:
          type: string
          title: Tag
          description: Which step or slot the user uploaded this document against
        kind:
          $ref: '#/components/schemas/DocumentKind'
        filename:
          type: string
          title: Filename
        content_type:
          anyOf:
            - type: string
            - type: 'null'
          title: Content Type
        size_bytes:
          anyOf:
            - type: integer
            - type: 'null'
          title: Size Bytes
        uploaded_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Uploaded At
      type: object
      required:
        - document_id
        - tag
        - kind
        - filename
        - content_type
        - size_bytes
        - uploaded_at
      title: DocumentPublic
      description: One document the user uploaded.
    DocumentKind:
      type: string
      enum:
        - document
        - image
      title: DocumentKind
      description: Whether an uploaded file is a document or an image.
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer

````