Puzzle Attachments API

The Attachments API from Puzzle — 1 operation(s) for attachments.

OpenAPI Specification

puzzle-attachments-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Puzzle Api Accounts Attachments API
  description: Puzzle Api
  version: '0'
servers:
- url: https://staging.southparkdata.com/rest/v0
tags:
- name: Attachments
paths:
  /company/{id}/documents/{entityId}:
    post:
      operationId: createDocument
      summary: Create Attachment for Entity
      description: 'Creates an attachment for a given entity (bill, invoice, transaction, journal entry, or manual journal entry). Pass the entity ID in the URL and the file data in the request body.


        Supported entity prefixes: bil_ (bills), inv_ (invoices), txn_ (transactions), je_ (journal entries), mje_ (manual journal entries)


        Required scope: Depends on entity type - write:bill, write:invoice, write:transaction, or write:journal'
      tags:
      - Attachments
      parameters:
      - name: id
        in: path
        required: true
        description: The company ID
        schema:
          type: string
          minLength: 1
          description: Partner-facing external identifier
      - name: entityId
        in: path
        required: true
        description: The entity ID (e.g., bil_xxx for bills, txn_xxx for transactions, inv_xxx for invoices, je_xxx for journal entries, mje_xxx for manual journal entries)
        schema:
          type: string
          minLength: 1
          description: Partner-facing external identifier
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                documentType:
                  type: string
                  enum:
                  - Receipt
                  - Bill
                  - Invoice
                fileName:
                  type: string
                  minLength: 1
                contentType:
                  type: string
                  minLength: 1
                base64File:
                  type: string
                  minLength: 1
                nativeDocumentId:
                  type: string
                  minLength: 1
              required:
              - documentType
              - fileName
              - contentType
              - base64File
              - nativeDocumentId
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  transactionId:
                    type: string
                    minLength: 1
                    description: Partner-facing external identifier
                    nullable: true
                  manualJournalEntryId:
                    type: string
                    minLength: 1
                    description: Partner-facing external identifier
                    nullable: true
                  journalEntryId:
                    type: string
                    minLength: 1
                    description: Partner-facing external identifier
                    nullable: true
                  billId:
                    type: string
                    minLength: 1
                    description: Partner-facing external identifier
                    nullable: true
                  invoiceId:
                    type: string
                    minLength: 1
                    description: Partner-facing external identifier
                    nullable: true
                  document:
                    type: object
                    properties:
                      id:
                        type: string
                      documentType:
                        type: string
                        enum:
                        - Receipt
                        - Bill
                        - Invoice
                      contentType:
                        type: string
                      downloadInfo:
                        type: object
                        properties:
                          signedUrl:
                            type: string
                          urlExpiresAt:
                            type: string
                            minLength: 1
                            description: ISO 8601 timestamp
                        required:
                        - signedUrl
                        - urlExpiresAt
                    required:
                    - id
                    - documentType
                    - contentType
                    - downloadInfo
                required:
                - transactionId
                - manualJournalEntryId
                - journalEntryId
                - billId
                - invoiceId
                - document