> ## Documentation Index
> Fetch the complete documentation index at: https://omniflow-vpn.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Post v1accountsupporttickets attachments

> Uploads one file as a new message on the conversation and answers the attachment it created. The accepted media types are an allowlist, so an unknown type is refused rather than guessed at. The idempotency key becomes the message's dedupe key, so a replayed upload finds the message and the file it already hung on it. A conversation already carrying `maxAttachmentsPerTicket` web uploads answers 409 `too_many_attachments`.



## OpenAPI

````yaml https://raw.githubusercontent.com/kewldan/omniflow/main/api/openapi.yaml post /v1/account/support/tickets/{ticketID}/attachments
openapi: 3.0.3
info:
  title: Omniflow API
  version: 1.0.0
  description: >-
    Customer, commerce, payment, wallet, fulfillment, and operations API for
    Omniflow.
servers: []
security: []
paths:
  /v1/account/support/tickets/{ticketID}/attachments:
    post:
      tags:
        - account
      description: >-
        Uploads one file as a new message on the conversation and answers the
        attachment it created. The accepted media types are an allowlist, so an
        unknown type is refused rather than guessed at. The idempotency key
        becomes the message's dedupe key, so a replayed upload finds the message
        and the file it already hung on it. A conversation already carrying
        `maxAttachmentsPerTicket` web uploads answers 409
        `too_many_attachments`.
      operationId: attachToAccountSupportTicket
      parameters:
        - $ref: '#/components/parameters/AccountTicketID'
        - $ref: '#/components/parameters/CSRFToken'
        - $ref: '#/components/parameters/IdempotencyKeyOptional'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
                - file
              properties:
                file:
                  type: string
                  format: binary
                message:
                  type: string
      responses:
        '201':
          description: Attached
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountAttachment'
        '404':
          $ref: '#/components/responses/Problem'
        '409':
          $ref: '#/components/responses/Problem'
        '413':
          $ref: '#/components/responses/Problem'
        '415':
          $ref: '#/components/responses/Problem'
        '422':
          $ref: '#/components/responses/Problem'
        '429':
          $ref: '#/components/responses/Problem'
        '503':
          $ref: '#/components/responses/Problem'
components:
  parameters:
    AccountTicketID:
      in: path
      name: ticketID
      required: true
      schema:
        type: string
        format: uuid
    CSRFToken:
      in: header
      name: X-CSRF-Token
      required: true
      description: >-
        Echoes the token from the current session. Required on every unsafe
        method.
      schema:
        type: string
    IdempotencyKeyOptional:
      in: header
      name: Idempotency-Key
      required: false
      description: >-
        Optional here. Supplying one makes a repeated submission resolve to the
        record already created instead of a second one.
      schema:
        type: string
        minLength: 8
        maxLength: 128
  schemas:
    AccountAttachment:
      type: object
      required:
        - id
        - kind
        - fileName
        - mediaType
        - sizeBytes
        - downloadable
        - createdAt
      properties:
        id:
          type: string
          format: uuid
        messageId:
          type: integer
          format: int64
          description: Present on the upload response; the message the file was hung on.
        kind:
          type: string
          enum:
            - photo
            - document
        fileName:
          type: string
        mediaType:
          type: string
        sizeBytes:
          type: integer
          format: int64
        downloadable:
          type: boolean
          description: False for a file that lives in Telegram rather than here.
        createdAt:
          type: string
          format: date-time
    Problem:
      type: object
      required:
        - type
        - title
        - status
      properties:
        type:
          type: string
          format: uri
        title:
          type: string
        status:
          type: integer
        detail:
          type: string
        request_id:
          type: string
  responses:
    Problem:
      description: Request failed
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Problem'

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.