Expenses

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_idstring

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

customer_idstringnullableOptional

The Rutter ID of the Customer linked to the expense. This is used when expenses should be marked as billable to customers. Supported for Zoho Books.

subsidiary_idstringnullable

The Rutter ID of the Subsidiary linked to the expense. Supported for NetSuite.

vendor_idstringnullable

The Rutter ID of the Vendor linked to the expense.

expense_datestringnullable

The ISO 8601 timestamp that the expense was created.

currency_ratenumberOptional

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

memostringnullable

The memo of the expense.

currency_codeenumnullableOptional

The ISO 4217 currency code of the expense.

One ofAEDAFNALLAMDANGAOAARSAUDAWGAZNBAMBBDBDTBGNBHDBIFBMDBNDBOBBOVBRLBSDBTNBWPBYRBZDCADCDFCHECHFCHWCLFCLPCNYCOPCOUCRCCUCCUPCVECZKDJFDKKDOPDZDEGPERNETBEURFJDFKPGBPGELGHSGIPGMDGNFGTQGYDHKDHNLHRKHTGHUFIDRILSINRIQDIRRISKJMDJODJPYKESKGSKHRKMFKPWKRWKWDKYDKZTLAKLBPLKRLRDLSLLTLLVLLYDMADMDLMGAMKDMMKMNTMOPMROMURMVRMWKMXNMXVMYRMZNNADNGNNIONOKNPRNZDOMRPABPENPGKPHPPKRPLNPYGQARRONRSDRUBRWFSARSBDSCRSDGSEKSGDSHPSLLSOSSRDSSPSTDSVCSYPSZLTHBTJSTMTTNDTOPTRYTTDTWDTZSUAHUGXUSDUSNUSSUYIUYUUYWUZSVEFVNDVUVWSTXAFXAGXAUXBAXBBXBCXBDXCDXDRXFUXOFXPDXPFXPTXTSXXXYERZARZMW, or null.
line_itemsarray

An array of line items associated with the expense.

Show line_items attributes
created_atstringfilterablenullable

The ISO 8601 timestamp that the expense was created.

updated_atstringfilterablenullable

The ISO 8601 timestamp that the expense was last updated.

last_synced_atstringfilterable

The ISO 8601 timestamp when the expense was last synced by Rutter.

platform_urlstringnullable

A URL pointing to the object in the underlying platform. When no URL exists for the specific object, the value may be a larger URL containing the object.

platform_dataobjectOptional

The raw platform data corresponding to the Rutter object.

Endpoints
GET
/accounting/expenses
GET
/accounting/expenses/:id
POST
/accounting/expenses
PATCH
/accounting/expenses/:id
DELETE
/accounting/expenses/:id

List Expenses

GEThttps://production.rutterapi.com/versioned/accounting/expenses

Request Parameters

    access_tokenstringqueryRequired

    The access token of the connection.

    cursorstringqueryOptional

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

    limitintegerqueryOptional

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

    filterstringqueryOptional

    Not yet supported on Sage Intacct or Dynamics 365 Business Central yet. Used to specify a filtering criteria for response objects. Refer to Filtering Objects to understand the syntax for the filtering criteria. The filtering syntax only supports fields decorated with a filterable tag in the response object.

    sortstringqueryOptional

    Used to sort the response objects, e.g. last_synced_at ASC. If a value is provided but ASC or DESC is not, defaults to ASC. If omitted, defaults to updated_at DESC. Supports only fields decorated with a filterable tag in the response object except on Sage Intacct and Dynamics 365 Business Central. For those platforms, only updated_at and last_synced_at fields are supported.

    expandenumqueryOptional

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

    Must beplatform_data.
    last_synced_at_minintegerqueryOptional

    Deprecated - use filter instead. Used to filter objects with a last_synced_at value greater than or equal to the supplied value. Should be a Unix time in milliseconds.

    updated_at_maxintegerqueryOptional

    Deprecated - use filter instead. 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

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

    force_fetchenumqueryOptional

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

    One oftrue or false.

Response Body

    expensesarray
    Show expenses attributes
    next_cursorstringnullableOptional
    connectionobject
    Show connection attributes
Support by integration
  • QuickBooks
    QuickBooks
  • Xero
    Xero
  • QuickBooks Desktop
    QuickBooks Desktop
  • NetSuite
    NetSuite
Example Response Body
JSON
1
{
2
"expenses": [
3
{
4
"id": "00000000-0000-0000-0000-000000000000",
5
"platform_id": "12345678",
6
"account_id": "00000000-0000-0000-0000-000000000000",
7
"customer_id": "00000000-0000-0000-0000-000000000000",
8
"subsidiary_id": "00000000-0000-0000-0000-000000000000",
9
"vendor_id": "00000000-0000-0000-0000-000000000000",
10
"expense_date": "2023-01-02T02:34:56.000Z",
11
"memo": "For a Rutter shirt.",
12
"currency_code": "USD",
13
"line_items": [
14
{
15
"platform_id": "12345678",
16
"account_id": "00000000-0000-0000-0000-000000000000",
17
"class_id": "00000000-0000-0000-0000-000000000000",
18
"customer_id": "00000000-0000-0000-0000-000000000000",
19
"department_id": "00000000-0000-0000-0000-000000000000",
20
"location_id": "00000000-0000-0000-0000-000000000000",
21
"tax_rate_id": "00000000-0000-0000-0000-000000000000",
22
"description": "Rutter shirt",
23
"amount": "12.34"
24
}
25
],
26
"created_at": "2023-01-02T02:34:56.000Z",
27
"updated_at": "2023-01-02T02:34:56.000Z",
28
"last_synced_at": "2023-01-02T02:34:56.000Z",
29
"platform_url": "https://platform.com/resource?id=123",
30
"platform_data": {
31
"id": 123,
32
"data": "Varies by platform"
33
}
34
}
35
],
36
"next_cursor": "MTY3NDgzMTk0Ml82MDY4ZDI0ZC02NGRmLTRmN2EtYTM0Ny0zN2ZmNjY5MGVmMjU=",
37
"connection": {
38
"id": "00000000-0000-0000-0000-000000000000",
39
"orgId": "00000000-0000-0000-0000-000000000000",
40
"platform": "NETSUITE"
41
}
42
}

Fetch an Expense

GEThttps://production.rutterapi.com/versioned/accounting/expenses/:id

Request Parameters

    idstringpathRequired

    The unique ID of the object.

    access_tokenstringqueryRequired

    The access token of the connection.

    id_typeenumqueryOptional

    Used to indicate the type of id that is supplied. Defaults to rutter. Not yet supported on Sage Intacct or Dynamics 365 Business Central yet.

    One ofrutter or platform.
    force_fetchenumqueryOptional

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

    One oftrue or false.

Response Body

    expenseobject
    Show expense attributes
    connectionobject
    Show connection attributes
Support by integration
  • QuickBooks
    QuickBooks
  • Xero
    Xero
  • QuickBooks Desktop
    QuickBooks Desktop
  • NetSuite
    NetSuite
Example Response Body
JSON
1
{
2
"expense": {
3
"id": "00000000-0000-0000-0000-000000000000",
4
"platform_id": "12345678",
5
"account_id": "00000000-0000-0000-0000-000000000000",
6
"customer_id": "00000000-0000-0000-0000-000000000000",
7
"subsidiary_id": "00000000-0000-0000-0000-000000000000",
8
"vendor_id": "00000000-0000-0000-0000-000000000000",
9
"expense_date": "2023-01-02T02:34:56.000Z",
10
"memo": "For a Rutter shirt.",
11
"currency_code": "USD",
12
"line_items": [
13
{
14
"platform_id": "12345678",
15
"account_id": "00000000-0000-0000-0000-000000000000",
16
"class_id": "00000000-0000-0000-0000-000000000000",
17
"customer_id": "00000000-0000-0000-0000-000000000000",
18
"department_id": "00000000-0000-0000-0000-000000000000",
19
"location_id": "00000000-0000-0000-0000-000000000000",
20
"tax_rate_id": "00000000-0000-0000-0000-000000000000",
21
"description": "Rutter shirt",
22
"amount": "12.34"
23
}
24
],
25
"created_at": "2023-01-02T02:34:56.000Z",
26
"updated_at": "2023-01-02T02:34:56.000Z",
27
"last_synced_at": "2023-01-02T02:34:56.000Z",
28
"platform_url": "https://platform.com/resource?id=123",
29
"platform_data": {
30
"id": 123,
31
"data": "Varies by platform"
32
}
33
},
34
"connection": {
35
"id": "00000000-0000-0000-0000-000000000000",
36
"orgId": "00000000-0000-0000-0000-000000000000",
37
"platform": "NETSUITE"
38
}
39
}

Create an Expense

POSThttps://production.rutterapi.com/versioned/accounting/expenses

Request Parameters

    access_tokenstringqueryRequired

    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
Support by integration
  • QuickBooks
    QuickBooks
  • Xero
    Xero
  • QuickBooks Desktop
    QuickBooks Desktop
  • NetSuite
    NetSuite
Example Request Body
JSON
1
{
2
"expense": {
3
"account_id": "00000000-0000-0000-0000-000000000000",
4
"customer_id": "00000000-0000-0000-0000-000000000000",
5
"subsidiary_id": "00000000-0000-0000-0000-000000000000",
6
"vendor_id": "00000000-0000-0000-0000-000000000000",
7
"expense_date": "2023-01-02T02:34:56.000Z",
8
"currency_code": "USD",
9
"currency_rate": 1,
10
"memo": "For a Rutter shirt.",
11
"line_items": [
12
{
13
"account_id": "00000000-0000-0000-0000-000000000000",
14
"class_id": "00000000-0000-0000-0000-000000000000",
15
"customer_id": "00000000-0000-0000-0000-000000000000",
16
"department_id": "00000000-0000-0000-0000-000000000000",
17
"location_id": "00000000-0000-0000-0000-000000000000",
18
"amount": 12.34,
19
"description": "For a Rutter shirt."
20
}
21
]
22
}
23
}
Example Response Body
JSON
1
{
2
"expense": {
3
"id": "00000000-0000-0000-0000-000000000000",
4
"platform_id": "12345678",
5
"account_id": "00000000-0000-0000-0000-000000000000",
6
"customer_id": "00000000-0000-0000-0000-000000000000",
7
"subsidiary_id": "00000000-0000-0000-0000-000000000000",
8
"vendor_id": "00000000-0000-0000-0000-000000000000",
9
"expense_date": "2023-01-02T02:34:56.000Z",
10
"memo": "For a Rutter shirt.",
11
"currency_code": "USD",
12
"line_items": [
13
{
14
"platform_id": "12345678",
15
"account_id": "00000000-0000-0000-0000-000000000000",
16
"class_id": "00000000-0000-0000-0000-000000000000",
17
"customer_id": "00000000-0000-0000-0000-000000000000",
18
"department_id": "00000000-0000-0000-0000-000000000000",
19
"location_id": "00000000-0000-0000-0000-000000000000",
20
"tax_rate_id": "00000000-0000-0000-0000-000000000000",
21
"description": "Rutter shirt",
22
"amount": "12.34"
23
}
24
],
25
"created_at": "2023-01-02T02:34:56.000Z",
26
"updated_at": "2023-01-02T02:34:56.000Z",
27
"last_synced_at": "2023-01-02T02:34:56.000Z",
28
"platform_url": "https://platform.com/resource?id=123",
29
"platform_data": {
30
"id": 123,
31
"data": "Varies by platform"
32
}
33
}
34
}

Update an Expense

PATCHhttps://production.rutterapi.com/versioned/accounting/expenses/:id

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

    idstringpathRequired

    The Rutter generated unique ID of the object.

    access_tokenstringqueryRequired

    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
Support by integration
  • QuickBooks
    QuickBooks
  • NetSuite
    NetSuite
Example Request Body
JSON
1
{
2
"expense": {
3
"account_id": "00000000-0000-0000-0000-000000000000"
4
}
5
}
Example Response Body
JSON
1
{
2
"expense": {
3
"id": "00000000-0000-0000-0000-000000000000",
4
"platform_id": "12345678",
5
"account_id": "00000000-0000-0000-0000-000000000000",
6
"customer_id": "00000000-0000-0000-0000-000000000000",
7
"subsidiary_id": "00000000-0000-0000-0000-000000000000",
8
"vendor_id": "00000000-0000-0000-0000-000000000000",
9
"expense_date": "2023-01-02T02:34:56.000Z",
10
"memo": "For a Rutter shirt.",
11
"currency_code": "USD",
12
"line_items": [
13
{
14
"platform_id": "12345678",
15
"account_id": "00000000-0000-0000-0000-000000000000",
16
"class_id": "00000000-0000-0000-0000-000000000000",
17
"customer_id": "00000000-0000-0000-0000-000000000000",
18
"department_id": "00000000-0000-0000-0000-000000000000",
19
"location_id": "00000000-0000-0000-0000-000000000000",
20
"tax_rate_id": "00000000-0000-0000-0000-000000000000",
21
"description": "Rutter shirt",
22
"amount": "12.34"
23
}
24
],
25
"created_at": "2023-01-02T02:34:56.000Z",
26
"updated_at": "2023-01-02T02:34:56.000Z",
27
"last_synced_at": "2023-01-02T02:34:56.000Z",
28
"platform_url": "https://platform.com/resource?id=123",
29
"platform_data": {
30
"id": 123,
31
"data": "Varies by platform"
32
}
33
}
34
}

Delete an Expense

DELETEhttps://production.rutterapi.com/versioned/accounting/expenses/:id

Request Parameters

    idstringpathRequired

    The Rutter generated unique ID of the object.

    access_tokenstringqueryRequired

    The access token of the connection.

Response Body

    Any of:

    codeenum

    Returns the status of the requested object: deleted indicates object was deleted by this operation, whereas not_found indicates object was not found (allowing us to make DELETE operations idempotent).

    One ofdeleted or not_found.
    successboolean

    Indicates whether deletion was successful

    async_responseobjectOptional
    Show async_response attributes
Support by integration
  • QuickBooks
    QuickBooks
  • Zoho Books
    Zoho Books
Example Response Body
JSON
1
{
2
"code": "deleted",
3
"success": true
4
}

Have questions?

Contact support for personalized guidance.

Contact support