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

# Upload LRS Document

> Upload a supporting document and get a ref to pass in Submit LRS Verification. Multipart file + type.



## OpenAPI

````yaml POST /pg/lrs/documents/
openapi: 3.0.0
info:
  title: Eximpe Payment Gateway API
  description: >-
    API for payment processing and order management through Eximpe payment
    gateway. This specification is for v3 API version.
  license:
    name: Proprietary
  version: 3.0.0
servers:
  - url: https://api-pacb-uat.eximpe.com
    description: Payment Gateway Sandbox URL
security:
  - clientAuth: []
    clientSecretAuth: []
    apiVersionHeader: []
tags:
  - name: Card Tokens
  - name: Merchants
  - name: Orders
  - name: Payment Links
  - name: Payments
  - name: Refunds
  - name: Settlements
  - name: Subscriptions
  - name: Virtual Bank Accounts
    description: Create and manage ICICI virtual accounts and read collected payments.
paths:
  /pg/lrs/documents/:
    post:
      tags:
        - LRS
      summary: Upload a supporting document
      description: >-
        Upload one LRS supporting document (offer letter, passport, fee invoice,
        ...) and get back a `ref`. Pass that `ref` together with its `type` in
        the `documents` array of **Submit LRS Verification**. Documents are
        uploaded up front, decoupled from any payment. The file's type, size and
        encryption are validated on upload.


        **PSP callers must send `X-Merchant-ID`.** This is a
        `multipart/form-data` request.
      operationId: v3_post_pg_lrs_documents_
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
                - file
                - type
              properties:
                file:
                  type: string
                  format: binary
                  description: The document file to upload.
                type:
                  type: string
                  description: >-
                    Document type. Must be a known LRS document type for the
                    purpose codes you are enabled for.
                  enum:
                    - fee_invoice
                    - offer_letter
                    - passport
                    - relationship_declaration
                    - student_id_or_visa
                    - student_id
                  example: offer_letter
      responses:
        '201':
          description: Document uploaded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  message:
                    type: string
                    example: Document uploaded
                  data:
                    type: object
                    properties:
                      ref:
                        type: string
                        description: >-
                          Reference to pass as `documents[].ref` in Submit LRS
                          Verification.
                        example: a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d
                      type:
                        type: string
                        example: offer_letter
              example:
                success: true
                message: Document uploaded
                data:
                  ref: a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d
                  type: offer_letter
        '400':
          description: >-
            Invalid request — unknown document type, or the file failed
            type/size/encryption validation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3_ErrorResponse'
        '500':
          description: Unexpected error uploading the document.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3_ErrorResponse'
      security:
        - clientAuth: []
          clientSecretAuth: []
          merchantAuth: []
          apiVersionHeader: []
components:
  schemas:
    v3_ErrorResponse:
      type: object
      required:
        - success
        - error
      properties:
        success:
          type: boolean
          description: Indicates if the request was successful
        error:
          $ref: '#/components/schemas/v3_ErrorDetails'
    v3_ErrorDetails:
      type: object
      required:
        - code
        - message
      properties:
        code:
          type: string
          description: Error code (e.g., ERR_ORDER_002)
        message:
          type: string
          description: Error message
        details:
          type: object
          description: Detailed validation error information with field-specific errors
          additionalProperties:
            type: string
            description: Error message for the specific field
  securitySchemes:
    clientAuth:
      type: apiKey
      name: X-Client-ID
      in: header
      description: >-
        **Client Application ID** - Your unique application identifier used to
        authenticate API requests. You can find your Client ID in the Developer
        Settings section of the merchant dashboard.
      x-displayName: Client ID
      x-example: your-client-id
    clientSecretAuth:
      type: apiKey
      name: X-Client-Secret
      in: header
      description: >-
        **Client Secret Key** - Your secret key used alongside the Client ID for
        secure authentication. Keep this confidential and never expose it in
        client-side code. Available in the Developer Settings section of the
        merchant dashboard.
      x-displayName: Client Secret
      x-example: your-client-secret
    apiVersionHeader:
      type: apiKey
      name: X-API-Version
      in: header
      description: >-
        **API Version** - Specifies which version of the API to use (e.g.,
        '1.X.X', '2.X.X', or '3.X.X'). This header allows you to control which
        API version your integration uses. Default version information is
        available in the Developer Settings.
      x-displayName: API Version
      x-example: 3.0.0
    merchantAuth:
      type: apiKey
      name: X-Merchant-ID
      in: header
      description: >-
        **Merchant Identifier** - The unique ID for the merchant account. This
        is required for PSP (Payment Service Provider) merchants who manage
        multiple merchant accounts. You can find merchant IDs in the Merchant
        Management section of the dashboard.
      x-displayName: Merchant ID
      x-example: your-merchant-id

````