Attachments

An attachment object contains an array of one more files that are stored in Sage Intacct. You can attach multiple files of any type to a transaction using an attachment, such as scanned images, spreadsheets, and word-processor documents. For example, you might add ten scanned images to a single attachment for a bill. You can also add attachments to some other objects, such as customers, vendors, and employees.

It's important to note that each transaction or object can only have one attachment assigned to it. After you add an attachment, you can add or delete individual files to and from the attachment, ensuring your supporting documents are always up-to-date.

All attachments are stored in attachment folders. The folder to hold an attachment must exist before you create the attachment. You can also move an attachment to a different folder after it's created.

List attachments

get/objects/company-config/attachment

Returns a collection with a key, ID, and link for each attachment. This operation is mostly for use in testing; use the query service to find attachments that meet certain criteria and specify the properties that are returned.

SecurityOAuth2
Responses
200

OK

400

Bad Request

Request samples
Response samples
application/json
{
  • "ia::result": [
    • {
      • "key": "8",
      • "id": "PROJ-159",
      • "href": "/objects/company-config/attachment/8"
      },
    • {
      • "key": "1",
      • "id": "INVOICES",
      • "href": "/objects/company-config/attachment/1"
      },
    • {
      • "key": "2",
      • "id": "2024 Taxes",
      • "href": "/objects/company-config/attachment/2"
      }
    ],
  • "ia::meta": {
    • "totalCount": 3,
    • "start": 1,
    • "pageSize": 100,
    • "next": null,
    • "previous": null
    }
}

Create an attachment

post/objects/company-config/attachment

Creates a new attachment in a specified folder. The folder must exist before you create the attachment. You can add files when you create an attachment, or use a PATCH request to add files later.

SecurityOAuth2
Request
Request Body schema: application/json
required

Attachment to create

id
required
string

Unique ID for the attachment container.

Example: "2024 Taxes"
name
string

Brief name for the attachment container.

Example: "2022 tax forms"
description
string

Description of the attachment container.

Example: "February invoices"
object

Folder that this attachment is in.

key
string

Unique key of the folder.

Example: "4"
id
string

Unique name of the folder.

Example: "SupDocFolder1"
Array of objects

Files contained in the attachment.

Array
name
string

File name with extension.

Example: "02-28-2022-invoice.txt"
data
string <base64zip>

Attached file data, Base64 encoded.

Example: "Y2V2YSwgYWx0Y2V2YQ0Kc2kgaW5jYSBjZXZh"
Responses
201

Created

400

Bad Request

Request samples
application/json
{
  • "id": "2024 Tax",
  • "name": "2024 Tax Forms",
  • "folder": {
    • "key": "27"
    }
}
Response samples
application/json
{
  • "ia::result": {
    • "key": "17",
    • "id": "2022 Tax",
    • "href": "/objects/company-config/attachment/17"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Get an attachment

get/objects/company-config/attachment/{key}

Returns detailed information for a specified attachment, including Base64-encoded versions of all files in the attachment.

SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned key for the attachment.

Example: 43
Responses
200

OK

400

Bad Request

Request samples
Response samples
application/json
{
  • "ia::result": {
    • "key": "17",
    • "id": "INV-V1",
    • "name": "Vendor 1 Invoices",
    • "folder": {
      • "id": "Invoices",
      • "key": "1",
      • "href": "/objects/company-config/folder/1"
      },
    • "description": "Invoices for Vendor 1",
    • "audit": {
      • "createdBy": "matthew.mikawber",
      • "modifiedBy": "matthew.mikawber",
      • "modifiedDate": "2023-05-25",
      • "createdDate": "2023-05-25"
      },
    • "files": [
      • {
        }
      ],
    • "href": "/objects/company-config/attachment/17"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Update an attachment

patch/objects/company-config/attachment/{key}

Updates an existing attachment by setting field values. Any fields not provided remain unchanged. Use this operation to add, update, and delete files in attachments.

SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned key for the attachment.

Example: 43
Request Body schema: application/json
name
string

Brief name for the attachment container.

Example: "2022 tax forms"
description
string

Description of the attachment container.

Example: "February invoices"
object

Folder that this attachment is in.

key
string

Unique key of the folder.

Example: "4"
id
string

Unique name of the folder.

Example: "SupDocFolder1"
Array of objects

Files contained in the attachment.

Array
name
string

File name with extension.

Example: "02-28-2022-invoice.txt"
data
string <base64zip>

Attached file data, Base64 encoded.

Example: "Y2V2YSwgYWx0Y2V2YQ0Kc2kgaW5jYSBjZXZh"
Responses
200

OK

400

Bad Request

Request samples
application/json
{
  • "files": [
    • {
      • "name": "short file 2.txt",
      • "data": "aGVsbG8gd29ybGQhIHRoaXMgaXMgYmFzZTY0IGVuY29kZWQgZGF0YQ=="
      }
    ]
}
Response samples
application/json
{
  • "ia::result": {
    • "key": "17",
    • "id": "attach-02",
    • "href": "/objects/company-config/attachment/17"
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 1,
    • "totalError": 0
    }
}

Delete an attachment

delete/objects/company-config/attachment/{key}

Deletes an attachment and all files that it contains. You must first remove the attachment from any objects or transactions.

SecurityOAuth2
Request
path Parameters
key
required
string

System-assigned key for the attachment.

Example: 43
Responses
204

No Content

400

Bad Request

Request samples
Response samples
application/json
{
  • "ia::result": {
    • "ia::error": {
      • "code": "invalidRequest",
      • "message": "A POST request requires a payload",
      • "errorId": "REST-1028",
      • "additionalInfo": {
        },
      • "supportId": "Kxi78%7EZuyXBDEGVHD2UmO1phYXDQAAAAo"
      }
    },
  • "ia::meta": {
    • "totalCount": 1,
    • "totalSuccess": 0,
    • "totalError": 1
    }
}