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

# Contract Upload Api

> Upload a contract PDF file for processing.



## OpenAPI

````yaml post /api/v1/contract/upload
openapi: 3.1.0
info:
  title: NinjaAPI
  version: 1.0.0
  description: ''
servers:
  - url: https://api.justpaid.io
security: []
paths:
  /api/v1/contract/upload:
    post:
      summary: Contract Upload Api
      description: Upload a contract PDF file for processing.
      operationId: loopfour_backend_contract_api_external_contract_upload_api
      parameters: []
      requestBody:
        content:
          multipart/form-data:
            schema:
              properties:
                file:
                  format: binary
                  title: File
                  type: string
                  description: The contract PDF file to upload
                customer_uuid:
                  anyOf:
                    - type: string
                    - type: 'null'
                  title: Customer Uuid
                  type: string
                  format: uuid
                  description: Optional UUID of the customer for this contract
              required:
                - file
                - file
              title: MultiPartBodyParams
              type: object
        required: true
      responses:
        '201':
          description: Contract uploaded successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContractUploadOut'
              example:
                process_status_uuid: 123e4567-e89b-12d3-a456-426614174000
                message: Contract uploaded successfully and is being processed
        '400':
          description: Bad Request - Invalid file or data
          content:
            application/json:
              example:
                detail: Unable to upload file
      security:
        - HttpBearerAuth: []
components:
  schemas:
    ContractUploadOut:
      description: |-
        Response schema for contract upload.

        Attributes:
            process_status_uuid (UUID): The UUID of the contract processing status.
            message (str): A message indicating the status of the upload.
      properties:
        process_status_uuid:
          description: >-
            The UUID of the contract processing status. Use this to track the
            contract parsing progress.
          example: 123e4567-e89b-12d3-a456-426614174000
          format: uuid
          title: Process Status Uuid
          type: string
        message:
          description: A message indicating the status of the upload.
          example: Contract uploaded successfully and is being processed
          title: Message
          type: string
      required:
        - process_status_uuid
        - message
      title: ContractUploadOut
      type: object
  securitySchemes:
    HttpBearerAuth:
      type: http
      scheme: bearer

````