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

# Upload a document

> Upload a document with metadata and file.



## OpenAPI

````yaml /api-reference/openapi.json post /api/v1/documents
openapi: 3.1.0
info:
  title: Nuvera API
  description: Nuvera Payment Platform REST API
  version: '1.0'
  contact: {}
servers:
  - url: http://localhost:45000
security: []
tags: []
paths:
  /api/v1/documents:
    post:
      tags:
        - Documents
      summary: Upload a document
      description: Upload a document with metadata and file.
      operationId: DocumentController_upload
      parameters: []
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/UploadDocumentBodyDto'
      responses:
        default:
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocumentOutputDto_Output'
      security:
        - x-api-key: []
          signed-request: []
components:
  schemas:
    UploadDocumentBodyDto:
      type: object
      properties:
        category:
          type: string
          enum:
            - CERTIFICATE_OF_INCORPORATION
            - ARTICLES_OF_ASSOCIATION
            - PROOF_OF_ADDRESS
            - COMPANY_STRUCTURE_CHART
            - BANK_STATEMENT
            - FINANCIAL_ACCOUNTS
            - SHAREHOLDER_CONFIRMATION
            - AML_POLICY
            - ID_FRONT
            - ID_BACK
            - PERSON_PROOF_OF_ADDRESS
            - INVOICE
            - SUPPORTING_DOCUMENT
            - SWIFT_CONFIRMATION
            - OTHER
            - SHARE_REGISTER
            - LICENSE_PERMIT
            - REGISTER_OF_DIRECTORS
            - BOARD_RESOLUTION_MINUTES
            - POWER_OF_ATTORNEY
            - TECHNICAL_FUND_FLOW_DOCUMENT
            - SELFIE
          description: Document category
        entityType:
          type: string
          enum:
            - CUSTOMER
            - CUSTOMER_PERSON
            - CUSTOMER_LEGAL_ENTITY_SHAREHOLDER
            - BENEFICIARY
            - PAYMENT
            - ORGANIZATION
            - ORGANIZATION_PERSON
          description: Entity this document belongs to
        entityId:
          description: ID of the entity (resolved from auth for ORGANIZATION)
          type: string
      required:
        - category
        - entityType
        - entityId
    DocumentOutputDto_Output:
      type: object
      properties:
        id:
          type: string
        fileName:
          type: string
        mimeType:
          type: string
        size:
          type: number
        category:
          type: string
        entityType:
          type: string
        entityId:
          type: string
        isInternal:
          type: boolean
        createdAt:
          type: string
        downloadUrl:
          type: string
      required:
        - id
        - fileName
        - mimeType
        - size
        - category
        - entityType
        - entityId
        - isInternal
        - createdAt
      additionalProperties: false
  securitySchemes:
    x-api-key:
      type: apiKey
      in: header
      name: x-api-key
      description: Nuvera API application secret key
    signed-request:
      scheme: bearer
      bearerFormat: JWT
      type: http
      description: RS256 per-request signed JWT

````