---
title: "Upload transfer attachment"
method: POST
path: "/companies/{companyId}/connections/{connectionId}/push/transfers/{transferId}/attachment"
tags: ["Transfers"]
---

# Upload transfer attachment

`POST /companies/{companyId}/connections/{connectionId}/push/transfers/{transferId}/attachment`

## Request

- Base URL: `https://api.codat.io`
- URL: `https://api.codat.io/companies/{companyId}/connections/{connectionId}/push/transfers/{transferId}/attachment`
- Auth: API key in header `Authorization`

The *Upload transfer attachment* endpoint uploads an attachment and assigns it against a specific `transferId`.

[Transfers](https://docs.codat.io/accounting-api#/schemas/Transfer) are issued by a supplier for the purpose of recording transfer.

**Integration-specific behavior**

For more details on supported file types by integration see [Attachments](https://docs.codat.io/accounting-api#/schemas/Attachment).

## Request body `multipart/form-data`

- AttachmentUpload
  - `file` CodatFile, required (unresolved $ref)

## Response `200`

Success

## Other responses

- `400`: The request made is not valid.
- `401`: Your API request was not properly authorized.
- `402`: An account limit has been exceeded. The type of limit is described in the error property: - You have exceeded the 50-company limit that applies to a Free plan. Delete any companies you no longer need and retry the request. - The requested sync schedule is not allowed. You requested an hourly sync schedule but this functionality is not included in the Free plan. - Your Free account is older than 365 days and has expired. Contact support@codat.io.
- `403`: You are using an outdated API key or a key not associated with that resource.
- `404`: One or more of the resources you referenced could not be found. This might be because your company or data connection id is wrong, or was already deleted.
- `429`: Too many requests were made in a given amount of time. Wait a short period and then try again.
- `500`: There is a problem with our server. Please try again later.
- `503`: The Codat API is temporarily offline for maintenance. Please try again later.

## Changes

- **2024-02-13** `4bfab0afa6ca`: 8 info
  - added the optional property `validation` to the response with the `400` status
  - added the optional property `validation` to the response with the `401` status
  - added the optional property `validation` to the response with the `402` status
  - added the optional property `validation` to the response with the `403` status
  - …4 more
- **2023-12-15** `ba6ef154fd48`: 2 breaking
  - added the new required request property `file`
  - the request's body type changed from `string` to `object`, and format from `binary` to no format
- **2023-10-23** `948b47a54450`: 5 info
  - added the non-success response with the status `400`
  - added the non-success response with the status `402`
  - added the non-success response with the status `403`
  - added the non-success response with the status `500`
  - …1 more

[Operation history](https://skmtc.dev/codatio/apis/accounting-api/changes/companies/:companyId/connections/:connectionId/push/transfers/:transferId/attachment/post.md)

---

[API](https://skmtc.dev/codatio/apis/accounting-api.md) - [All operations](https://skmtc.dev/codatio/apis/accounting-api/llms.txt) - [OpenAPI document](https://skmtc.dev/codatio/apis/accounting-api/revisions/21d41189c461?raw)
