Soldo Transaction Attachments API
The Transaction Attachments API from Soldo — 2 operation(s) for transaction attachments.
The Transaction Attachments API from Soldo — 2 operation(s) for transaction attachments.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/soldo-transaction-attachments-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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