Soldo Transaction Attachments API

The Transaction Attachments API from Soldo — 2 operation(s) for transaction attachments.

Operations 6

GET /business/v2/transactions/{transactionId}/attachments/{attachmentId} Get Transaction Attachment #
PUT /business/v2/transactions/{transactionId}/attachments/{attachmentId} Update Transaction Attachment Metadata #
POST /business/v2/transactions/{transactionId}/attachments/{attachmentId} Confirm Transaction Attachment Upload #
DELETE /business/v2/transactions/{transactionId}/attachments/{attachmentId} Delete Transaction Attachment #
POST /business/v2/transactions/{transactionId}/attachments Upload Transaction Attachment #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/soldo-transaction-attachments-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

soldo-transaction-attachments-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Soldo Business API v2.0 Transaction Attachments API
  description: Soldo Business API v2.0 OpenAPI specification
  version: 5.56.0
servers:
- url: https://api.soldo.com
  description: Production server (using live data)
- url: https://api-demo.soldocloud.net
  description: Sandbox server (using test data)
tags:
- name: Transaction Attachments
paths:
  /business/v2/transactions/{transactionId}/attachments/{attachmentId}:
    get:
      tags:
      - Transaction Attachments
      summary: Get Transaction Attachment
      description: Endpoint to get a specific `TransactionAttachment` by ID.
      operationId: transaction-attachment-get
      parameters:
      - name: transactionId
        in: path
        required: true
        schema:
          type: string
          description: The `Transaction` ID.
          example: 7bf79328-a7ae-4222-aa54-091ff7f429a7
      - name: attachmentId
        in: path
        required: true
        schema:
          type: string
          description: The `TransactionAttachment` ID.
          example: 2d65bd5e-3fdf-4002-b166-bde7fb8863fa
      responses:
        '200':
          description: The returned resource is a single `TransactionAttachment`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionAttachment'
        '404':
          description: One or more resource requested does not exist.
      security:
      - standardAuth:
        - transaction_read
    put:
      tags:
      - Transaction Attachments
      summary: Update Transaction Attachment Metadata
      description: Endpoint to update the `TransactionAttachment` Metadata of by ID.
      operationId: transaction-attachment-metadata-update
      parameters:
      - name: transactionId
        in: path
        required: true
        schema:
          type: string
          description: The `Transaction` ID.
          example: 7bf79328-a7ae-4222-aa54-091ff7f429a7
      - name: attachmentId
        in: path
        required: true
        schema:
          type: string
          description: The `TransactionAttachment` ID.
          example: 2d65bd5e-3fdf-4002-b166-bde7fb8863fa
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateTransactionAttachment'
      responses:
        '200':
          description: The returned resource is a single `TransactionAttachment`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionAttachment'
        '400':
          description: Your request has missing arguments or is malformed.
        '404':
          description: One or more resource requested does not exist.
      security:
      - standardAuth:
        - transaction_write
    post:
      tags:
      - Transaction Attachments
      summary: Confirm Transaction Attachment Upload
      description: After you got the temporary file URL of type `UPLOAD_URL` and the attachment file is uploaded, the upload of the `TransactionAttachment` must be confirmed.
      operationId: transaction-attachment-upload-confirm
      parameters:
      - name: transactionId
        in: path
        required: true
        schema:
          type: string
          description: The `Transaction` ID.
          example: 7bf79328-a7ae-4222-aa54-091ff7f429a7
      - name: attachmentId
        in: path
        required: true
        schema:
          type: string
          description: The `TransactionAttachment` ID.
          example: 2d65bd5e-3fdf-4002-b166-bde7fb8863fa
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                fileName:
                  type: string
                  description: The file name of the attachment.
                  example: invoice87.jpg
                fileType:
                  type: string
                  description: The file type of the attachment.
                  example: PDF
      responses:
        '200':
          description: The returned resource is a single `TransactionAttachment`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionAttachment'
        '400':
          description: Your request has missing arguments or is malformed.
        '404':
          description: One or more resource requested does not exist.
      security:
      - standardAuth:
        - transaction_write
    delete:
      tags:
      - Transaction Attachments
      summary: Delete Transaction Attachment
      description: Endpoint to delete a `TransactionAttachment` by ID.
      operationId: transaction-attachment-delete
      parameters:
      - name: transactionId
        in: path
        required: true
        schema:
          type: string
          description: The `Transaction` ID.
          example: 7bf79328-a7ae-4222-aa54-091ff7f429a7
      - name: attachmentId
        in: path
        required: true
        schema:
          type: string
          description: The `TransactionAttachment` ID.
          example: 2d65bd5e-3fdf-4002-b166-bde7fb8863fa
      responses:
        '204':
          description: No content as result.
      security:
      - standardAuth:
        - transaction_write
  /business/v2/transactions/{transactionId}/attachments:
    get:
      tags:
      - Transaction Attachments
      summary: Search Transaction Attachments
      description: Endpoint to get the list of `TransactionAttachments` of a `Transaction`.
      operationId: transaction-attachment-search
      parameters:
      - name: transactionId
        in: path
        required: true
        schema:
          type: string
          description: The `Transaction` ID.
          example: 7bf79328-a7ae-4222-aa54-091ff7f429a7
      responses:
        '200':
          description: The returned array contains `TransactionAttachment`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionAttachments'
        '404':
          description: One or more resource requested does not exist.
      security:
      - standardAuth:
        - transaction_read
    post:
      tags:
      - Transaction Attachments
      summary: Upload Transaction Attachment
      description: 'Endpoint to upload a `TransactionAttachment` to a `Transaction`.

        The first step is to get a temporary URL where to upload the attachment file.'
      operationId: transaction-attachment-upload
      parameters:
      - name: transactionId
        in: path
        required: true
        schema:
          type: string
          description: The `Transaction` ID.
          example: 7bf79328-a7ae-4222-aa54-091ff7f429a7
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                fileName:
                  type: string
                  description: The file name of the attachment.
                  example: invoice87.jpg
                fileType:
                  type: string
                  description: The file type of the attachment.
                  example: PDF
      responses:
        '200':
          description: The returned resource is a single `TransactionAttachment`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionAttachment'
        '400':
          description: Your request has missing arguments or is malformed.
        '404':
          description: One or more resource requested does not exist.
      security:
      - standardAuth:
        - transaction_write
webhooks:
  attachment_delete:
    post:
      tags:
      - Transaction Attachments
      summary: Transaction Attachment - Attachment Delete
      description: An attachment has been deleted from a `Transaction`.
      operationId: webhook-transactionattachment-attachment-delete
      parameters:
      - name: X-Soldo-Fingerprint
        in: header
        required: true
        schema:
          type: string
          default: '{{fingerprint}}'
          description: '[Webhook authentication](ref:webhook-authentication): `SHA512SUM` of the fingerprint values listed in the fingerprint order for this webhook.'
          example: '{{fingerprint}}'
      - name: X-Soldo-Fingerprint-Order
        in: header
        required: true
        schema:
          type: string
          default: attachmentId, transactionId, fileName
          description: '[Webhook authentication](ref:webhook-authentication): The order of the values used to calculate the fingerprint.'
          example: attachmentId, transactionId, fileName
      - name: X-Soldo-Fingerprint-Signature
        in: header
        required: true
        schema:
          type: string
          default: '{{fingerprint_signature}}'
          description: '[Webhook authentication](ref:webhook-authentication): Signature of the `X-Soldo-Fingerprint`. It must be verified using the [Soldo public key](ref:soldo-public-key).'
          example: '{{fingerprint_signature}}'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AttachmentDeleteEvent'
      responses:
        '200':
          description: Success.
      x-soldo:
        fingerprint-order: attachmentId, transactionId, fileName
  upload_completed:
    post:
      tags:
      - Transaction Attachments
      summary: Transaction Attachment - Upload Completed
      description: An attachment is uploaded to a `Transaction`.
      operationId: webhook-transactionattachment-upload-completed
      parameters:
      - name: X-Soldo-Fingerprint
        in: header
        required: true
        schema:
          type: string
          default: '{{fingerprint}}'
          description: '[Webhook authentication](ref:webhook-authentication): `SHA512SUM` of the fingerprint values listed in the fingerprint order for this webhook.'
          example: '{{fingerprint}}'
      - name: X-Soldo-Fingerprint-Order
        in: header
        required: true
        schema:
          type: string
          default: attachmentId, transactionId, fileName
          description: '[Webhook authentication](ref:webhook-authentication): The order of the values used to calculate the fingerprint.'
          example: attachmentId, transactionId, fileName
      - name: X-Soldo-Fingerprint-Signature
        in: header
        required: true
        schema:
          type: string
          default: '{{fingerprint_signature}}'
          description: '[Webhook authentication](ref:webhook-authentication): Signature of the `X-Soldo-Fingerprint`. It must be verified using the [Soldo public key](ref:soldo-public-key).'
          example: '{{fingerprint_signature}}'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UploadCompletedEvent'
      responses:
        '200':
          description: Success.
      x-soldo:
        fingerprint-order: attachmentId, transactionId, fileName
components:
  schemas:
    TransactionAttachments:
      properties:
        attachments:
          type: array
          items:
            $ref: '#/components/schemas/TransactionAttachment'
    TransactionAttachmentCompressedFile:
      properties:
        file_name:
          type: string
          description: The file name of the compressed attachment.
          example: invoice01_thumb.jpg
        file_extension:
          type: string
          description: The file extension of the compressed attachment.
          example: .jpg
        file_size:
          type: integer
          format: int64
          description: The file size of the compressed attachment in bytes.
          example: 32768
        file_url:
          type: string
          deprecated: true
          description: The Base64 string of the Compressed File URL encrypted by DES in ECB mode, Pkcs7 padding scheme and using Token for key. Deprecated, use `url` instead.
        url:
          type: string
          description: The fileUrl  of the compressed attachment.
        url_type:
          $ref: '#/components/schemas/UrlType'
          description: The URL type (DOWNLOAD_URL to download the attachment; UPLOAD_URL to upload the attachment).
          example: DOWNLOAD_URL
    WebhookEventType:
      type: string
      enum:
      - BusinessTrip
      - Card
      - Contact
      - ExpenseReview
      - Group
      - OnlineAds
      - Order
      - Purchase
      - Subscription
      - Transaction
      - TransactionAttachment
      - Employee
      - Vehicle
      - Wallet
    UpdateTransactionAttachment:
      description: Update `TransactionAttachment` JSON parameters.
      properties:
        read_only:
          type: boolean
          description: true if the attachment is not editable
          example: false
        attachment_type:
          $ref: '#/components/schemas/TransactionAttachmentType'
          description: The type of the attachment
          example: INVOICE
        metadata:
          type: object
          additionalProperties:
            type: string
          description: Generic map of custom metadata
    WebhookEventName:
      type: string
      enum:
      - business_trip_created
      - business_trip_updated
      - business_trip_deleted
      - card_activated
      - card_change_status
      - card_creation
      - card_destroyed
      - card_lost
      - card_replaced
      - card_stolen
      - card_label_updated
      - card_assignee_updated
      - add_resources_card
      - add_resources_member
      - add_resources_wallet
      - create_group
      - delete_group
      - move_resources_card
      - move_resources_member
      - move_resources_wallet
      - remove_resources_card
      - remove_resources_member
      - remove_resources_wallet
      - update_group
      - store_order_completed
      - store_order_placed
      - balanced_transfer
      - billing
      - card_authorization
      - conversion
      - customer_care_deposit
      - customer_care_withdraw
      - edit_tag
      - inbound_payment
      - inbound_payment_reversal
      - internal_transfer
      - joule_feed
      - load_failed
      - load_money
      - recurring_billing
      - scheduled_transfer
      - transaction_adjustment
      - unload_money
      - wiretransfer
      - upload_completed
      - attachment_delete
      - new_user
      - user_status_changed
      - user_updated
      - wallet_created
      - wallet_deleted
      - vehicle_create
      - vehicle_update
      - vehicle_delete
      - purchase_create
      - purchase_update
      - purchase_delete
      - purchase_redeem_card
      - created_expense_configuration
      - disabled_expense_configuration
      - enabled_expense_configuration
      - updated_expense_configuration
      - completed_transactions_import
      - updated_transaction
      - change_expense_type
      - subscription_activated
      - subscription_created
      - subscription_updated
      - subscription_deleted
      - subscription_assignee_added
      - subscription_assignee_removed
      - online_ads_activated
      - online_ads_created
      - online_ads_updated
      - online_ads_deleted
      - online_ads_assignee_added
      - online_ads_assignee_removed
      - transaction_created
      - transaction_modified
      - transaction_deleted
      - transaction_business_trip_linked
      - transaction_business_trip_unlinked
      - contact_created
      - contact_updated
      - contact_deleted
    AttachmentDeleteEvent:
      properties:
        event_uuid:
          type: string
          description: The webhook unique ID.
          example: 7bf79328-a7ae-4222-aa54-091ff7f429a7
        event_type:
          $ref: '#/components/schemas/WebhookEventType'
          default: TransactionAttachment
          description: The webhook event type.
          example: TransactionAttachment
        event_name:
          $ref: '#/components/schemas/WebhookEventName'
          default: attachment_delete
          description: The webhook event name.
          example: attachment_delete
        company_account_id:
          type: string
          description: The company account ID.
          example: XMPL1234
        data:
          $ref: '#/components/schemas/TransactionAttachment'
          description: The webhook `TransactionAttachment` data.
        subscription_id:
          type: string
          description: The webhook subscription ID used to route this event.
          example: 2d65bd5e-3fdf-4002-b166-bde7fb8863fa
    UploadCompletedEvent:
      properties:
        event_uuid:
          type: string
          description: The webhook unique ID.
          example: 7bf79328-a7ae-4222-aa54-091ff7f429a7
        event_type:
          $ref: '#/components/schemas/WebhookEventType'
          default: TransactionAttachment
          description: The webhook event type.
          example: TransactionAttachment
        event_name:
          $ref: '#/components/schemas/WebhookEventName'
          default: upload_completed
          description: The webhook event name.
          example: upload_completed
        company_account_id:
          type: string
          description: The company account ID.
          example: XMPL1234
        data:
          $ref: '#/components/schemas/TransactionAttachment'
          description: The webhook `TransactionAttachment` data.
        subscription_id:
          type: string
          description: The webhook subscription ID used to route this event.
          example: 2d65bd5e-3fdf-4002-b166-bde7fb8863fa
    UrlType:
      type: string
      enum:
      - DOWNLOAD_URL
      - UPLOAD_URL
      - UPLOAD_COMPLETED
      - DELETE
      - THUMBNAILS_DOWNLOAD_URL
      - UPDATE_METADATA
    TransactionAttachment:
      properties:
        attachment_id:
          type: string
          description: The `TransactionAttachment` ID.
          example: 2d65bd5e-3fdf-4002-b166-bde7fb8863fa
        transaction_id:
          type: string
          description: The `Transaction` ID the file is attached to.
          example: 7bf79328-a7ae-4222-aa54-091ff7f429a7
        file_name:
          type: string
          description: The file name of the attachment.
          example: invoice01.jpg
        file_extension:
          type: string
          description: The file extension of the attachment.
          example: .jpg
        file_size:
          type: integer
          format: int64
          description: The file size in bytes.
          example: 32768
        url:
          type: string
          description: The url of the attachment.
        file_url:
          type: string
          deprecated: true
          description: The Base64 string of the File URL encrypted by DES in ECB mode, Pkcs7 padding scheme and using Token for key. Deprecated, use `url` instead.
        url_type:
          $ref: '#/components/schemas/UrlType'
          description: The URL type (DOWNLOAD_URL to download the attachment; UPLOAD_URL to upload the attachment).
          example: DOWNLOAD_URL
        attachment_type:
          $ref: '#/components/schemas/TransactionAttachmentType'
          description: The type of attachment.
          example: INVOICE
        read_only:
          type: boolean
          description: It determines whether the attachment can be removed or updated.
        content_type:
          type: string
          description: 'The type of the `TransactionAttachment` content (default: ''binary/octet-stream'').'
          example: binary/octet-stream
        upload_time:
          type: string
          description: The date of upload.
          example: '2017-06-01T12:48:40Z'
        attachment_user_id:
          type: string
          description: The ID of the `User` that uploaded the attachment.
        upload_user_channel:
          $ref: '#/components/schemas/UploadUserChannel'
          description: The channel used to upload the attachment ).
        compressed_file:
          $ref: '#/components/schemas/TransactionAttachmentCompressedFile'
          description: The Compressed version of the attachment, Soldo automatically generates a compressedversion of any image type (e.g. `JPG`, `JPEG`, `PNG`) attachment having a size greater than `2.5MB`.
        metadata:
          type: object
          additionalProperties:
            type: string
          description: The metadata of the attachment.
        last_update_time:
          type: string
          description: The date and time when the `TransactionAttachment` was last updated.
          example: '2017-06-01T12:48:40Z'
    TransactionAttachmentType:
      type: string
      enum:
      - RECEIPT
      - INVOICE
      - MAIL
      - OTHER
      - PURCHASE_REQUEST
      - POP_AUTH
      - POP_SETTLEMENT
    UploadUserChannel:
      type: string
      enum:
      - WEB
      - MOBILE
      - BO_USER
      - business
      - BAPI
      - PAPI
      - OTHER
  securitySchemes:
    standardAuth:
      type: oauth2
      description: This API uses OAuth 2 with the "Client Credentials" grant flow.
      flows:
        clientCredentials:
          tokenUrl: https://api.soldo.com/oauth/authorize
          refreshUrl: https://api.soldo.com/oauth/refresh
          scopes:
            address_read: Can read address details.
            address_write: Can update address details.
            card_read: Can read card details.
            card_write: Can change card details.
            company_read: Can read company details.
            company_write: Can change company details.
            contact_read: Can read contact details.
            contact_write: Can change contact details.
            employee_read: Can read employee details.
            employee_write: Can change employee details.
            expense_category_read: Can read expense category details.
            expense_category_write: Can change expense category details.
            expense_report_read: Can read expense report details.
            expense_report_write: Can change expense report details.
            expense_review_read: Can read expense review status.
            expense_review_write: Can change expense review status.
            group_read: Can read group details.
            group_write: Can change groups details.
            online_ads_read: Can read online ads details.
            online_ads_write: Can change online ads details.
            payment_read: Can read payment details.
            payment_write: Can change payment details.
            purchase_read: Can read purchase details.
            purchase_write: Can change purchase details.
            refueling_read: Can read refueling details.
            refueling_write: Can change refueling details.
            resource_set_read: Can read resource set details.
            resource_set_write: Can change resource set details.
            role_read: Can read role details.
            statement_read: Can read statement details.
            subscription_read: Can read subscription details.
            subscription_write: Can change subscription details.
            tag_read: Can read tags.
            tag_write: can change tags.
            tax_rate_read: Can read vat rate details.
            tax_rate_write: Can change vat rate details.
            transaction_read: Can read transaction details.
            transaction_write: Can change transaction details.
            vehicle_read: Can read vehicle details.
            vehicle_write: Can change vehicle details.
            wallet_read: Can read wallet details.
            wallet_write: Can change wallet details.
            webhook_subscription_read: Can read webhook subscription details.
            webhook_subscription_write: Can change webhook subscription details.
x-readme:
  hidden: false