Invoice Attachments
The Attachment Object
A Rutter Invoice Attachment represents a file that can be attached to an invoice. In general we provide attachments data only for attachments that have been created through our POST endpoint. However, there are some platform specific differences.
Platform Differences
Netsuite:
- For POSTs, we will programmatically create a folder in the end user’s Netsuite instance titled “Upload Attachments (DO NOT DELETE)”— please notify the end user not to delete this folder, as all attachments uploaded through our API will be stored here.
- There is a 1:1 relationship for attachments and entities. If you would like the same attachment to be attached to multiple different entities (ie the same receipt attached to a bill and an expense), please make multiple POSTs and we will create duplicates of the file content in the “Upload Attachments (DO NOT DELETE)” folder. The Rutter Id’s and links to download file content will be unique.
Xero:
- We provide historical attachments that were created outside of our API.
Properties
id
stringRequiredThe Rutter ID of the attachment. This can be the same as the Platform ID. This ID is not guaranteed to be unique across all attachment objects for a connection.
platform_id
stringRequiredThe platform specific ID of the attachment.
attached_to_id
stringnullableRequiredThe Rutter ID of the entity linked to the attachment.
file_name
stringRequiredThe file name of the attachment.
file_url
stringRequiredThe Rutter generated URL containing a downloadable version of the attachment.
attached_to_type
stringnullableRequiredThe type of entity linked to the attachment.
created_at
stringRequiredThe ISO 8601 timestamp that the attachment was created.
Note: The following platforms dont't support this field, and may return an empty string:
- Xero
List Invoice Attachments
Request Parameters
access_token
stringqueryRequiredThe access token of the connection.
attached_to_id
stringqueryThe ID of the entity that the attachment is attached to.
cursor
stringqueryThe cursor to use for pagination. Use the value of next_cursor
provided in a previous response.
expand
enumqueryUsed to request inclusion of optional objects.
force_fetch
enumqueryForce a response even if the underlying connection hasn't finished the initial sync.
limit
integerqueryThe number of entities to return. Defaults to 50. Maximum is 500.
updated_at_max
integerqueryUnix Timestamp in milliseconds representing the maximum updated_at datetime to fetch entities from.
updated_at_min
integerqueryUnix Timestamp in milliseconds representing the minimum updated_at datetime to fetch entities from.
Response Body
attachments
arrayRequiredattachments
attributesnext_cursor
stringnullableRequired- QuickBooks
- Netsuite
- Xero
1{
2 "attachments": [
3 {
4 "id": "00000000-0000-0000-0000-000000000000",
5 "platform_id": "12345678",
6 "attached_to_id": "00000000-0000-0000-0000-000000000000",
7 "file_name": "receipt.jpg",
8 "file_url": "https://rutteraccountingattachments.s3.amazonaws.com/00000000-0000-0000-0000-000000000000-receipt.jpg",
9 "attached_to_type": "EXPENSE",
10 "created_at": "2023-01-02T02:34:56.000Z"
11 }
12 ],
13 "next_cursor": "MTY3NDgzMTk0Ml82MDY4ZDI0ZC02NGRmLTRmN2EtYTM0Ny0zN2ZmNjY5MGVmMjU="
14}
Fetch an Invoice Attachment
Request Parameters
id
stringpathRequiredThe Rutter generated unique ID of the attachment.
access_token
stringqueryRequiredThe access token of the connection.
force_fetch
enumqueryForce a response even if the underlying connection hasn't finished the initial sync.
Response Body
attachment
objectRequiredattachment
attributes- QuickBooks
- Netsuite
- Xero
List Attachments for Invoice
Request Parameters
id
stringpathRequiredThe Rutter generated unique ID of the Rutter Entity.
access_token
stringqueryRequiredThe access token of the connection.
force_fetch
enumqueryForce a response even if the underlying connection hasn't finished the initial sync.
Response Body
attachments
arrayRequiredattachments
attributes- QuickBooks
- Netsuite
- Xero
1{
2 "attachments": [
3 {
4 "id": "00000000-0000-0000-0000-000000000000",
5 "platform_id": "12345678",
6 "attached_to_id": "00000000-0000-0000-0000-000000000000",
7 "file_name": "attachment.pdf",
8 "file_url": "/accounting/invoices/00000000-0000-0000-0000-000000000000/attachments/00000000-0000-0000-0000-000000000000/file",
9 "attached_to_type": "INVOICE",
10 "created_at": "2023-01-02T02:34:56.000Z"
11 }
12 ]
13}
Download a Invoice Attachment
Request Parameters
attachmentId
stringpathRequiredThe platform unique ID of the attachment.
id
stringpathRequiredThe Rutter generated unique ID of the object.
access_token
stringqueryRequiredThe access token of the connection.
force_fetch
enumqueryForce a response even if the underlying connection hasn't finished the initial sync.
Response Body
- QuickBooks
- Netsuite
- Xero
Create an Invoice Attachment
For this endpoint, the request body is not application/json, it is multipart/form-data.
Request Parameters
id
stringpathRequiredThe Rutter generated unique ID of the underlying entity type.
access_token
stringqueryRequiredThe access token of the connection.
Request Body
file
stringRequiredThe file content (PDF, JPG, CSV, TXT, etc).
file_name
stringRequiredThe file name of the attachment.
Response Body
Any of:
attachment
objectRequiredattachment
attributesasync_response
objectasync_response
attributeserrors
arrayerrors
attributes- QuickBooks
- Netsuite
- Xero
1{
2 "file": "multipart/form-data",
3 "file_name": "T-shirt Receipt"
4}
1{
2 "attachment": {
3 "id": "00000000-0000-0000-0000-000000000000",
4 "platform_id": "12345678",
5 "attached_to_id": "00000000-0000-0000-0000-000000000000",
6 "file_name": "receipt.jpg",
7 "file_url": "https://rutteraccountingattachments.s3.amazonaws.com/00000000-0000-0000-0000-000000000000-receipt.jpg",
8 "attached_to_type": "EXPENSE",
9 "created_at": "2023-01-02T02:34:56.000Z"
10 }
11}
Have questions?
Contact support for personalized guidance.