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

# Upload private record financial file

> Upload a financial file to a specific private record.
    #### [Authorization scenarios](/content/developer-guide/introduction/authorization#scenarios)
    | Guest | Host | Self |
    |-------|------|------|
    | ❌    | ❌   | ✅  |



## OpenAPI

````yaml /content/developer-guide/api-reference/openapi_v1.json post /private-records/{record_id}/financial-files
openapi: 3.1.0
info:
  title: API - V1
  version: 1.0.0
servers:
  - url: https://api.mycreditapp.ai/v1-beta
security: []
paths:
  /private-records/{record_id}/financial-files:
    post:
      tags:
        - Private Record Financial Files
      summary: Upload private record financial file
      description: |-
        Upload a financial file to a specific private record.
            #### [Authorization scenarios](/content/developer-guide/introduction/authorization#scenarios)
            | Guest | Host | Self |
            |-------|------|------|
            | ❌    | ❌   | ✅  |
      operationId: >-
        upload_private_record_financial_file_private_records__record_id__financial_files_post
      parameters:
        - name: record_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: >-
              Unique identifier of the [private
              record](https://docs.mycreditapp.ai/api-reference/private-records/get-private-records)
            examples:
              - b25e7b65-e46a-40d5-a0f2-0de8c2b354aa
            title: Record Id
          description: >-
            Unique identifier of the [private
            record](https://docs.mycreditapp.ai/api-reference/private-records/get-private-records)
        - name: Requester-Organization-ID
          in: header
          required: true
          schema:
            type: string
            format: uuid
            description: |

              The unique identifier of the organization making the request.
              **This ID is used to authorize the requester within the system**.
            examples:
              - 054b4106-174b-46b0-97f8-86d8d7b6f0af
            title: Requester-Organization-Id
          description: |

            The unique identifier of the organization making the request.
            **This ID is used to authorize the requester within the system**.
        - name: Target-Organization-ID
          in: header
          required: true
          schema:
            type: string
            format: uuid
            description: >

              The unique identifier of the organization that is the target of
              the request.

              The `Target-Organization-ID` may match the
              `Requester-Organization-ID` if the requester accesses their own
              resources.

              If the `Target-Organization-ID` differs from the
              `Requester-Organization-ID`, the requester can access third-party
              resources **if the requester has a connection with the target
              organization and is authorized to perform such actions**.
            examples:
              - 123e4567-e89b-12d3-a456-426614174000
            title: Target-Organization-Id
          description: >

            The unique identifier of the organization that is the target of the
            request.

            The `Target-Organization-ID` may match the
            `Requester-Organization-ID` if the requester accesses their own
            resources.

            If the `Target-Organization-ID` differs from the
            `Requester-Organization-ID`, the requester can access third-party
            resources **if the requester has a connection with the target
            organization and is authorized to perform such actions**.
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: >-
                #/components/schemas/Body_upload_private_record_financial_file_private_records__record_id__financial_files_post
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrivateRecordsFinancialFile'
        '400':
          description: Bad Request
          content:
            application/json:
              example:
                detail:
                  - loc: []
                    msg: Invalid currency code!
                    type: request
                    code: invalid_currency
                  - loc: []
                    msg: The file name is missing or invalid!
                    type: request
                    code: invalid_file_name
                  - loc: []
                    msg: 'Invalid file format (allowed formats: application/pdf)!'
                    type: request
                    code: not_allowed_file_type
                  - loc: []
                    msg: >-
                      Uploaded file size is larger than the allowed size
                      (allowed size: 10485760 bytes)!
                    type: request
                    code: invalid_file_size
                  - loc: []
                    msg: Unsupported CRUD operation!
                    type: request
                    code: unsupported_crud_operation
              schema:
                $ref: '#/components/schemas/APIError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                detail:
                  - loc: []
                    msg: Token is required!
                    type: token
                    code: token_required
                  - loc: []
                    msg: The token has expired!
                    type: token
                    code: token_expired
                  - loc: []
                    msg: Invalid token!
                    type: token
                    code: invalid_token
        '403':
          description: Forbidden
          content:
            application/json:
              example:
                detail:
                  - loc: []
                    msg: Access denied!
                    type: request
                    code: access_denied
                  - loc: []
                    msg: This functionality is only available with a subscription!
                    type: subscription
                    code: no_subscription
              schema:
                $ref: '#/components/schemas/APIError'
        '404':
          description: Not Found
          content:
            application/json:
              example:
                detail:
                  - loc: []
                    msg: Account not found!
                    type: request
                    code: account_not_found
                  - loc: []
                    msg: Organization not found!
                    type: request
                    code: organization_not_found
                  - loc: []
                    msg: Private record not found!
                    type: request
                    code: private_record_not_found
              schema:
                $ref: '#/components/schemas/APIError'
        '409':
          description: Conflict
          content:
            application/json:
              example:
                detail:
                  - loc: []
                    msg: >-
                      The account is in the process of being deleted! The
                      Account's email can only be reused after its data has been
                      completely deleted. The removal process may take up to 24
                      hours.
                    type: request
                    code: account_being_deleted
                  - loc: []
                    msg: >-
                      The organization is in the process of being deleted! The
                      removal process may take up to 24 hours.
                    type: request
                    code: organization_being_deleted
              schema:
                $ref: '#/components/schemas/APIError'
        '413':
          description: Request Entity Too Large
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                detail:
                  - loc: []
                    msg: The request is too large!
                    type: request
                    code: request_too_large
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                detail:
                  - loc:
                      - string
                      - 0
                    msg: string
                    type: string
                    code: validation_error
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                detail:
                  - loc: []
                    msg: Error processing request, please try later!
                    type: try_later
                    code: internal_conflict_error
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
              example:
                detail:
                  - loc: []
                    msg: Service is under maintenance, please try later!
                    type: maintanance
                    code: service_under_maintenance
      security:
        - Token: []
components:
  schemas:
    Body_upload_private_record_financial_file_private_records__record_id__financial_files_post:
      properties:
        currency:
          type: string
          maxLength: 3
          minLength: 3
          title: Currency
        file:
          type: string
          format: binary
          title: File
      type: object
      required:
        - currency
        - file
      title: >-
        Body_upload_private_record_financial_file_private_records__record_id__financial_files_post
    PrivateRecordsFinancialFile:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: >-
            Unique identifier of the [financial
            file](https://docs.mycreditapp.ai/api-reference/private-records-financial-files/upload-private-record-financial-file)
          examples:
            - b267d0d3-496f-4592-a1ae-59c9d279ca64
        original_filename:
          type: string
          maxLength: 255
          minLength: 1
          title: Original Filename
          description: Original filename of the uploaded file
          examples:
            - financials_2025.pdf
        mime_type:
          type: string
          maxLength: 100
          minLength: 1
          title: Mime Type
          description: 'MIME type of the uploaded file, must be on of: application/pdf'
          examples:
            - application/pdf
            - application/vnd.ms-excel
        size_bytes:
          type: integer
          exclusiveMinimum: 0
          title: Size Bytes
          description: Size of the file in bytes
          examples:
            - 524288
        sha256:
          type: string
          maxLength: 64
          minLength: 64
          title: Sha256
          description: SHA-256 hash of the file
          examples:
            - 3a7bd3e2360a65d3b7b9b1d45c9f6b0b5c2e8d7f8b9c6e5f4a3d2c1b0e9f8a7d
        currency:
          type: string
          maxLength: 3
          minLength: 3
          title: Currency
          description: >-
            Valid [currency
            code](https://docs.mycreditapp.ai/api-reference/resources/get-the-available-currencies)
            in ISO 4217
          examples:
            - USD
            - EUR
            - GBP
        status:
          $ref: '#/components/schemas/FileStatus'
          description: Processing status of the file
        file_message:
          anyOf:
            - type: string
              maxLength: 1000
            - type: 'null'
          title: File Message
          description: Optional message regarding the file
          examples:
            - File processed successfully
        uploaded_at:
          type: string
          format: date-time
          title: Uploaded At
          description: Timestamp when the file was uploaded
          examples:
            - '2025-12-12T12:34:56.123456'
        created_at:
          type: string
          format: date-time
          title: Created At
          description: Timestamp when the file was created
          examples:
            - '2025-12-12T12:34:56.123456'
        updated_at:
          type: string
          format: date-time
          title: Updated At
          description: Timestamp when the file was updated
          examples:
            - '2025-12-12T12:34:56.123456'
      type: object
      required:
        - id
        - original_filename
        - mime_type
        - size_bytes
        - sha256
        - currency
        - status
        - uploaded_at
        - created_at
        - updated_at
      title: PrivateRecordsFinancialFile
    APIError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ErrorItem'
          type: array
          title: Detail
          description: >

            List of returned errors.

            **All unsuccessful error codes except code `422` can only contain 1
            element in the list**.
      type: object
      required:
        - detail
      title: APIError
    FileStatus:
      type: string
      enum:
        - uploaded
        - processing
        - valid
        - invalid
        - failed
      title: FileStatus
    ErrorItem:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Loc
          description: |

            Shows the dynamic location of the current error.
            If an empty array is returned, the error is static.
          examples:
            - - body
              - date_field
              - 0
            - - header
              - Authorization
        msg:
          type: string
          title: Msg
          description: |

            A human-readable message providing more details about the error.
          examples:
            - Token is required!
            - Invalid token!
        type:
          type: string
          title: Type
          description: >

            A string indicating the type of error.

            **The list is not fixed, so it's necessary to pay attention to the
            possible type for a specific error**.
          examples:
            - token
            - request
            - try_later
        code:
          type: string
          title: Code
          description: >

            Unique text error code identifying the error.

            **The list is not fixed, so it's necessary to pay attention to the
            possible code for a specific error**.
          examples:
            - token_required
            - invalid_token
            - access_denied
      type: object
      required:
        - loc
        - msg
        - type
        - code
      title: ErrorItem
  securitySchemes:
    Token:
      type: http
      description: >-
        [Bearer
        authentication](/content/developer-guide/introduction/authentication)
        using a JWT token. Provide a valid access token. Authorization header
        format: `Authorization: Bearer <token>`.
      scheme: bearer

````