Bills

The Bill Object

A Rutter Bill represents a bill issued by a vendor that the business entity must pay. Every bill is linked to an accounts payable Account, a Vendor, Purchase Orders, Bill Payments, and Bill Credit Memos.

The bill line item contains information regarding the items purchased and accounts affected in the bill. Every bill line item is linked to a debit Account, Tax Rate, and Item.

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

Properties

idstring

The Rutter generated unique ID of the bill.

platform_idstring

The platform specific ID of the bill.

account_idstringOptional

The Rutter ID of the Account linked to the bill. This account is the Accounts Payable Account that's being credited on the bill. Typically, the account type is accounts_payable. If the platform requires this as an input and it's not provided, Rutter will set the default Accounts Payable account.

payment_terms_idstringnullable

An array of Rutter IDs of Payment Terms linked to the bill.

subsidiary_idstringnullable

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

vendor_idstringfilterablenullable

The Rutter ID of the Vendor linked to the bill.

due_datestring

The ISO 8601 timestamp for the due date of the bill.

issue_datestring

The ISO 8601 timestamp for the issue date of the bill.

amount_duestring

The current amount due on the bill. Represents the remainder after bill payments or bill credit memos are applied against the total amount.

currencyenum

The ISO 4217 currency code of the bill.

One ofAEDAFNALLAMDANGAOAARSAUDAWGAZNBAMBBDBDTBGNBHDBIFBMDBNDBOBBOVBRLBSDBTNBWPBYRBZDCADCDFCHECHFCHWCLFCLPCNYCOPCOUCRCCUCCUPCVECZKDJFDKKDOPDZDEGPERNETBEURFJDFKPGBPGELGHSGIPGMDGNFGTQGYDHKDHNLHRKHTGHUFIDRILSINRIQDIRRISKJMDJODJPYKESKGSKHRKMFKPWKRWKWDKYDKZTLAKLBPLKRLRDLSLLTLLVLLYDMADMDLMGAMKDMMKMNTMOPMROMURMVRMWKMXNMXVMYRMZNNADNGNNIONOKNPRNZDOMRPABPENPGKPHPPKRPLNPYGQARRONRSDRUBRWFSARSBDSCRSDGSEKSGDSHPSLLSOSSRDSSPSTDSVCSYPSZLTHBTJSTMTTNDTOPTRYTTDTWDTZSUAHUGXUSDUSNUSSUYIUYUUYWUZSVEFVNDVUVWSTXAFXAGXAUXBAXBBXBCXBDXCDXDRXFUXOFXPDXPFXPTXTSXXXYERZARZMWETH, or BTC.
statusenum

The status of the bill.

One ofopenpartially_paidpaidvoiddraftunknown, or submitted.
total_amountstring

The total amount of the bill.

document_numberstringfilterablenullable

The buyer facing document number of the bill.

memostringnullable

The memo of the bill.

sub_totalstringnullable

The subtotal of the bill, without the tax amount.

tax_amountstringnullable

The total tax amount applied to the bill.

total_discountstringnullable

The total amount of discounts applied to the bill.

currency_ratestringnullableOptional

The exchange rate between the currency of the bill and the business default currency. Supported for NetSuite, QuickBooks, and Xero.

purchase_ordersarray

An array of Rutter IDs of Purchase Orders linked to the bill.

Show purchase_orders attributes
paymentsarray

An array of Rutter IDs of Bill Payments and Bill Credit Memos applied against the bill.

Show payments attributes
line_itemsarray

An array of line items associated with the bill.

Show line_items attributes
additional_fieldsobjectOptional

Additional fields required only for a narrow set of use cases.

Show additional_fields attributes
created_atstringfilterablenullable

The ISO 8601 timestamp that the bill was created.

updated_atstringfilterablenullable

The ISO 8601 timestamp that the bill was last updated.

last_synced_atstringfilterable

The ISO 8601 timestamp when the bill 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/bills
GET
/accounting/bills/:id
POST
/accounting/bills
PATCH
/accounting/bills/:id
DELETE
/accounting/bills/:id

List Bills

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

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 currently supported on Sage Intacct or Sage Business Cloud. 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.

    Filterable fields: document_number, vendor_id, created_at, updated_at, last_synced_at.

    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 Sage Business Cloud. For those platforms, only updated_at_min, updated_at_max and last_synced_at_min fields are supported and not deprecated.

    Sortable fields: document_number, vendor_id, created_at, updated_at, last_synced_at.

    expandenumqueryOptional

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

    Must beplatform_data.
    document_numberstringfilterablequeryOptional

    Deprecated - use filter instead. The exact document number to filter on. Not currently supported on Sage Intacct or Sage Business Cloud.

    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

Support by integration
  • QuickBooks
    QuickBooks
  • Xero
    Xero
  • QuickBooks Desktop
    QuickBooks Desktop
  • NetSuite
    NetSuite
200
Example Response Body
JSON
1
{
2
"bills": [
3
{
4
"id": "00000000-0000-0000-0000-000000000000",
5
"platform_id": "12345678",
6
"account_id": "00000000-0000-0000-0000-000000000000",
7
"payment_terms_id": "00000000-0000-0000-0000-000000000000",
8
"subsidiary_id": "00000000-0000-0000-0000-000000000000",
9
"vendor_id": "00000000-0000-0000-0000-000000000000",
10
"due_date": "2023-01-02T02:34:56.000Z",
11
"issue_date": "2023-01-02T02:34:56.000Z",
12
"amount_due": "9.34",
13
"currency": "USD",
14
"status": "partially_paid",
15
"total_amount": "14.34",
16
"document_number": "VENDBILL-1",
17
"memo": "Bill description",
18
"sub_total": "12.34",
19
"tax_amount": "2",
20
"total_discount": "0",
21
"currency_rate": "3.5",
22
"purchase_orders": [
23
{
24
"id": "00000000-0000-0000-0000-000000000000"
25
}
26
],
27
"payments": [
28
{
29
"id": "00000000-0000-0000-0000-000000000000",
30
"date": "2023-01-02T02:34:56.000Z",
31
"amount": "3",
32
"type": "BILL_PAYMENT"
33
},
34
{
35
"id": "00000000-0000-0000-0000-000000000000",
36
"date": "2023-01-02T02:34:56.000Z",
37
"amount": "2",
38
"type": "BILL_CREDIT_MEMO"
39
}
40
],
41
"line_items": [
42
{
43
"id": "00000000-0000-0000-0000-000000000000",
44
"platform_id": "12345678",
45
"account_id": "00000000-0000-0000-0000-000000000000",
46
"class_id": "00000000-0000-0000-0000-000000000000",
47
"customer_id": "00000000-0000-0000-0000-000000000000",
48
"department_id": "00000000-0000-0000-0000-000000000000",
49
"item_id": "00000000-0000-0000-0000-000000000000",
50
"location_id": "00000000-0000-0000-0000-000000000000",
51
"project_id": "00000000-0000-0000-0000-000000000000",
52
"tax_rate_id": "00000000-0000-0000-0000-000000000000",
53
"amount": "14.34",
54
"description": "A Rutter shirt.",
55
"discount_amount": "0",
56
"discount_percentage": "0",
57
"quantity": "1",
58
"sub_total": "12.34",
59
"tax_amount": "2",
60
"unit_amount": "12.34",
61
"item": {
62
"id": "00000000-0000-0000-0000-000000000000",
63
"quantity": 1,
64
"unit_amount": 12.34
65
}
66
}
67
],
68
"created_at": "2023-01-02T02:34:56.000Z",
69
"updated_at": "2023-01-02T02:34:56.000Z",
70
"last_synced_at": "2023-01-02T02:34:56.000Z",
71
"platform_url": "https://platform.com/resource?id=123",
72
"platform_data": {
73
"id": 123,
74
"data": "Varies by platform"
75
}
76
}
77
],
78
"next_cursor": "MTY3NDgzMTk0Ml82MDY4ZDI0ZC02NGRmLTRmN2EtYTM0Ny0zN2ZmNjY5MGVmMjU=",
79
"connection": {
80
"id": "00000000-0000-0000-0000-000000000000",
81
"orgId": "00000000-0000-0000-0000-000000000000",
82
"platform": "NETSUITE"
83
}
84
}

Fetch a Bill

GEThttps://production.rutterapi.com/versioned/accounting/bills/: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 currently supported on Sage Intacct or Sage Business Cloud.

    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

Support by integration
  • QuickBooks
    QuickBooks
  • Xero
    Xero
  • QuickBooks Desktop
    QuickBooks Desktop
  • NetSuite
    NetSuite
200
Example Response Body
JSON
1
{
2
"bill": {
3
"id": "00000000-0000-0000-0000-000000000000",
4
"platform_id": "12345678",
5
"account_id": "00000000-0000-0000-0000-000000000000",
6
"payment_terms_id": "00000000-0000-0000-0000-000000000000",
7
"subsidiary_id": "00000000-0000-0000-0000-000000000000",
8
"vendor_id": "00000000-0000-0000-0000-000000000000",
9
"due_date": "2023-01-02T02:34:56.000Z",
10
"issue_date": "2023-01-02T02:34:56.000Z",
11
"amount_due": "9.34",
12
"currency": "USD",
13
"status": "partially_paid",
14
"total_amount": "14.34",
15
"document_number": "VENDBILL-1",
16
"memo": "Bill description",
17
"sub_total": "12.34",
18
"tax_amount": "2",
19
"total_discount": "0",
20
"currency_rate": "3.5",
21
"purchase_orders": [
22
{
23
"id": "00000000-0000-0000-0000-000000000000"
24
}
25
],
26
"payments": [
27
{
28
"id": "00000000-0000-0000-0000-000000000000",
29
"date": "2023-01-02T02:34:56.000Z",
30
"amount": "3",
31
"type": "BILL_PAYMENT"
32
},
33
{
34
"id": "00000000-0000-0000-0000-000000000000",
35
"date": "2023-01-02T02:34:56.000Z",
36
"amount": "2",
37
"type": "BILL_CREDIT_MEMO"
38
}
39
],
40
"line_items": [
41
{
42
"id": "00000000-0000-0000-0000-000000000000",
43
"platform_id": "12345678",
44
"account_id": "00000000-0000-0000-0000-000000000000",
45
"class_id": "00000000-0000-0000-0000-000000000000",
46
"customer_id": "00000000-0000-0000-0000-000000000000",
47
"department_id": "00000000-0000-0000-0000-000000000000",
48
"item_id": "00000000-0000-0000-0000-000000000000",
49
"location_id": "00000000-0000-0000-0000-000000000000",
50
"project_id": "00000000-0000-0000-0000-000000000000",
51
"tax_rate_id": "00000000-0000-0000-0000-000000000000",
52
"amount": "14.34",
53
"description": "A Rutter shirt.",
54
"discount_amount": "0",
55
"discount_percentage": "0",
56
"quantity": "1",
57
"sub_total": "12.34",
58
"tax_amount": "2",
59
"unit_amount": "12.34",
60
"item": {
61
"id": "00000000-0000-0000-0000-000000000000",
62
"quantity": 1,
63
"unit_amount": 12.34
64
}
65
}
66
],
67
"created_at": "2023-01-02T02:34:56.000Z",
68
"updated_at": "2023-01-02T02:34:56.000Z",
69
"last_synced_at": "2023-01-02T02:34:56.000Z",
70
"platform_url": "https://platform.com/resource?id=123",
71
"platform_data": {
72
"id": 123,
73
"data": "Varies by platform"
74
}
75
},
76
"connection": {
77
"id": "00000000-0000-0000-0000-000000000000",
78
"orgId": "00000000-0000-0000-0000-000000000000",
79
"platform": "NETSUITE"
80
}
81
}

Create a Bill

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

Request Parameters

    access_tokenstringqueryRequired

    The access token of the connection.

Request Body

    response_modeenumOptional

    The response mode for our async endpoints. prefer_sync allows calling the API in a best-effort, synchronous fashion and wait for the response. If this takes too long we will instead return the asynchronous response. This is the default behavior. async makes the API respond with the asynchronous response. See Asynchronous Operations.

    One ofasync or prefer_sync.
    billobject
    Show bill attributes

Response Body

Support by integration
  • QuickBooks
    QuickBooks
  • Xero
    Xero
  • QuickBooks Desktop
    QuickBooks Desktop
  • NetSuite
    NetSuite
Example Request Body
JSON
1
{
2
"bill": {
3
"subsidiary_id": "00000000-0000-0000-0000-000000000000",
4
"vendor_id": "00000000-0000-0000-0000-000000000000",
5
"due_date": "2023-01-02T02:34:56.000Z",
6
"issue_date": "2023-01-02T02:34:56.000Z",
7
"currency": "USD",
8
"currency_rate": "3.5",
9
"line_items": [
10
{
11
"account_id": "00000000-0000-0000-0000-000000000000",
12
"amount": 12.34,
13
"description": "A Rutter shirt."
14
}
15
]
16
}
17
}
200
Example Response Body
JSON
1
{
2
"bill": {
3
"id": "00000000-0000-0000-0000-000000000000",
4
"platform_id": "12345678",
5
"account_id": "00000000-0000-0000-0000-000000000000",
6
"payment_terms_id": "00000000-0000-0000-0000-000000000000",
7
"subsidiary_id": "00000000-0000-0000-0000-000000000000",
8
"vendor_id": "00000000-0000-0000-0000-000000000000",
9
"due_date": "2023-01-02T02:34:56.000Z",
10
"issue_date": "2023-01-02T02:34:56.000Z",
11
"amount_due": "9.34",
12
"currency": "USD",
13
"status": "partially_paid",
14
"total_amount": "14.34",
15
"document_number": "VENDBILL-1",
16
"memo": "Bill description",
17
"sub_total": "12.34",
18
"tax_amount": "2",
19
"total_discount": "0",
20
"currency_rate": "3.5",
21
"purchase_orders": [
22
{
23
"id": "00000000-0000-0000-0000-000000000000"
24
}
25
],
26
"payments": [
27
{
28
"id": "00000000-0000-0000-0000-000000000000",
29
"date": "2023-01-02T02:34:56.000Z",
30
"amount": "3",
31
"type": "BILL_PAYMENT"
32
},
33
{
34
"id": "00000000-0000-0000-0000-000000000000",
35
"date": "2023-01-02T02:34:56.000Z",
36
"amount": "2",
37
"type": "BILL_CREDIT_MEMO"
38
}
39
],
40
"line_items": [
41
{
42
"id": "00000000-0000-0000-0000-000000000000",
43
"platform_id": "12345678",
44
"account_id": "00000000-0000-0000-0000-000000000000",
45
"class_id": "00000000-0000-0000-0000-000000000000",
46
"customer_id": "00000000-0000-0000-0000-000000000000",
47
"department_id": "00000000-0000-0000-0000-000000000000",
48
"item_id": "00000000-0000-0000-0000-000000000000",
49
"location_id": "00000000-0000-0000-0000-000000000000",
50
"project_id": "00000000-0000-0000-0000-000000000000",
51
"tax_rate_id": "00000000-0000-0000-0000-000000000000",
52
"amount": "14.34",
53
"description": "A Rutter shirt.",
54
"discount_amount": "0",
55
"discount_percentage": "0",
56
"quantity": "1",
57
"sub_total": "12.34",
58
"tax_amount": "2",
59
"unit_amount": "12.34",
60
"item": {
61
"id": "00000000-0000-0000-0000-000000000000",
62
"quantity": 1,
63
"unit_amount": 12.34
64
}
65
}
66
],
67
"created_at": "2023-01-02T02:34:56.000Z",
68
"updated_at": "2023-01-02T02:34:56.000Z",
69
"last_synced_at": "2023-01-02T02:34:56.000Z",
70
"platform_url": "https://platform.com/resource?id=123",
71
"platform_data": {
72
"id": 123,
73
"data": "Varies by platform"
74
}
75
}
76
}

Update a Bill

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

If a field is provided, that field will take the updated value. If a field is not provided, the existing value will persist. The exception is for array fields such as `line_items`. For these fields, the entire array will be replaced with the new array value.

Request Parameters

    idstringpathRequired

    The Rutter generated unique ID of the object.

    access_tokenstringqueryRequired

    The access token of the connection.

Request Body

    response_modeenumOptional

    The response mode for our async endpoints. prefer_sync allows calling the API in a best-effort, synchronous fashion and wait for the response. If this takes too long we will instead return the asynchronous response. This is the default behavior. async makes the API respond with the asynchronous response. See Asynchronous Operations.

    One ofasync or prefer_sync.
    billobject
    Show bill attributes

Response Body

Support by integration
  • QuickBooks
    QuickBooks
  • Xero
    Xero
  • QuickBooks Desktop
    QuickBooks Desktop
  • NetSuite
    NetSuite
Example Request Body
JSON
1
{
2
"bill": {
3
"memo": "Example Memo"
4
}
5
}
200
Example Response Body
JSON
1
{
2
"bill": {
3
"id": "00000000-0000-0000-0000-000000000000",
4
"platform_id": "12345678",
5
"account_id": "00000000-0000-0000-0000-000000000000",
6
"payment_terms_id": "00000000-0000-0000-0000-000000000000",
7
"subsidiary_id": "00000000-0000-0000-0000-000000000000",
8
"vendor_id": "00000000-0000-0000-0000-000000000000",
9
"due_date": "2023-01-02T02:34:56.000Z",
10
"issue_date": "2023-01-02T02:34:56.000Z",
11
"amount_due": "9.34",
12
"currency": "USD",
13
"status": "partially_paid",
14
"total_amount": "14.34",
15
"document_number": "VENDBILL-1",
16
"memo": "Bill description",
17
"sub_total": "12.34",
18
"tax_amount": "2",
19
"total_discount": "0",
20
"currency_rate": "3.5",
21
"purchase_orders": [
22
{
23
"id": "00000000-0000-0000-0000-000000000000"
24
}
25
],
26
"payments": [
27
{
28
"id": "00000000-0000-0000-0000-000000000000",
29
"date": "2023-01-02T02:34:56.000Z",
30
"amount": "3",
31
"type": "BILL_PAYMENT"
32
},
33
{
34
"id": "00000000-0000-0000-0000-000000000000",
35
"date": "2023-01-02T02:34:56.000Z",
36
"amount": "2",
37
"type": "BILL_CREDIT_MEMO"
38
}
39
],
40
"line_items": [
41
{
42
"id": "00000000-0000-0000-0000-000000000000",
43
"platform_id": "12345678",
44
"account_id": "00000000-0000-0000-0000-000000000000",
45
"class_id": "00000000-0000-0000-0000-000000000000",
46
"customer_id": "00000000-0000-0000-0000-000000000000",
47
"department_id": "00000000-0000-0000-0000-000000000000",
48
"item_id": "00000000-0000-0000-0000-000000000000",
49
"location_id": "00000000-0000-0000-0000-000000000000",
50
"project_id": "00000000-0000-0000-0000-000000000000",
51
"tax_rate_id": "00000000-0000-0000-0000-000000000000",
52
"amount": "14.34",
53
"description": "A Rutter shirt.",
54
"discount_amount": "0",
55
"discount_percentage": "0",
56
"quantity": "1",
57
"sub_total": "12.34",
58
"tax_amount": "2",
59
"unit_amount": "12.34",
60
"item": {
61
"id": "00000000-0000-0000-0000-000000000000",
62
"quantity": 1,
63
"unit_amount": 12.34
64
}
65
}
66
],
67
"created_at": "2023-01-02T02:34:56.000Z",
68
"updated_at": "2023-01-02T02:34:56.000Z",
69
"last_synced_at": "2023-01-02T02:34:56.000Z",
70
"platform_url": "https://platform.com/resource?id=123",
71
"platform_data": {
72
"id": 123,
73
"data": "Varies by platform"
74
}
75
}
76
}

Delete a Bill

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

Request Parameters

    idstringpathRequired

    The Rutter generated unique ID of the object.

    access_tokenstringqueryRequired

    The access token of the connection.

Request Body

    response_modeenumOptional

    The response mode for our async endpoints. prefer_sync allows calling the API in a best-effort, synchronous fashion and wait for the response. If this takes too long we will instead return the asynchronous response. This is the default behavior. async makes the API respond with the asynchronous response. See Asynchronous Operations.

    One ofasync or prefer_sync.

Response Body

Support by integration
  • QuickBooks
    QuickBooks
  • Xero
    Xero
  • NetSuite
    NetSuite
200
Example Response Body
JSON
1
{
2
"code": "deleted",
3
"success": true
4
}

Have questions?

Contact support for personalized guidance.

Contact support