Invoices
The Invoice Object
A Rutter Invoice represents an invoice issued by the business entity that a customer must pay. Every invoice is linked to an accounts receivable Account, a Customer, Invoice Payments, and Invoice Credit Memos.
The invoice line item contains information regarding the items sold and accounts affected in the invoice. Every invoice line item is linked to a credit Account, Tax Rate, or Item.
Files can be attached to Rutter Invoices in the form of Rutter Attachments.
Properties
idstringThe Rutter generated unique ID of the invoice.
platform_idstringThe platform specific ID of the invoice.
account_idstringnullableThe Rutter ID of the Account linked to the invoice. Represents the account being debited.
class_idstringnullableOptionalThe Rutter ID of the Class linked to the invoice. Supported for QuickBooks and QuickBooks Desktop.
customer_idstringfilterablenullableThe Rutter ID of the Customers linked to the invoice.
payment_terms_idstringnullableOptionalThe Rutter ID of the Payment Terms linked to the invoice. Supported for QuickBooks.
subsidiary_idstringnullableThe Rutter ID of the Subsidiary linked to the invoice. Supported for NetSuite and Sage Intacct.
due_datestringfilterablenullableThe ISO 8601 timestamp for when the invoice is/was due.
issue_datestringnullableThe ISO 8601 timestamp for when the invoice was issued.
statusenumfilterableThe status of the invoice. Typically invoices start as draft, once they are approved they become submitted and after a payment is made they are partially_paid or paid. Invoices can also be voided to nullify the G/L impact, and those would have status void.
amount_duenumbernullableThe current amount due on the invoice. Represents the remainder after invoice payments or invoice credit memos are applied against the total amount.
currency_codeenumnullableThe ISO 4217 currency code of the invoice.
discount_amountnumbernullableThe total amount of discounts applied to the invoice.
document_numberstringfilterablenullableThe seller facing document number of the invoice.
memostringnullableThe customer-facing memo on the invoice.
sub_totalnumbernullableThe subtotal of the invoice, without the tax amount.
tax_amountnumbernullableThe total tax amount applied to the invoice.
total_amountnumbernullableThe total amount due on the invoice.
linked_paymentsarrayAn array of Rutter IDs of Invoice Payments and Invoice Credit Memos applied against the invoice.
linked_payments attributesaddressesarrayOptionalAn array of addresses linked to the invoice. Supported for QuickBooks, Xero, and Zoho Books.
addresses attributesline_itemsarrayline_items attributesadditional_fieldsobjectOptionalAdditional fields required only for a narrow set of use cases.
additional_fields attributescreated_atstringfilterablenullableThe ISO 8601 timestamp that the invoice was created.
updated_atstringfilterablenullableThe ISO 8601 timestamp that the invoice was last updated.
last_synced_atstringfilterableThe ISO 8601 timestamp when the invoice was last synced by Rutter.
platform_urlstringnullableA 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_dataobjectOptionalThe raw platform data corresponding to the Rutter object.
List Invoices
Request Parameters
access_tokenstringqueryRequiredThe access token of the connection.
cursorstringqueryOptionalUsed to paginate to the next batch of objects. Should be a copy of the next_cursor value from the previous response.
limitintegerqueryOptionalUsed to limit the number of returned objects. Defaults to 50.
filterstringqueryOptionalNot 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, customer_id, due_date, status, created_at, updated_at, last_synced_at.
sortstringqueryOptionalUsed 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, customer_id, due_date, status, created_at, updated_at, last_synced_at.
expandenumqueryOptionalInclude platform specific data (includes additional fields not provided by the Rutter object).
document_numberstringfilterablequeryOptionalDeprecated - use filter instead. The exact document number to filter on. Not currently supported on Sage Intacct or Sage Business Cloud.
last_synced_at_minintegerqueryOptionalDeprecated - 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_maxintegerqueryOptionalDeprecated - 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_minintegerqueryOptionalDeprecated - 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_fetchenumqueryOptionalUsed to force a response even if the underlying connection has not finished its initial sync.
Response Body
1{
2 "invoices": [
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 "payment_terms_id": "00000000-0000-0000-0000-000000000000",
9 "subsidiary_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 "status": "partially_paid",
13 "amount_due": 9.34,
14 "currency_code": "USD",
15 "discount_amount": 0,
16 "document_number": "CUSTINVC-1",
17 "memo": "For a Rutter shirt.",
18 "sub_total": 12.34,
19 "tax_amount": 2,
20 "total_amount": 14.34,
21 "linked_payments": [
22 {
23 "id": "00000000-0000-0000-0000-000000000000",
24 "allocated_date": "2023-01-02T02:34:56.000Z",
25 "allocated_amount": 3,
26 "type": "INVOICE_PAYMENT"
27 },
28 {
29 "id": "00000000-0000-0000-0000-000000000000",
30 "allocated_date": "2023-01-02T02:34:56.000Z",
31 "allocated_amount": 2,
32 "type": "INVOICE_CREDIT_MEMO"
33 }
34 ],
35 "line_items": [
36 {
37 "platform_id": "12345678",
38 "account_id": "00000000-0000-0000-0000-000000000000",
39 "class_id": "00000000-0000-0000-0000-000000000000",
40 "location_id": "00000000-0000-0000-0000-000000000000",
41 "tax_rate_id": "00000000-0000-0000-0000-000000000000",
42 "description": "A Rutter shirt.",
43 "discount_amount": 0,
44 "discount_percentage": 0,
45 "sub_total": 12.34,
46 "tax_amount": 2,
47 "total_amount": 14.34,
48 "type": "shipping",
49 "item": {
50 "id": "00000000-0000-0000-0000-000000000000",
51 "quantity": 1,
52 "unit_amount": 12.34
53 }
54 }
55 ],
56 "created_at": "2023-01-02T02:34:56.000Z",
57 "updated_at": "2023-01-02T02:34:56.000Z",
58 "last_synced_at": "2023-01-02T02:34:56.000Z",
59 "platform_url": "https://platform.com/resource?id=123",
60 "platform_data": {
61 "id": 123,
62 "data": "Varies by platform"
63 }
64 }
65 ],
66 "next_cursor": "MTY3NDgzMTk0Ml82MDY4ZDI0ZC02NGRmLTRmN2EtYTM0Ny0zN2ZmNjY5MGVmMjU=",
67 "connection": {
68 "id": "00000000-0000-0000-0000-000000000000",
69 "orgId": "00000000-0000-0000-0000-000000000000",
70 "platform": "NETSUITE"
71 }
72}
Fetch an Invoice
Request Parameters
idstringpathRequiredThe unique ID of the object.
access_tokenstringqueryRequiredThe access token of the connection.
id_typeenumqueryOptionalUsed to indicate the type of id that is supplied. Defaults to rutter. Not currently supported on Sage Intacct or Sage Business Cloud.
force_fetchenumqueryOptionalUsed to force a response even if the underlying connection has not finished its initial sync.
Response Body
1{
2 "invoice": {
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 "payment_terms_id": "00000000-0000-0000-0000-000000000000",
8 "subsidiary_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 "status": "partially_paid",
12 "amount_due": 9.34,
13 "currency_code": "USD",
14 "discount_amount": 0,
15 "document_number": "CUSTINVC-1",
16 "memo": "For a Rutter shirt.",
17 "sub_total": 12.34,
18 "tax_amount": 2,
19 "total_amount": 14.34,
20 "linked_payments": [
21 {
22 "id": "00000000-0000-0000-0000-000000000000",
23 "allocated_date": "2023-01-02T02:34:56.000Z",
24 "allocated_amount": 3,
25 "type": "INVOICE_PAYMENT"
26 },
27 {
28 "id": "00000000-0000-0000-0000-000000000000",
29 "allocated_date": "2023-01-02T02:34:56.000Z",
30 "allocated_amount": 2,
31 "type": "INVOICE_CREDIT_MEMO"
32 }
33 ],
34 "line_items": [
35 {
36 "platform_id": "12345678",
37 "account_id": "00000000-0000-0000-0000-000000000000",
38 "class_id": "00000000-0000-0000-0000-000000000000",
39 "location_id": "00000000-0000-0000-0000-000000000000",
40 "tax_rate_id": "00000000-0000-0000-0000-000000000000",
41 "description": "A Rutter shirt.",
42 "discount_amount": 0,
43 "discount_percentage": 0,
44 "sub_total": 12.34,
45 "tax_amount": 2,
46 "total_amount": 14.34,
47 "type": "shipping",
48 "item": {
49 "id": "00000000-0000-0000-0000-000000000000",
50 "quantity": 1,
51 "unit_amount": 12.34
52 }
53 }
54 ],
55 "created_at": "2023-01-02T02:34:56.000Z",
56 "updated_at": "2023-01-02T02:34:56.000Z",
57 "last_synced_at": "2023-01-02T02:34:56.000Z",
58 "platform_url": "https://platform.com/resource?id=123",
59 "platform_data": {
60 "id": 123,
61 "data": "Varies by platform"
62 }
63 },
64 "connection": {
65 "id": "00000000-0000-0000-0000-000000000000",
66 "orgId": "00000000-0000-0000-0000-000000000000",
67 "platform": "NETSUITE"
68 }
69}
Fetch a downloadable link of the Invoice
Request Parameters
idstringpathRequiredThe Rutter generated unique ID of the invoice.
access_tokenstringqueryRequiredThe access token of the connection.
force_fetchenumqueryOptionalUsed to force a response even if the underlying connection has not finished its initial sync.
Response Body
1{
2 "invoice": {
3 "pdf_link": "https://rutteraccountingattachments.s3.amazonaws.com/00000000-0000-0000-0000-000000000000"
4 }
5}
Create an Invoice
Request Parameters
access_tokenstringqueryRequiredThe access token of the connection.
Request Body
response_modeenumOptionalThe 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.
invoiceobjectinvoice attributesResponse Body
1{
2 "invoice": {
3 "customer_id": "00000000-0000-0000-0000-000000000000",
4 "payment_terms_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_code": "USD",
8 "document_number": "CUSTINVC-1",
9 "memo": "For a Rutter shirt.",
10 "line_items": [
11 {
12 "total_amount": 12.34,
13 "description": "A Rutter Shirt",
14 "item": {
15 "id": "00000000-0000-0000-0000-000000000000",
16 "quantity": 1,
17 "unit_amount": 12.34
18 }
19 }
20 ]
21 }
22}
1{
2 "invoice": {
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 "payment_terms_id": "00000000-0000-0000-0000-000000000000",
8 "subsidiary_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 "status": "partially_paid",
12 "amount_due": 9.34,
13 "currency_code": "USD",
14 "discount_amount": 0,
15 "document_number": "CUSTINVC-1",
16 "memo": "For a Rutter shirt.",
17 "sub_total": 12.34,
18 "tax_amount": 2,
19 "total_amount": 14.34,
20 "linked_payments": [
21 {
22 "id": "00000000-0000-0000-0000-000000000000",
23 "allocated_date": "2023-01-02T02:34:56.000Z",
24 "allocated_amount": 3,
25 "type": "INVOICE_PAYMENT"
26 },
27 {
28 "id": "00000000-0000-0000-0000-000000000000",
29 "allocated_date": "2023-01-02T02:34:56.000Z",
30 "allocated_amount": 2,
31 "type": "INVOICE_CREDIT_MEMO"
32 }
33 ],
34 "line_items": [
35 {
36 "platform_id": "12345678",
37 "account_id": "00000000-0000-0000-0000-000000000000",
38 "class_id": "00000000-0000-0000-0000-000000000000",
39 "location_id": "00000000-0000-0000-0000-000000000000",
40 "tax_rate_id": "00000000-0000-0000-0000-000000000000",
41 "description": "A Rutter shirt.",
42 "discount_amount": 0,
43 "discount_percentage": 0,
44 "sub_total": 12.34,
45 "tax_amount": 2,
46 "total_amount": 14.34,
47 "type": "shipping",
48 "item": {
49 "id": "00000000-0000-0000-0000-000000000000",
50 "quantity": 1,
51 "unit_amount": 12.34
52 }
53 }
54 ],
55 "created_at": "2023-01-02T02:34:56.000Z",
56 "updated_at": "2023-01-02T02:34:56.000Z",
57 "last_synced_at": "2023-01-02T02:34:56.000Z",
58 "platform_url": "https://platform.com/resource?id=123",
59 "platform_data": {
60 "id": 123,
61 "data": "Varies by platform"
62 }
63 }
64}
Update an Invoice
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
idstringpathRequiredThe Rutter generated unique ID of the object.
access_tokenstringqueryRequiredThe access token of the connection.
Request Body
response_modeenumOptionalThe 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.
invoiceobjectinvoice attributesResponse Body
1{
2 "invoice": {
3 "due_date": "2023-01-02T02:34:56.000Z",
4 "document_number": "CUSTINVC-2",
5 "line_items": [
6 {
7 "total_amount": 12.34,
8 "description": "A Rutter Shirt",
9 "item": {
10 "id": "00000000-0000-0000-0000-000000000000",
11 "quantity": 1,
12 "unit_amount": 12.34
13 }
14 }
15 ]
16 }
17}
1{
2 "invoice": {
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 "payment_terms_id": "00000000-0000-0000-0000-000000000000",
8 "subsidiary_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 "status": "partially_paid",
12 "amount_due": 9.34,
13 "currency_code": "USD",
14 "discount_amount": 0,
15 "document_number": "CUSTINVC-1",
16 "memo": "For a Rutter shirt.",
17 "sub_total": 12.34,
18 "tax_amount": 2,
19 "total_amount": 14.34,
20 "linked_payments": [
21 {
22 "id": "00000000-0000-0000-0000-000000000000",
23 "allocated_date": "2023-01-02T02:34:56.000Z",
24 "allocated_amount": 3,
25 "type": "INVOICE_PAYMENT"
26 },
27 {
28 "id": "00000000-0000-0000-0000-000000000000",
29 "allocated_date": "2023-01-02T02:34:56.000Z",
30 "allocated_amount": 2,
31 "type": "INVOICE_CREDIT_MEMO"
32 }
33 ],
34 "line_items": [
35 {
36 "platform_id": "12345678",
37 "account_id": "00000000-0000-0000-0000-000000000000",
38 "class_id": "00000000-0000-0000-0000-000000000000",
39 "location_id": "00000000-0000-0000-0000-000000000000",
40 "tax_rate_id": "00000000-0000-0000-0000-000000000000",
41 "description": "A Rutter shirt.",
42 "discount_amount": 0,
43 "discount_percentage": 0,
44 "sub_total": 12.34,
45 "tax_amount": 2,
46 "total_amount": 14.34,
47 "type": "shipping",
48 "item": {
49 "id": "00000000-0000-0000-0000-000000000000",
50 "quantity": 1,
51 "unit_amount": 12.34
52 }
53 }
54 ],
55 "created_at": "2023-01-02T02:34:56.000Z",
56 "updated_at": "2023-01-02T02:34:56.000Z",
57 "last_synced_at": "2023-01-02T02:34:56.000Z",
58 "platform_url": "https://platform.com/resource?id=123",
59 "platform_data": {
60 "id": 123,
61 "data": "Varies by platform"
62 }
63 }
64}
Delete an Invoice
Request Parameters
idstringpathRequiredThe Rutter generated unique ID of the object.
access_tokenstringqueryRequiredThe access token of the connection.
Request Body
response_modeenumOptionalThe 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.
Response Body
1{
2 "code": "deleted",
3 "success": true
4}
Have questions?
Contact support for personalized guidance.