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

# Create or resume hosted verification for the session customer

> Browser route. Starts or resumes the provider-hosted verification flow for the compliance customer named by the session bearer. A `pending` result with `nextAction` must be presented in an iframe; `pending` without it means the provider is reviewing and status updates arrive via webhook. The hosted URL is short-lived and is never stored — call again to mint a fresh one.



## OpenAPI

````yaml https://raw.githubusercontent.com/rhinestonewtf/openapi/refs/heads/main/deposit-service.json post /compliance/verification
openapi: 3.1.0
info:
  title: Deposit Service API
  version: 1.0.0
  description: >-
    Cross-chain deposit processing service with automatic token bridging and gas
    sponsorship
servers:
  - url: https://v1.orchestrator.rhinestone.dev/deposit-processor
security: []
paths:
  /compliance/verification:
    post:
      tags:
        - Compliance
      summary: Create or resume hosted verification for the session customer
      description: >-
        Browser route. Starts or resumes the provider-hosted verification flow
        for the compliance customer named by the session bearer. A `pending`
        result with `nextAction` must be presented in an iframe; `pending`
        without it means the provider is reviewing and status updates arrive via
        webhook. The hosted URL is short-lived and is never stored — call again
        to mint a fresh one.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ComplianceVerificationRequestBody'
      responses:
        '200':
          description: Hosted verification session
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComplianceVerificationSession'
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Missing, malformed, or expired session token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: >-
            Session does not match the resolved customer, or the provider
            refused verification for this customer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Failed to create the verification session
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '502':
          description: The verification provider rejected or failed the request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Verification provider not configured, or sessions paused
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
        - complianceSessionBearer: []
components:
  schemas:
    ComplianceVerificationRequestBody:
      type: object
      properties:
        currency:
          type: string
          enum:
            - EUR
            - USD
          description: Fiat currency the customer is being verified for.
      required:
        - currency
      additionalProperties: false
    ComplianceVerificationSession:
      type: object
      properties:
        id:
          type: string
          format: uuid
        status:
          type: string
          enum:
            - pending
            - completed
            - failed
          description: >-
            pending: present nextAction or await review; completed: already
            verified; failed: provider rejected. Interaction status only, never
            settlement.
        expiresAt:
          type: string
          format: date-time
        nextAction:
          type: object
          properties:
            type:
              type: string
              enum:
                - hosted
            url:
              type: string
              format: uri
            presentation:
              type: string
              enum:
                - iframe
          required:
            - type
            - url
            - presentation
          additionalProperties: false
      required:
        - id
        - status
        - expiresAt
      additionalProperties: false
    ErrorResponse:
      type: object
      properties:
        error:
          type: string
        code:
          type: string
          description: >-
            Deposit error code (e.g. `TOKEN-3`) when the refusal is one a
            deposit would also receive.
        details:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
              path:
                type: array
                items:
                  anyOf:
                    - type: string
                    - type: number
              code:
                type: string
            required:
              - message
      required:
        - error
  securitySchemes:
    complianceSessionBearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Required 15-minute customer-scoped browser session from POST
        /compliance/sessions. Application keys are not accepted.

````