The Expense object

A Rutter Expense represents a purchase made by a business entity via prepaid card, credit card, bank, or other asset. Every expense is linked to a credit Account and a Vendor.

The expense line item contains information regarding the items purchased and accounts affected in the expense. Every expense line item is linked to a debit Account and optionally linked tracking categories like Classes, Locations, and Departments.

Files can be attached to Rutter Expenses in the form of Rutter Attachments.

Properties

idstring

The Rutter generated unique ID of the expense.

platform_idstring

The platform specific ID of the expense.

account_idstringnullable

The Rutter ID of the Account linked to the expense. Represents the account being credited.

subsidiary_idstringnullable

The Rutter ID of the Subsidiary linked to the expense. This feature is currently only supported on NetSuite.

vendor_idstringnullable

The Rutter ID of the Vendor linked to the expense.

transaction_datestring

The ISO 8601 timestamp that the expense was created.

currency_codeenum

The ISO 4217 currency code of the expense.

One ofAEDAFNALLAMDANGAOAARSAUDAWGAZNBAMBBDBDTBGNBHDBIFBMDBNDBOBBOVBRLBSDBTNBWPBYRBZDCADCDFCHECHFCHWCLFCLPCNYCOPCOUCRCCUCCUPCVECZKDJFDKKDOPDZDEGPERNETBEURFJDFKPGBPGELGHSGIPGMDGNFGTQGYDHKDHNLHRKHTGHUFIDRILSINRIQDIRRISKJMDJODJPYKESKGSKHRKMFKPWKRWKWDKYDKZTLAKLBPLKRLRDLSLLTLLVLLYDMADMDLMGAMKDMMKMNTMOPMROMURMVRMWKMXNMXVMYRMZNNADNGNNIONOKNPRNZDOMRPABPENPGKPHPPKRPLNPYGQARRONRSDRUBRWFSARSBDSCRSDGSEKSGDSHPSLLSOSSRDSSPSTDSYPSZLTHBTJSTMTTNDTOPTRYTTDTWDTZSUAHUGXUSDUSNUSSUYIUYUUYWUZSVEFVNDVUVWSTXAFXAGXAUXBAXBBXBCXBDXCDXDRXFUXOFXPDXPFXPTXTSXXXYERZAR, or ZMW.
expense_typeenum

The type of expense.

One ofexpense or refund.
currency_ratenumberoptional

The exchange rate between the currency of the expense and the business default currency.

memostringnullable

The memo of the expense.

line_itemsarray

An array of line items associated with the expense.

Show line_items attributes
created_atstringnullable

The ISO 8601 timestamp that the expense was created.

updated_atstringnullable

The ISO 8601 timestamp that the expense was last updated.

platform_dataobjectoptional

The raw platform data corresponding to the Rutter object.

Show platform_data attributes
Example Expense Object
{
  "id": "00000000-0000-0000-0000-000000000000",
  "platform_id": "12345678",
  "account_id": "00000000-0000-0000-0000-000000000000",
  "subsidiary_id": "00000000-0000-0000-0000-000000000000",
  "vendor_id": "00000000-0000-0000-0000-000000000000",
  "transaction_date": "2023-01-02T02:34:56.000Z",
  "currency_code": "USD",
  "expense_type": "expense",
  "memo": "For a Rutter shirt.",
  "line_items": [
    {
      "account_id": "00000000-0000-0000-0000-000000000000",
      "class_id": "00000000-0000-0000-0000-000000000000",
      "customer_id": "00000000-0000-0000-0000-000000000000",
      "department_id": "00000000-0000-0000-0000-000000000000",
      "location_id": "00000000-0000-0000-0000-000000000000",
      "tax_rate_id": "00000000-0000-0000-0000-000000000000",
      "total_amount": 12.34,
      "description": "Rutter shirt"
    }
  ],
  "created_at": "2023-01-02T02:34:56.000Z",
  "updated_at": "2023-01-02T02:34:56.000Z",
  "platform_data": {
    "id": 123,
    "data": "Varies by platform"
  }
}

List Expenses

GET /accounting/expenses
Supported for: Dynamics 365NetSuiteQuickBooksQuickBooks DesktopSage IntacctXeroZoho Books

Request Parameters

    access_tokenstringquery

    The access token of the connection.

    cursorstringoptionalquery

    The cursor to use for pagination. This value is passed in from next_cursor field in a previous request.

    expandenumoptionalquery

    Used to request inclusion of optional objects.

    Can beplatform_data.
    expense_typeenumoptionalquery

    Filter results on the supplied expense type. Returns only expenses if not provided.

    One ofexpense or refund.
    force_fetchenumoptionalquery

    Force a response even if the underlying connection hasn't finished the initial sync.

    One oftrue or false.
    limitintegeroptionalquery

    The limit on the number of entities returned.

    updated_at_maxintegeroptionalquery

    Unix Timestamp in milliseconds representing the maximum updated_at datetime to fetch entities from.

    updated_at_minintegeroptionalquery

    Unix Timestamp in milliseconds representing the minimum updated_at datetime to fetch entities from.

Response Body

    connectionobject
    Show connection attributes
    expensesarray
    Show expenses attributes
    next_cursorstringnullableoptional
Example Response Body
{
  "connection": {
    "id": "00000000-0000-0000-0000-000000000000",
    "orgId": "00000000-0000-0000-0000-000000000000",
    "platform": "NETSUITE"
  },
  "expenses": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "platform_id": "12345678",
      "account_id": "00000000-0000-0000-0000-000000000000",
      "subsidiary_id": "00000000-0000-0000-0000-000000000000",
      "vendor_id": "00000000-0000-0000-0000-000000000000",
      "transaction_date": "2023-01-02T02:34:56.000Z",
      "currency_code": "USD",
      "expense_type": "expense",
      "memo": "For a Rutter shirt.",
      "line_items": [
        {
          "account_id": "00000000-0000-0000-0000-000000000000",
          "class_id": "00000000-0000-0000-0000-000000000000",
          "customer_id": "00000000-0000-0000-0000-000000000000",
          "department_id": "00000000-0000-0000-0000-000000000000",
          "location_id": "00000000-0000-0000-0000-000000000000",
          "tax_rate_id": "00000000-0000-0000-0000-000000000000",
          "total_amount": 12.34,
          "description": "Rutter shirt"
        }
      ],
      "created_at": "2023-01-02T02:34:56.000Z",
      "updated_at": "2023-01-02T02:34:56.000Z",
      "platform_data": {
        "id": 123,
        "data": "Varies by platform"
      }
    }
  ],
  "next_cursor": "MTY3NDgzMTk0Ml82MDY4ZDI0ZC02NGRmLTRmN2EtYTM0Ny0zN2ZmNjY5MGVmMjU="
}

Fetch an Expense

GET /accounting/expenses/:id
Supported for: Dynamics 365NetSuiteQuickBooksQuickBooks DesktopSage IntacctXeroZoho Books

Request Parameters

    idstringpath

    The Rutter generated unique ID of the object.

    access_tokenstringquery

    The access token of the connection.

    force_fetchenumoptionalquery

    Force a response even if the underlying connection hasn't finished the initial sync.

    One oftrue or false.

Response Body

    connectionobject
    Show connection attributes
    expenseobject
    Show expense attributes
Example Response Body
{
  "connection": {
    "id": "00000000-0000-0000-0000-000000000000",
    "orgId": "00000000-0000-0000-0000-000000000000",
    "platform": "NETSUITE"
  },
  "expense": {
    "id": "00000000-0000-0000-0000-000000000000",
    "platform_id": "12345678",
    "account_id": "00000000-0000-0000-0000-000000000000",
    "subsidiary_id": "00000000-0000-0000-0000-000000000000",
    "vendor_id": "00000000-0000-0000-0000-000000000000",
    "transaction_date": "2023-01-02T02:34:56.000Z",
    "currency_code": "USD",
    "expense_type": "expense",
    "memo": "For a Rutter shirt.",
    "line_items": [
      {
        "account_id": "00000000-0000-0000-0000-000000000000",
        "class_id": "00000000-0000-0000-0000-000000000000",
        "customer_id": "00000000-0000-0000-0000-000000000000",
        "department_id": "00000000-0000-0000-0000-000000000000",
        "location_id": "00000000-0000-0000-0000-000000000000",
        "tax_rate_id": "00000000-0000-0000-0000-000000000000",
        "total_amount": 12.34,
        "description": "Rutter shirt"
      }
    ],
    "created_at": "2023-01-02T02:34:56.000Z",
    "updated_at": "2023-01-02T02:34:56.000Z",
    "platform_data": {
      "id": 123,
      "data": "Varies by platform"
    }
  }
}

Create an Expense

POST /accounting/expenses
Supported for: Dynamics 365NetSuiteQuickBooksQuickBooks DesktopSage IntacctXeroZoho Books

Request Parameters

    access_tokenstringquery

    The access token of the connection.

Request Body

    expenseobject
    Show expense attributes

Response Body

    Any of:

    expenseobject
    Show expense attributes
    async_responseobjectoptional
    Show async_response attributes
    errorsarrayoptional
    Show errors attributes
Example Request Body
{
  "expense": {
    "account_id": "00000000-0000-0000-0000-000000000000",
    "subsidiary_id": "00000000-0000-0000-0000-000000000000",
    "vendor_id": "00000000-0000-0000-0000-000000000000",
    "transaction_date": "2023-01-02T02:34:56.000Z",
    "currency_code": "USD",
    "expense_type": "expense",
    "currency_rate": 1,
    "memo": "For a Rutter shirt.",
    "line_items": [
      {
        "account_id": "00000000-0000-0000-0000-000000000000",
        "class_id": "00000000-0000-0000-0000-000000000000",
        "customer_id": "00000000-0000-0000-0000-000000000000",
        "department_id": "00000000-0000-0000-0000-000000000000",
        "location_id": "00000000-0000-0000-0000-000000000000",
        "total_amount": 12.34,
        "description": "For a Rutter shirt."
      }
    ]
  }
}
Example Response Body
{
  "expense": {
    "id": "00000000-0000-0000-0000-000000000000",
    "platform_id": "12345678",
    "account_id": "00000000-0000-0000-0000-000000000000",
    "subsidiary_id": "00000000-0000-0000-0000-000000000000",
    "vendor_id": "00000000-0000-0000-0000-000000000000",
    "transaction_date": "2023-01-02T02:34:56.000Z",
    "currency_code": "USD",
    "expense_type": "expense",
    "memo": "For a Rutter shirt.",
    "line_items": [
      {
        "account_id": "00000000-0000-0000-0000-000000000000",
        "class_id": "00000000-0000-0000-0000-000000000000",
        "customer_id": "00000000-0000-0000-0000-000000000000",
        "department_id": "00000000-0000-0000-0000-000000000000",
        "location_id": "00000000-0000-0000-0000-000000000000",
        "tax_rate_id": "00000000-0000-0000-0000-000000000000",
        "total_amount": 12.34,
        "description": "Rutter shirt"
      }
    ],
    "created_at": "2023-01-02T02:34:56.000Z",
    "updated_at": "2023-01-02T02:34:56.000Z",
    "platform_data": {
      "id": 123,
      "data": "Varies by platform"
    }
  }
}

Update an Expense

PATCH /accounting/expenses/:id
Supported for: QuickBooks

All fields are conditionally required. This means that if a field value is provided, that field will take the updated value. If the field is not provided, the existing value will persist.

Request Parameters

    idstringpath

    The Rutter generated unique ID of the object.

    access_tokenstringquery

    The access token of the connection.

Request Body

    expenseobject
    Show expense attributes

Response Body

    Any of:

    expenseobject
    Show expense attributes
    async_responseobjectoptional
    Show async_response attributes
    errorsarrayoptional
    Show errors attributes
Example Request Body
{
  "expense": {
    "account_id": "00000000-0000-0000-0000-000000000000"
  }
}
Example Response Body
{
  "expense": {
    "id": "00000000-0000-0000-0000-000000000000",
    "platform_id": "12345678",
    "account_id": "00000000-0000-0000-0000-000000000000",
    "subsidiary_id": "00000000-0000-0000-0000-000000000000",
    "vendor_id": "00000000-0000-0000-0000-000000000000",
    "transaction_date": "2023-01-02T02:34:56.000Z",
    "currency_code": "USD",
    "expense_type": "expense",
    "memo": "For a Rutter shirt.",
    "line_items": [
      {
        "account_id": "00000000-0000-0000-0000-000000000000",
        "class_id": "00000000-0000-0000-0000-000000000000",
        "customer_id": "00000000-0000-0000-0000-000000000000",
        "department_id": "00000000-0000-0000-0000-000000000000",
        "location_id": "00000000-0000-0000-0000-000000000000",
        "tax_rate_id": "00000000-0000-0000-0000-000000000000",
        "total_amount": 12.34,
        "description": "Rutter shirt"
      }
    ],
    "created_at": "2023-01-02T02:34:56.000Z",
    "updated_at": "2023-01-02T02:34:56.000Z",
    "platform_data": {
      "id": 123,
      "data": "Varies by platform"
    }
  }
}

Create an Expense Refund

POST /accounting/expenses/refunds

Endpoint Removed in Version 2023-03-14

The endpoint Create an Expense Refund (POST/accounting/expenses/refunds) was removed in version 2023-03-14. This endpoint has been removed in favor of the `/accounting/expenses` endpoint. To create a new expense refund, use the `POST /accounting/expenses` endpoint and set the `expense_type` field to `refund`.