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

# Upload an attachment

> Attaches a receipt or supporting document to an already-synced transaction. Max 10MB; accepts jpg, jpeg, png, gif, pdf, doc, docx, xls, xlsx, txt, csv.



## OpenAPI

````yaml /openapi/accounting.json post /connections/{connectionId}/syncs/{syncId}/transactions/{transactionId}/attachments
openapi: 3.1.0
info:
  title: Sync2Books Accounting API
  version: 1.0.0
  description: >-
    Write categorized expenses, bills, invoices, and payments to your customers'
    accounting systems (QuickBooks Online, Xero, Sage, Dynamics 365 Business
    Central, Odoo) through one API.


    This is a **separate product** from the [Sync2Books Compliance API
    (eTIMS)](/etims-overview) — use this one to sync bookkeeping data to an
    accounting system; use that one for KRA tax compliance in Kenya. A company
    can use either, both, or neither.


    Writes are **asynchronous**: most create endpoints queue the record and
    return a `syncBatchId` you confirm via the [Sync](#tag/Sync) endpoints — see
    [The sync model](/concepts/sync-model).
servers:
  - url: https://api.sync2books.com
    description: Production
  - url: https://sandbox-api.sync2books.com
    description: Sandbox (coming soon)
security:
  - ApiKeyAuth: []
tags:
  - name: Companies
    description: Your customers — the entities you sync data for.
  - name: Expenses
    description: Categorized expenses, receipts, and payments.
  - name: Bills
    description: Accounts-payable documents (money you owe suppliers).
  - name: Invoices
    description: Accounts-receivable documents (money customers owe you).
  - name: Bill Payments
    description: Payments applied against one or more bills.
  - name: Attachments
    description: Receipts and supporting documents on a synced transaction.
  - name: Sync
    description: Track and retry the asynchronous batches every write creates.
paths:
  /connections/{connectionId}/syncs/{syncId}/transactions/{transactionId}/attachments:
    post:
      tags:
        - Attachments
      summary: Upload an attachment
      description: >-
        Attaches a receipt or supporting document to an already-synced
        transaction. Max 10MB; accepts jpg, jpeg, png, gif, pdf, doc, docx, xls,
        xlsx, txt, csv.
      parameters:
        - $ref: '#/components/parameters/ConnectionId'
        - name: syncId
          in: path
          required: true
          schema:
            type: string
            format: uuid
        - name: transactionId
          in: path
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
                - file
              properties:
                file:
                  type: string
                  format: binary
                note:
                  type: string
                includeOnSend:
                  type: boolean
                  description: >-
                    Whether to include this attachment when the document is
                    sent/emailed from the accounting system.
      responses:
        '201':
          description: Uploaded
        '400':
          description: Invalid file, or the transaction isn't synced yet
        '404':
          description: Connection, sync, or transaction not found
components:
  parameters:
    ConnectionId:
      name: connectionId
      in: path
      required: true
      schema:
        type: string
        format: uuid
      description: The connection to the accounting system to write through.
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-API-Key
      description: >-
        Your application's API key (`sk_development_…` or `sk_production_…`). An
        optional `X-Signature` / `X-Timestamp` HMAC pair may additionally be
        sent for stronger security — see
        [Authentication](/concepts/authentication).

````

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