Changelog
Nov 25 - Coverage Updates
- [All accounting platforms]
GET /bill_payments
- added support for filtering byvendor_id
. - [NetSuite]
PATCH /journal_entries
- new endpoint. - [Xero]
GET /custom_fields
- new endpoint. - [Xero]
POST/PATCH /bills
- added support forcustom_fields
. - [Xero]
POST/PATCH /invoices
- added support forcustom_fields
. - [Xero]
POST/PATCH /journal_entries
- added support forcustom_fields
. - [QuickBooks]
POST /invoice_credit_memos
- added support forcustom_fields
.
For more information, visit our API Reference.
Nov 20 - OpenAPI Spec
We've exposed direct access to our OpenAPI specification in our docs, making it easier to integrate Rutter's API into your development workflow. Rutter's OpenAPI spec can help you programmatically verify endpoint support, field requirements, and platform compatibility.
Specs are now available for all versions of Rutter's API. Access them through our OpenAPI docs or directly via URL. Just call https://docs.rutter.com/rest/YOUR-RUTTER-VERSION/spec
, substituting YOUR-RUTTER-VERSION with the Rutter API version you're using (e.g. 2024-08-31).
For more information, visit our OpenAPI docs.
Nov 18 - Coverage Updates
- [All accounting platforms]
GET /bills
- added support for filtering byvendor_id
. - [All accounting platforms]
GET /purchase_orders
- added support for filtering byvendor_id
. - [All accounting platforms]
GET /vendors
- added support for filtering byemail
. - [QuickBooks]
PATCH /invoice_payments
- added support forreference
. - [QuickBooks]
POST /sales_orders
- added support forclass_id
,memo
, andissue_date
. - [Xero]
POST /sales_orders
- new endpoint.
For more information, visit our API Reference.
Nov 11 - Coverage Updates
- [All accounting platforms] Added support for
CLASS_CREATED
andCLASS_UPDATED
webhooks. - [All commerce platforms] Added support for
PAYOUT_CREATED
andPAYOUT_UPDATED
webhooks. - [QuickBooks]
PATCH /items/:id
- added support forstatus
to activate or deactivate items. - [Xero]
GET /sales_orders
- new endpoint. - [Xero]
PATCH /accounts/:id
- new endpoint. - [Xero]
PATCH /bank_deposits/:id
- new endpoint. - [Xero]
PATCH /customers/:id
- new endpoint. - [Xero]
PATCH /invoice_credit_memos/:id
- new endpoint. - [Xero]
PATCH /invoices/:id
- added support forstatus
. - [Xero]
PATCH /vendors/:id
- added support forstatus
. - [Xero]
POST /bank_deposits
- added support forlinked_payments
. - [Xero]
POST /items
- new endpoint.
For more information, visit our API Reference.
Nov 4 - Coverage Updates
- [All platforms]
GET /invoice_credit_memos
- added support for filtering bydocument_number
. - [Dynamics 365 Business Central]
POST /bank_deposits
- added support for linking multiplelinked_payments
andline_items
. - [NetSuite]
GET /customers
- added support forpayment_terms_id
. - [QuickBooks]
PATCH /invoices
- added support foradditional_fields.tax_rate_id
. - [Xero]
PATCH /accounts/:id
- new endpoint. - [Xero]
PATCH /customers/:id
- new endpoint. - [Xero]
PATCH /invoice_credit_memos/:id
- new endpoint. - [Zoho Books]
GET /tasks
- new endpoint.
For more information, visit our API Reference.
Oct 28 - Coverage Updates
- [All platforms]
GET /bill_credit_memos
- support filtering bydocument_number
. - [QuickBooks]
PATCH /invoice_payments
- added support forpayment_method_id
. - [QuickBooks]
POST /items
- added support for creating inventory items. - [Xero]
POST /bill_credit_applications
- added support fortransaction_date
. - [Xero]
POST /expenses
- added support forcustomer_id
. - [Xero]
POST /invoices
- added support forstatus
.
For more information, visit our API Reference.
Oct 21 - Coverage Updates
GET /connections/status
- add health status indicating if connection is healthy or unhealthy.- [NetSuite]
GET /vendors
- added support forpayment_terms_id
. - [NetSuite]
GET endpoints with line items (e.g. /invoices, /bills, /purchase_orders, sales_orders)
- added support for aplatform_id
for each line item. - [QuickBooks Desktop]
PATCH /customers
- automatically splitcontact_name
into first and last name. - [QuickBooks]
GET /payment_methods, GET /payment_methods/:id
- new endpoint. - [QuickBooks]
POST /invoice_payments
- added support forpayment_method_id
. - [QuickBooks]
POST /invoices, PATCH /invoices
- added support foradditional_fields.department_id
. - [QuickBooks]
POST /invoices
- added support foraddresses
field. - [Zoho Books]
GET /projects
- new endpoint.
For more information, visit our API Reference.
Oct 14 - Coverage Updates
- [All platforms]
POST /bills/:id/attachments
- ensure file format validator is case insensitive. - [QuickBooks Desktop]
PATCH /bill_credit_memos/:id
- new endpoint. - [QuickBooks Desktop]
POST /invoice_credit_memo
- support settingclass_id
on line items. - [QuickBooks]
DELETE /purchase_orders/:id
- new endpoint. - [QuickBooks]
GET /items
- deactivated items are now returned with{ status: archived }
instead of{ status: unknown }
. - [QuickBooks]
PATCH /invoices
- added support forcustom_fields
. - [QuickBooks]
POST /invoice_payments
- added support forreference
field. - [QuickBooks]
POST /journal_entries
- allow settingdocument_number
. - [Zoho Books]
POST /expenses
- supporttax_rate_id
on refunds.
For more information, visit our API Reference.
Oct 7 - Coverage Updates
- [NetSuite]
GET /balance_sheets
- include retained earnings adjustment. - [NetSuite]
GET /balance_sheets
- include year-to-date net_income. - [NetSuite]
POST /invoices
- allow settinglocation_id
. - [NetSuite]
POST /invoice_credit_memos
- allow settinglocation_id
. - [Sage Intacct]
POST /expenses
- allow settingadditional_fields.journal_type
. - [QuickBooks]
POST /invoices
- allow settingadditional_fields.internal_memo
. - [QuickBooks]
POST /invoice_credit_memos
- allow settingmemo
. - [QuickBooks Desktop]
POST /bill_credit_memos
-account_id
now optional.
For more information, visit our API Reference.
Sept 30 - Coverage Updates
- [NetSuite]
GET /invoices/:id/pdf
- new endpoint for NetSuite. - [QuickBooks]
GET /invoices/:id/pdf
- new endpoint for QuickBooks. - [QuickBooks Desktop]
DELETE /purchase_orders/:id
- new endpoint for QuickBooks Desktop. - [QuickBooks Desktop]
POST /invoice_credit_memos
- allow settingmemo
field. - [QuickBooks Desktop]
POST /sales_orders
- allow settingpayment_terms_id
. - [Sage Intacct]
POST /bills
- allow settingdepartment_id
andlocation_id
. - [Sage Intacct]
POST /bill_credit_memos
- allow settingdepartment_id
andlocation_id
. - [Xero]
GET /invoices/:id/pdf
- new endpoint for Xero.
For more information, visit our API Reference.
Sept 23 - Coverage Updates
- [Intuit Bank Feeds]
GET /bank_feed_accounts/:id
-last_synced_at
field now reflects when Intuit last pulled data. - [NetSuite]
PATCH /customers
- new endpoint for NetSuite. - [Zoho Books] -
GET /journal_entries
- new endpoint for Zoho Books. - [Zoho Books] -
POST /journal_entries
- new endpoint for Zoho Books. - [Zoho Books] -
POST /journal_entries
- added support for settingcustom_fields
values on the journal entries object. - [All platforms] Allow rotating connection
access_token
s - new endpoint. GET /bill_credit_memos
,GET /purchase_orders
- added support for filtering byvendor_id
.
For more information, visit our API Reference.
Sept 23 - Xero Bank Feeds
We're excited to announce that Rutter's Bank Feeds product now offers support for syncing transactions to Xero. Bank Feeds allows fintechs who offer banking or card services to automatically sync their customers' transactions into those customers' ERPs, cutting down on manual data entry and saving them significant time. Along with Xero, Rutter supports syncing bank feed transactions to Intuit QuickBooks, NetSuite, Sage Intacct, and Sage Business Cloud.
For more information, visit our announcement or our Xero Bank Feeds Guide.
Sept 16 - Coverage Updates
- All Accounts Receivable transactions (
GET /invoices
,GET /invoice_payments
,GET /invoice_credit_memos
,GET /sales_orders
) - added support for filtering bycustomer_id
. - [QuickBooks]
GET /invoices/custom_fields
- added support for fetching the metadata for all custom fields on the invoice object. - [QuickBooks]
POST /invoices
- added support for settingcustom_fields
values on the invoice object. - [QuickBooks Desktop]
DELETE /invoice_credit_memos/:id
- new endpoint for Xero. - [QuickBooks Desktop]
POST /bills
- allow due_date to be optional if payment_terms_id is set. - [QuickBooks Desktop]
POST /bill_payments/:id
- added support for thereference
field. - [QuickBooks Desktop]
PATCH /bill_payments
- new endpoint for QuickBooks Desktop. - [Sage Intacct]
POST /bills
- allow settingadditional_fields.task_id
field on line items. - [Webhooks]
INVOICE_PAYMENT_CREATED
andINVOICE_PAYMENT_UPDATED
webhooks are now supported. - [Xero]
DELETE /invoice_payment/:id
- new endpoint for Xero. - [Zoho Books]
GET /bills/custom_fields
- added support for fetching the metadata for all custom fields on the bill object. - [Zoho Books]
POST /bills
- added support for settingcustom_fields
values on the bill object.
For more information, visit our API Reference.
Sept 9 - Coverage Updates
- [NetSuite]
GET /bills
- added support for thepayment_terms_id
field. - [QuickBooks]
GET /bills/:id
- added support for displaying any journal entries associated with the bill underadditional_fields.linked_journal_entries
. - [QuickBooks]
GET /bill_payments/:id
- added support for displaying any journal entries associated with the bill payment underadditional_fields.linked_journal_entries
. - [QuickBooks]
GET /invoices/:id
- added support for displaying any journal entries associated with the invoice underadditional_fields.linked_journal_entries
. - [QuickBooks]
GET /invoice_payments/:id
- added support for displaying any journal entries associated with the invoice payment underadditional_fields.linked_journal_entries
. - [QuickBooks]
POST /invoices
- added support foradditional_fields.allow_online_ach_payment
andadditional_fields.allow_online_credit_card_payment
to set the allowable payment methods for paying invoices. - [QuickBooks Desktop]
PATCH /invoice_payments/:id
- added support for thereference
field. - [Sage Intacct]
GET /tasks
- new endpoint for Sage Intacct. - [Sage Intacct]
POST /bills
- added support for theline_items.project_id
field. - [Sage Intacct]
POST /expenses
- added support for theline_items.project_id
field. - [Sage Intacct]
POST /expenses
- added support for theline_items.task_id
field. - [Sage Intacct]
GET /invoices/:id/attachments
- new endpoint for Sage Intacct.
For more information, visit our API Reference.
Sept 2 - Coverage Updates
- [Sage Intacct]
GET /projects
- new endpoint for Sage Intacct. - [QuickBooks]
GET /invoices/:id/pdf
- new endpoint for QuickBooks. - [QuickBooks Desktop]
POST /invoice_payments
- added support for theadditional_fields.auto_apply
field to automatically apply the payment to any outstanding invoices that match the payment amount. - [QuickBooks Desktop]
POST /invoices
- allowdue_date
to be optional ifpayment_terms_id
is set. - [Quickbooks Desktop]
POST /sales_orders
- added support for setting theclass_id
on theline_items
. - [NetSuite]
PATCH /bank_feeds/accounts/:id
- allowing settingstatus
toactive
so bank feed accounts can be re-activated.
For more information, visit our API Reference.
August 29 - Async Responses for Accounting Report Endpoints
We are changing our GET /balance_sheets
, /cash_flow_statements
, and /income_statements
endpoints to be asynchronous. This change will enable us to accommodate long-running queries for accounting instances with a significant amount of data. These endpoints will follow our usual async response pattern.
For more information on how to handle asynchronous operations in Rutter's API, visit our API Reference.
August 29 - New API Version: 2024-08-31
We shipped a new API version. This is now our most-recent and stable API version. Visit our API upgrade guide for more information on the changes and improvements in this version.
August 26 - Coverage Updates
- [Sage Intacct]
POST /bank_deposits
- new endpoint for Sage Intacct. - [QuickBooks]
GET /invoices/:id/pdf
- new endpoint for QuickBooks. - [QuickBooks Desktop]
POST /invoice_payments
- added support for theadditional_fields.auto_apply
field to automatically apply the payment to any outstanding invoices that match the payment amount. - [QuickBooks Desktop]
POST /invoices
- allowdue_date
to be optional ifpayment_terms_id
is set. - [Quickbooks Desktop]
POST /sales_orders
- added support for setting theclass_id
on theline_items
. - [NetSuite]
PATCH /bank_feeds/accounts/:id
- allowing settingstatus
toactive
so bank feed accounts can be re-activated.
For more information, visit our API Reference.
August 19 - Coverage Updates
- [Connections]
GET /connections
- return all connections (instead of just active ones) and the correct status. - [Sage Intacct]
GET /bank_deposits
- new endpoint for Sage Intacct. - [Sage Intacct]
GET /bank_deposits/:id
- new endpoint for Sage Intacct. - [Sage Intacct]
GET /journal_entries
- returns an expanded set of fields, includingcustomer_id
,class_id
,location_id
andvendor_id
if applicable. - [Sage Intacct]
POST /journal_entries
- allow sending an expanded set of fields, includingcustomer_id
,class_id
,location_id
andvendor_id
if applicable.
For more information, visit our API Reference.
August 15 - Rate Limit Update
We're implementing a new rate limit of up to 500 requests per 10 seconds. This update is designed to enhance overall system reliability and reduce 5XX errors by mitigating spam-related issues. Less than 3% of customers will be affected by this change, and those impacted have already been notified.
If a rate limit is hit, a 429 error will be returned with headers indicating when to retry the request.
For more information, see Rate Limiting.
August 14 - QuickBooks Desktop Reliability Updates
We've implemented several key updates to improve the reliability and performance of our QuickBooks Desktop (QBD) integration. These enhancements address common pain points and aim to provide a smoother experience for all users.
Better Data Syncing
- Faster & More Stable Syncs: We've reduced the batch size for data synchronizations. This change reduces the likelihood that a sync will freeze, particularly during the initial sync. With the smaller batch size, you'll notice more consistent successful sync results.
- Reduced Iterator Corruptions: Previously, iterated entity requests could become corrupted when shuffled with other entity query requests, leading to sync issues. We've improved the process by grouping all iterated requests together, significantly enhancing the sync experience.
- Better Percentage Progress in Web Connector: We've improved the accuracy of progress tracking in the QBD web connector. We now calculate and display more precise percentages to your customers during the sync process, giving them increased certainty that syncs are moving.
Reduced API Errors
- Improved Out-of-Date Object Handling: We now perform data synchronization before making
POST
calls, reducing the occurrence of out-of-date object errors. This ensures that the most current data is used during the sync process. - Supporting Error Recovery Routine: We now send an idempotent key to QBD, allowing us to resend
POST
calls in the event of a QBD crash. This ensures greater reliability and reduces the impact of failed requests.
New Features
- Delete Monitoring: We now monitor deletions on the QBD side and automatically delete corresponding entities on Rutter's side. Supported entities include
Account
,Class
,Currency
,Customer
,Items
,PaymentMethod
,TaxRates
, andVendor
.
User Interface Improvements
- Dashboard Enhancements: The QBD initial sync and side refresh dashboard are now fully operational. Additionally, the last connected time and any connection errors are displayed directly on the dashboard.
- Improved Rutter Link Flow: We've redesigned the Rutter link flow for both initial connections and reauthorization, providing clearer instructions and a better overall user experience.
We're excited to continue providing a best-in-class experience for QuickBooks Desktop integrations. If you have feedback on these updates, or anything else in our API, reach out to product@rutterapi.com.
For more information, visit our QuickBooks Desktop guide.
August 12 - Bank Feeds Status Unification
We've made improvements to unify our bank feeds logic across all supported platforms, including Intuit QuickBooks, NetSuite, Sage, and coming soon—Xero.
The transaction_ready
field will now be returned on bank feed accounts (GET /bank_feeds/accounts
) to clearly indicate, in a cross-platform manner, whether a bank feed account is ready to accept transactions. When transaction_ready=true
, it signals that you can send a batch of bank feed transactions to that account.
On NetSuite & Intuit QuickBooks, transaction_ready=true
is set immediately after you POST /bank_feeds/accounts
to Rutter, as these systems allow transactions to be sent right away. On Sage, transaction_ready=true
is set once the user completes the linking flow in Sage.
The transaction_ready
field was added alongside our existing feed_status
field. The feed_status
field (which can be set to active/inactive
) indicates whether the end-to-end flow of a user setting up a bank feed integration in their accounting system is complete.
On NetSuite, feed_status=active
is set after the first batch of transactions is sent via POST /bank_feeds/transactions
. For Sage & Intuit, feed_status=active
is set once the user finishes the linking flow in Sage or QuickBooks.
By using transaction_ready
and feed_status
, you can now build unified logic across all systems to determine when to send transactions.
For more information, visit our Bank Feeds Guide.
August 12 - Coverage Updates
- [QuickBooks]
POST /expenses
- added support for theadditional_fields.billable
field to mark an expense line item as billable or non-billable. - [QuickBooks Desktop]
GET /items/custom_fields
- added support for fetching the metadata for all custom fields on the item object. - [QuickBooks Desktop]
POST /items
- added support for settingcustom_fields
values on the item object. - [Sage Intacct]
POST /bill_credit_applications
- new endpoint for Sage Intacct.
For more information, visit our API Reference.
August 5 - Coverage Updates
- [QuickBooks]
PATCH /customers
- added support for deactivating a customer by setting{ status: archived }
. - [QuickBooks]
PATCH /vendors
- added support for deactivating a vendor by setting{ status: archived }
. - [QuickBooks]
POST /invoices
- added support for disabling sales tax by settingadditional_fields.sales_taxable
to false. - [QuickBooks]
PATCH /invoices
- added support for disabling sales tax by settingadditional_fields.sales_taxable
to false.
For more information, visit our API Reference.
August 1 - Delete Monitoring [QuickBooks Desktop]
Rutter now supports tracking deleted entities in QuickBooks Desktop, in addition to our existing support for QuickBooks Online and NetSuite. When a resource is deleted in QuickBooks Desktop instead of through Rutter's API, Rutter will detect these changes during the incremental sync process. Deleted entities will no longer appear in subsequent API responses. In addition, webhooks will be sent out at the moment deletes are detected, and a log of all deleted entities for each connection will be available through our new /events API.
QuickBooks Desktop supports tracking deletes for the following entities: Account, Class, Currency, Customer, Items, PaymentMethod, TaxRates, and Vendor.
For more information, visit our documentation:
July 30 - Partial String Matching
Added support to the filter
parameter for supporting the ~
(partial match) operation. ~
returns all objects that include a word starting with the given value for that field. For example, ~ ru
will return "Rutter" and "The Rutter API Company", but not "Truly". ~
is supported for any string field that is not an enum, date, or Rutter id. Matches are case insensitive.
For more details, see Filtering Objects.
July 29 - Coverage Updates
- [Zoho Books]
GET /expenses/custom_fields
- added support for fetching the metadata for all custom fields on the expense object. - [Zoho Books]
POST /expenses
- added support for settingcustom_fields
values on the expense object.
For more information, visit our API Reference.
July 22 - Coverage Updates
- [All]
GET /accounts
- added ability to filter byname
. - [QuickBooks Desktop]
GET /invoices/custom_fields
- added support for fetching the metadata for all custom fields on the invoice object. - [QuickBooks Desktop]
POST /invoices
- added support for settingcustom_fields
values on the invoice object.
For more information, visit our API Reference.
July 15 - QuickBooks Bank Feeds
We're excited to announce that Rutter's Bank Feeds product now offers support for syncing transactions to QuickBooks. Bank Feeds allows neo-banks or card issuers to automatically sync their customers' transactions into those customers' ERPs, cutting down on manual data entry and saving them significant time. Along with QuickBooks, Rutter supports syncing bank feed transactions to NetSuite, Sage Business Cloud, and Sage Intacct.
For more information, visit our announcement or our Bank Feeds Guide.
July 15 - Coverage Updates
- [NetSuite]
POST /journal_entries
- added support for theadditional_fields.tax_account_id
field to set the tax account for advanced intercompany journal entries. - [QuickBooks]
PATCH /accounts
- new endpoint for QuickBooks. - [QuickBooks]
PATCH /journal_entries
- new endpoint for QuickBooks. - [QuickBooks Desktop]
POST /bills
- added support for theadditional_fields.tax_inclusive
field for line amount to be tax inclusive.
For more information, visit our API Reference.
July 1 - Coverage Updates
- [NetSuite]
POST /expenses
- added support for creating expenses with afixed_asset
line item account type. - [QuickBooks]
POST /classes
- new endpoint for QuickBooks. - [QuickBooks]
POST /departments
- new endpoint for QuickBooks. - [QuickBooks]
PATCH /items
- added support for updating the code/sku field on QuickBooks using theadditional_fields.code
field. - [Zoho Books]
POST /bills/:id/attachments
- new endpoint for Zoho Books. - [Zoho Books]
GET /bill_payments
- added support for thereference
field. - [Zoho Books]
POST /bill_payments
- added support for thereference
field.
For more information, visit our API Reference.
June 28 - Custom Connection Names
We're excited to announce that you can now set custom names for connections using the Rutter Dashboard or our API. This feature helps you and your team easily mark which connections belong to each of your customers, cutting down on the time needed to troubleshoot issues or check request logs. Connection names are private within your organization and not visible to your customers, so you can come up with your perfect naming scheme to help your team quickly and easily find their way around your connections.
To use this feature on our dashboard, click on any connection.
Then, click "Set display name" and fill out your desired name in the modal.
Once the name is set, it will appear on the individual connection page, within the list of all connections in the dashboard, and in our API.
If you'd like to set multiple connection names at once, you can use our Update a Connection API endpoint to do so. Just specify a name
in the request body, and you'll see that name appear within our dashboard and API shortly after.
For more information, visit our API Reference.
June 24 - Coverage Updates
- [Dynamics 365 Business Central]
POST /expenses
- added support for theline_items.custom_fields
field for passing in custom posting group values. - [NetSuite]
POST /bank_feeds/transactions
- added support for activating and deactivating bank feed accounts. - [QuickBooks]
POST /invoices
- added support for theadditional_fields.billing_email
field. - [QuickBooks]
PATCH /invoices
- added support for theadditional_fields.billing_email
field. - [QuickBooks]
POST /invoices
- added support for thepayment_terms_id
field. - [QuickBooks]
POST /purchase_orders
- new endpoint for QuickBooks. - [QuickBooks]
PATCH /purchase_orders
- new endpoint for QuickBooks. - [QuickBooks Desktop]
POST /customers
- added support for theadditional_fields.parent_id
field for creating sub-jobs. - [QuickBooks Desktop]
POST /bank_deposits
- added support for thelinked_payments
field. - [QuickBooks Desktop]
POST /invoice_credit_memos
- added support for thedocument_number
field. - [QuickBooks Desktop]
GET /company_info
- added support for theadditional_fields.closing_date
field.
For more information, visit our API Reference.
June 17 - Coverage Updates
- [NetSuite] All endpoints - added support for the
platform_url
field. - [Sage Intacct]
GET /bills/:id/attachments
- new endpoint for Sage Intacct. - [Sage Intacct]
GET /bills/:id/attachments/:id/file
- new endpoint for Sage Intacct. - [QuickBooks] Now supports
ITEM_CREATED
andITEM_UPDATED
webhooks. - [QuickBooks Desktop] Now supports
ITEM_CREATED
andITEM_UPDATED
webhooks. - [Xero]
PATCH /bill_payments
- added support for voiding a bill payment.
For more information, visit our API Reference.
June 12 - Customize QBD File Paths in Rutter Link [QuickBooks Desktop]
You can now set the file path for your QuickBooks Desktop (QBD) file when creating a new connection in Rutter Link. This feature allows you to specify the location where your QBD file is hosted, which contains critical information about your company and accounts.
While many QBD files are stored in a standard location, this flexibility is valuable for more complex setups. If QBD is running on a server rather than an individual's computer, there may be multiple QBD instances present and therefore multiple company files. With this change, it's easy to connect Rutter to the right one. By providing the file path during setup, you ensure the Web Connector can always access the correct QBD file, whether it's on a physical server or in a remote desktop environment.
Additionally, if the QBD file path changes (for example, as a result of moving to a new computer), you can update the file path in Rutter Link to reflect the new location.
Setting the Company File Path:
- During the creation of a new QuickBooks Desktop connection, you will see an option to enter the file path where the QBD file is stored.
- Example file path:
C:\Users\YourUser\Documents\QuickBooks\CompanyFile.qbw
Updating the Company File Path:
- To update the QBD file path for an existing connection, go to the connection you are trying to update in the Rutter Dashboard.
- Click on the "Settings" tab
- Update the file path under the "Company file path" field.
We're excited to continue making updates to ensure our QBD connector provides an excellent experience. If you have feedback on this, or any other change, reach out to product@rutterapi.com.
For more detailed instructions, visit our QuickBooks Desktop guide.
June 10 - Coverage Updates
- [QuickBooks]
POST /journal_entries
- added support for thecurrency_rate
field. - [Xero]
POST /bank_deposits/:id/attachments
- new endpoint for Xero.
For more information, visit our API Reference.
June 5 - Enhanced Readability of API Error Responses
On POST requests where the external platform returns an error to Rutter, we now return concise messaging for these errors. As an example use case, these new messages may be shown to your users in your UI to allow them to self-troubleshoot.
You can find the following new fields under the error_metadata
object:
source
- Whether the error originated from Rutter ("rutter"
) or the platform ("platform"
).human_readable
- An easy to read error message for platform-originated errors, e.g. "The account type xxxx is incompatible with this transaction."platform
- An object that contains data from the platform, e.g. headers or rate limiting information.
For more information, visit our API Reference.
June 3 - Coverage Updates
- [Dynamics 365 Business Central]
GET /accounts
- added support for thecurrency_code
field. - [QuickBooks Desktop] `POST /invoice_payments - added support for setting the "Undeposited Funds" account as the deposit account.
- [QuickBooks Desktop]
POST /invoices
- added support forclass_id
field on the top level. - [QuickBooks Desktop]
GET /customers
- added support for theparent_id
field, which allows creating jobs (or sub-customers) under a given customer.
For more information, visit our API Reference.
May 30 - API Coverage Explorer
We are excited to introduce our new API coverage explorer!
This page allows you to view all of our API endpoints and which platforms support them in one convenient table. In addition, you can also filter the table by endpoint name, show/hide specific platforms and endpoints, and export the table data to a CSV for sharing internally.
May 27 - Coverage Updates
- [NetSuite] all endpoints - added support for instances where multi-currency is disabled.
- [Zoho Books]
POST /bank_deposits
- new endpoint for Zoho Books. - [Xero]
POST /expenses
- added support for setting thecustomer_id
field on line items. - [Xero]
GET /tax_rates
- added support for setting thestatus
field. - [QuickBooks Desktop]
GET /bill_payments
- added support forreference
field. - [QuickBooks Desktop]
GET /bill_payments
- added support for filtering by thereference
field. - [QuickBooks Desktop]
POST /bill_payments
- added support forreference
field. - [QuickBooks Desktop]
GET /company_info
- added support foradditional_fields.closing_date
field. - [QuickBooks Desktop]
POST /expenses
- added support for theadditional_fields.tax_inclusive
field for line amount to be tax inclusive. - [QuickBooks Desktop]
POST /invoices
- added support for theadditional_fields.tax_rate_id
field to set a tax for the entire invoice. - [QuickBooks Desktop]
PATCH /invoices
- added support for voiding invoices. - [QuickBooks Desktop]
GET /invoice_payments
- added support forreference
field. - [QuickBooks Desktop]
GET /invoice_payments
- added support for filtering by thereference
field. - [QuickBooks Desktop]
POST /invoice_payments
- added support forreference
field. - [QuickBooks Desktop]
GET /tax_rates
- added support for setting thestatus
field.
For more information, visit our API Reference.
May 20 - Coverage Updates
- [Zoho Books]
GET /bank_deposits
- new endpoint for Zoho Books. - [QuickBooks Desktop]
PATCH /bills
- added support for updating the line items. - [QuickBooks Desktop]
GET /tax_rates
- added support for syncingItemSalesTax
andItemSalesTaxGroup
objects. - [QuickBooks Desktop]
POST /expenses
- added support for setting an expense line item asbillable
. - [QuickBooks Desktop]
POST /invoices
- added support for setting the Purchase Order number. - [QuickBooks Desktop]
POST /items
- added support for setting thesku
code. - [QuickBooks Desktop]
PATCH /invoice_credit_memos
- new endpoint for QuickBooks Desktop. - [QuickBooks Desktop]
GET /bank_deposits
- new endpoint for QuickBooks Desktop. - [QuickBooks Desktop]
POST /bank_deposits
- new endpoint for QuickBooks Desktop.
For more information, visit our API Reference.
May 16 - Introducing the platform_url Field [QuickBooks Online, Xero, Zoho Books]
A challenging part of working with the Rutter API is figuring out where Rutter accounting objects can be found in the external accounting platform. To make this easier and more explicit, we are introducing a new platform_url
field to many of our accounting objects. This link will point to the page containing the object in the external platform's accounting application.
This feature will allow developers integrating with new platforms to more quickly verify their changes in the external platform after any operation they perform with the Rutter API.
To view the page, you must already be logged into the application with the correct credentials.
The field is currently supported for three platforms, QuickBooks Online, Xero, and Zoho Books for the following endpoints
/accounting/accounts
/accounting/bills
/accounting/bill_payments
/accounting/bill_credit_memos
/accounting/customers
/accounting/expenses
/accounting/invoices
/accounting/invoice_payments
/accounting/invoice_credit_memos
/accounting/journal_entries
/accounting/purchase_orders
/accounting/vendors
For more information, visit our API Reference.
May 15 - Initial Sync Progress Bars
When a Rutter connection is syncing for the first time, there can be a lot of variability in how long the sync takes depending on the amount of data in the external platform. This can cause uncertainty as to whether there are issues with the sync, or there's simply a lot of data to sync and things are progressing as normal.
We're excited to introduce a feature on our dashboard that gives a granular progress report on how much data has synced. Now, you can see the initial sync progress for each individual entity, and the time period that entities have finished syncing through. This will provide enhanced observability and an easier way to monitor for any errors.
To use this feature, head to the Rutter Dashboard and click on any connection. At the bottom of the page, a granular progress report will be displayed. Hover over each bar to see the dates for the data that was synced. Bars with a ">" can be expanded with a click to view sub-entities and their progress.
For more information, visit our documentation:
May 13 - Coverage Updates
- [All] Rolling out validation rules for field character length.
- [Dynamics 365 Business Central]
GET /invoices/:id/attachments
- new endpoint for Dynamics 365 Business Central. - [Dynamics 365 Business Central]
GET /invoices/:id/attachments/file
- new endpoint for Dynamics 365 Business Central. - [Dynamics 365 Business Central]
GET /invoices/attachments
- new endpoint for Dynamics 365 Business Central. - [NetSuite] Opt-in feature to allow different users to connect the same store to ensure per-user permissions are retained.
- [NetSuite]
POST /items
- new endpoint for NetSuite, for all item types except fordiscount
. - [NetSuite]
PATCH /items
- new endpoint for NetSuite, for all item types except fordiscount
. - [NetSuite]
PATCH /invoices
- added support for thedocument_number
field on the top level, and thediscount_amount
,discount_item_id
, andaccount_id
fields on the line items. - [QuickBooks]
GET /invoices
- added support for theservice_date
field on the line items. - [QuickBooks]
POST /invoices
- added support for theservice_date
field on the line items. - [QuickBooks]
PATCH /invoices
- added support for theservice_date
field on the line items. - [QuickBooks]
GET /invoices
- add support for theclass_id
field on both top level and the line items, depending on how the client instance is configured. - [QuickBooks]
POST /invoices
- add support for theclass_id
field on both top level and the line items, depending on how the client instance is configured. - [QuickBooks]
PATCH /invoices
- add support for theclass_id
field on both top level and the line items, depending on how the client instance is configured. - [QuickBooks]
PATCH /expenses
- added support for prepaid expenses, ie when the account_id is a bank account. - [QuickBooks Desktop]
GET /invoices
- added support for theservice_date
field on the line items. - [QuickBooks Desktop]
POST /invoices
- added support for theservice_date
field on the line items. - [QuickBooks Desktop]
PATCH /invoices
- added support for theservice_date
field on the line items. - [QuickBooks Desktop]
PATCH /items
- new endpoint for QuickBooks Desktop for all item types. - [QuickBooks Desktop]
GET /invoices
- added support for thepo_number
field underadditional_fields
. - [Zoho Books]
POST /expenses
- add support for thecustomer_id
field on the line items. - [Zoho Books]
POST /invoices
- new endpoint for Zoho Books. - [Zoho Books]
POST /invoice_payments
- new endpoint for Zoho Books. - [Zoho Books]
PATCH /invoice_payments
- new endpoint for Zoho Books.
For more information, visit our API Reference.
May 9 - Filtering Objects
On many list endpoints, you can now use the filter
parameter to only return objects that match a certain criteria. Some examples of filterable endpoints are List Accounts and List Customers. For more details, see Filtering Objects.
May 6 - Coverage Updates
- [All]
GET /currencies
- added support for thecreated_at
field. - [All]
GET /customers
- added support for thecreated_at
field. - [Dynamics 365 Business Central]
GET /bank_deposits
- new endpoint for Dynamics 365 Business Central. - [Dynamics 365 Business Central]
POST /bank_deposits
- new endpoint for Dynamics 365 Business Central. - [Dynamics 365 Business Central]
POST /bank_deposits
- new endpoint for Dynamics 365 Business Central. - [NetSuite]
GET /journal_entries/attachments
- new endpoint for NetSuite. - [NetSuite]
POST /bills
- added support foradditional_fields.tax_inclusive
for line amount to be tax inclusive. - [QuickBooks]
GET /journal_entries/attachments
- new endpoint for QuickBooks. - [QuickBooks Desktop]
PATCH /invoices
- added support forline_items
and all associated fields. - [QuickBooks Desktop]
GET /purchase_orders
- new endpoint for QuickBooks Desktop. - [QuickBooks Desktop]
POST /purchase_orders
- new endpoint for QuickBooks Desktop. - [QuickBooks Desktop]
PATCH /purchase_orders
- new endpoint for QuickBooks Desktop. - [QuickBooks Desktop]
GET /sales_orders
- new endpoint for QuickBooks Desktop. - [QuickBooks Desktop]
PATCH /sales_orders
- new endpoint for QuickBooks Desktop. - [QuickBooks Desktop]
POST /sales_orders
- new endpoint for QuickBooks Desktop. - [Xero]
GET /expense
- added support for thecustomer_id
field. - [Xero]
GET /journal_entries/attachments
- new endpoint for Xero. - [Zoho Books]
GET /customers
- new endpoint for Zoho Books. - [Zoho Books]
POST /customers
- new endpoint for Zoho Books. - [Zoho Books]
GET /invoices/:id/attachments
- new endpoint for Zoho Books. - [Zoho Books]
GET /invoice_payments
- new endpoint for Zoho Books. - [Zoho Books]
POST /invoices
- new endpoint for Zoho Books.
For more information, visit our API Reference.
April 30 - New API Version: 2024-04-30
We shipped a new API version. This is now our most-recent and stable API version. Visit our API upgrade guide for more information on the changes and improvements in this version.
April 29 - Coverage Updates
- [All]
GET /invoice_payments
- added support for thecreated_at
field. - [All]
GET /items
- added support for thecreated_at
field. - [All]
GET /tax_rates
- added support for thecreated_at
field. - [NetSuite]
GET /subsidiaries
- added support for thecreated_at
field for NetSuite. - [NetSuite]
POST /bank_deposits/:id/attachments
- new endpoint for NetSuite. - [NetSuite]
PATCH /bills
- added support for updating theline_items
array field. - [QuickBooks]
POST /bank_deposits/:id/attachments
- new endpoint for QuickBooks.
For more information, visit our API Reference.
April 22 - Coverage Updates
- [NetSuite]
PATCH /invoices
- passing inline_items: []
will zero out all existing line items. - [QuickBooks]
POST /bill_credit_memos
- added support fordocument_number
andmemo
. - [QuickBooks]
GET /customers
- added support forparent_id
field. - [Xero]
POST /journal_entries/:id/attachments
- new endpoint for Xero.
For more information, visit our API Reference.
April 15 - Coverage Updates
- [NetSuite]
GET /bills
- added support forcurrency_rate
. - [NetSuite]
POST /bills
- added support forcurrency_rate
. - [NetSuite]
PATCH /bills
- added support for updating theline_items
. - [NetSuite]
GET /bill_payments
- added support forcurrency_rate
. - [NetSuite]
POST /bill_payments
- added support forcurrency_rate
. - [QuickBooks]
GET /bills
- added support forcurrency_rate
. - [QuickBooks]
POST /bills
- added support forcurrency_rate
. - [QuickBooks]
POST /customers
- added support forparent_id
field. - [QuickBooks]
POST /expenses
- added support forcustomer_id
field on theline_items
. - [QuickBooks]
POST /journal_entries/:id/attachments
- new endpoint for QuickBooks.
For more information, visit our API Reference.
April 10 - Sync History [QuickBooks Desktop]
We're excited to announce that QuickBooks Desktop connections now have sync history available. To access the sync history, head to the "Connections" tab on your Rutter dashboard, and select a specific connection. Then, click on the "Sync History" tab. Sync history will not appear for the first data sync (the initial sync) on a QBD connection. Sync history will begin appearing for all syncs (incremental syncs) afterwards.
For more information, visit our documentation:
April 8 - Coverage Updates
- [Dynamics 365 Business Central]
GET /bills/:id/attachments
- new endpoint for Dynamics 365 Business Central. - [NetSuite]
GET /bills/:id/attachments
- new endpoint for NetSuite. - [NetSuite]
PATCH /accounts
- new endpoint for NetSuite. - [NetSuite]
PATCH /bills
- supports updating ofline_items
. - [NetSuite]
POST /expenses
- added support forcustomer_id
field on theline_items
. - [NetSuite]
PATCH /invoices
- supports updating ofline_items
. - [NetSuite]
PATCH /vendors
- new endpoint for NetSuite. - [QuickBooks]
PATCH /customers
- new endpoint for QuickBooks. - [QuickBooks]
GET /sales_orders
- new endpoint for QuickBooks. - [QuickBooks]
POST /sales_orders
- new endpoint for QuickBooks. - [QuickBooks]
GET /vendors
- updated status fromunknown
toarchived
when vendors are no longer active. - [Xero]
POST /expenses
- added support foradditional_fields.tax_inclusive
for line amount to be tax inclusive. - [Zoho Books]
DELETE /expenses
- new endpoint for Zoho Books.
For more information, visit our API Reference.
April 4 - Exposing POST Input Validation Rules for Expenses and Bills Endpoint
When using our POST API endpoints, sometimes you may encounter validation errors (HTTP status code 400) that indicate the data submitted is not considered valid. To help you understand why your request is being rejected and show you all the input validation rules that apply to a specific platform, we've added a new section to our documentation (under "Support by integration" for each endpoint) that outlines the input validation rules for a specific endpoint. Currently, we've added this information for the POST /bills and POST /expenses endpoint documentation but we will be adding it to other endpoints in the future.
For more information, visit our documentation:
- POST /bills API Added input validation rules under "Support by integration"
- POST /expenses API Added input validation rules under "Support by integration"
April 1 - Coverage Updates
- [QuickBooks]
PATCH /invoice_payments
- new endpoint for QuickBooks. - [QuickBooks]
DELETE /invoice_payments
- new endpoint for QuickBooks. - [QuickBooks]
PATCH /items
- new endpoint for QuickBooks. - [QuickBooks]
PATCH /vendors
- new endpoint for QuickBooks. - [QuickBooks Desktop]
POST /invoices
- added support forclass_id
online_items
. - [Xero]
GET /accounts
- added support forbalance
. - Added webhooks support for
EXPENSE_CREATED
andEXPENSE_UPDATED
For more information, visit our API Reference.
March 24 - Coverage Updates
- [QuickBooks]
POST /expenses
- added support fortax_inclusive
(viaadditional_fields
). Posted amounts within the line items will now be inclusive of the tax. - [QuickBooks]
GET /journal_entries
- added support forvendor_id
,customer_id
, andclass_id
online_items
(viaadditional_fields
). - [QuickBooks]
POST /journal_entries
- added support forclass_id
online_items
(viaadditional_fields
).
For more information, visit our API Reference.
March 21 - Documentation Redesign
The Rutter Docs website has been redesigned to improve visual consistency and the ability to easily find the content you need to build with Rutter. You can utilize either our navigation system or the search feature to look up any docs you need.
Navigation System guide
Quickstart
A quick Postman reference to get set up on Rutter.
API Reference
Contains info for all Rutter objects and endpoints. The API reference also includes a Basics section that covers fundamentals of using the Rutter API, including our versioning policy, how to handle errors and rate limiting, webhooks, idempotency, and more.
Platform Guides
Guides for configuring and retrieving data for each platform supported by Rutter.
Features
Learn how to use Rutter functionality, like the Rutter Link component for user authentication, or the Rutter sandbox for platform testing.
Use cases
Guides explaining how to use Rutter for common accounting workflows, such as Expense Management or AR Automation.
March 1 - Duplicate Bank Feed Transaction IDs are Now Accepted [NetSuite]
When using the POST /bank_feeds/transactions API for NetSuite, you are now able to include Bank Feed Transaction transaction_id
's within a POST request that have already been synced to Rutter without receiving an input rejection error. You'll see that the post succeeds, and in the response there will be a field duplicate: boolean
which indicates whether a transaction has been previously synced or not. If duplicate: true
, you'll see the metadata from the already synced transaction. The new transaction input will not override the existing data if it differs.
With this change, you do not need include error handling for the case where an already synced transaction causes an entire list of transactions to be rejected. Previously, you would have had to regenerate a valid input by removing the already synced transactions from the rejected input, and retry the post request to ensure the rest of the transactions would get synced. Rutter now handles deduplication of transactions internally before syncing them to Netsuite, which simplifies your implementation of our integration.
For more information, visit our documentation:
- POST /bank_feeds/transactions API Updated Schema
- NetSuite Bank Feeds Guide Updated "Transaction Syncing Rules"
February 27 - Delete Monitoring [QuickBooks, NetSuite]
Rutter will now track when resources are deleted in the QuickBooks Online and NetSuite platforms. When a resource is deleted in the platform (instead of through Rutter's API), Rutter will detect these changes during the incremental sync process. Deleted entities will no longer appear in subsequent API responses. In addition, webhooks will be sent out at the moment deletes are detected, and a log of all deleted entities for each connection will be available through our new /events API.
With this change, QuickBooks Online and NetSuite users can enjoy a more streamlined data management process in Rutter.
For more information, visit our documentation: