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

idstring

The 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_idstring

The platform specific ID of the attachment.

attached_to_idstringnullable

The Rutter ID of the entity linked to the attachment.

file_namestring

The file name of the attachment.

file_urlstring

The Rutter generated URL containing a downloadable version of the attachment.

attached_to_typestringnullable

The type of entity linked to the attachment.

created_atstring

The ISO 8601 timestamp that the attachment was created.

Note: The following platforms dont't support this field, and may return an empty string:

  • Xero
Endpoints
GET
/accounting/invoices/attachments
GET
/accounting/invoices/attachments/:id
GET
/accounting/invoices/:id/attachments
GET
/accounting/invoices/:id/attachments/:attachmentId/file
POST
/accounting/invoices/:id/attachments

List Invoice Attachments

GEThttps://production.rutterapi.com/versioned/accounting/invoices/attachments

Request Parameters

    access_tokenstringqueryRequired

    The access token of the connection.

    attached_to_idstringqueryOptional

    The ID of the entity that the attachment is attached to.

    cursorstringqueryOptional

    Used to paginate to the next batch of objects. Should be a copy of the next_cursor value from the previous response.

    expandenumqueryOptional

    Include platform specific data (includes additional fields not provided by the Rutter object).

    Must beplatform_data.
    force_fetchenumqueryOptional

    Used to force a response even if the underlying connection has not finished its initial sync.

    One oftrue or false.
    limitintegerqueryOptional

    Used to limit the number of returned objects. Defaults to 50.

    updated_at_maxintegerqueryOptional

    Used to filter objects with a updated_at value less than or equal to the supplied value. Should be a Unix time in milliseconds.

    updated_at_minintegerqueryOptional

    Used to filter objects with a updated_at value greater than or equal to the supplied value. Should be a Unix time in milliseconds.

Response Body

    attachmentsarray
    Show attachments attributes
    next_cursorstringnullable
Support by integration
  • QuickBooks
    QuickBooks
  • NetSuite
    NetSuite
  • Xero
    Xero
  • Zoho Books
    Zoho Books
Example Response Body
JSON
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

GEThttps://production.rutterapi.com/versioned/accounting/invoices/attachments/:id

Request Parameters

    idstringpathRequired

    The Rutter generated unique ID of the attachment.

    access_tokenstringqueryRequired

    The access token of the connection.

    force_fetchenumqueryOptional

    Used to force a response even if the underlying connection has not finished its initial sync.

    One oftrue or false.

Response Body

    attachmentobject
    Show attachment attributes
Support by integration
  • QuickBooks
    QuickBooks
  • NetSuite
    NetSuite
  • Xero
    Xero
  • Zoho Books
    Zoho Books

List Attachments for an Invoice

GEThttps://production.rutterapi.com/versioned/accounting/invoices/:id/attachments

Request Parameters

    idstringpathRequired

    The Rutter generated unique ID of the Rutter Entity.

    access_tokenstringqueryRequired

    The access token of the connection.

    force_fetchenumqueryOptional

    Used to force a response even if the underlying connection has not finished its initial sync.

    One oftrue or false.

Response Body

    attachmentsarray
    Show attachments attributes
Support by integration
  • QuickBooks
    QuickBooks
  • NetSuite
    NetSuite
  • Xero
    Xero
  • Zoho Books
    Zoho Books
Example Response Body
JSON
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 an Invoice Attachment

GEThttps://production.rutterapi.com/versioned/accounting/invoices/:id/attachments/:attachmentId/file

Request Parameters

    attachmentIdstringpathRequired

    The platform unique ID of the attachment.

    idstringpathRequired

    The Rutter generated unique ID of the object.

    access_tokenstringqueryRequired

    The access token of the connection.

    force_fetchenumqueryOptional

    Used to force a response even if the underlying connection has not finished its initial sync.

    One oftrue or false.

Response Body

    Support by integration
    • QuickBooks
      QuickBooks
    • NetSuite
      NetSuite
    • Xero
      Xero
    • Zoho Books
      Zoho Books

    Create an Invoice Attachment

    POSThttps://production.rutterapi.com/versioned/accounting/invoices/:id/attachments

    For this endpoint, the request body is not application/json, it is multipart/form-data.

    Request Parameters

      idstringpathRequired

      The Rutter generated unique ID of the underlying entity type.

      access_tokenstringqueryRequired

      The access token of the connection.

    Request Body

      filestring

      The file content (PDF, JPG, CSV, TXT, etc).

      file_namestring

      The file name of the attachment.

    Response Body

      Any of:

      attachmentobject
      Show attachment attributes
      async_responseobjectOptional
      Show async_response attributes
      errorsarrayOptional
      Show errors attributes
    Support by integration
    • QuickBooks
      QuickBooks
    • NetSuite
      NetSuite
    • Xero
      Xero
    • Zoho Books
      Zoho Books
    Example Request Body
    JSON
    1
    {
    2
    "file": "multipart/form-data",
    3
    "file_name": "T-shirt Receipt"
    4
    }
    Example Response Body
    JSON
    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.

    Contact support